LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Debian (https://www.linuxquestions.org/questions/debian-26/)
-   -   touch screen (https://www.linuxquestions.org/questions/debian-26/touch-screen-634435/)

knobby67 04-10-2008 11:57 AM

touch screen
 
I all, I've been trying to set up a touch screen but am having a few prolems, he's what I do

1. modprobe usbtouchscreen
2. modprobe evdev
3. cat /proc/bus/input/devices

No touch pad is detected, however if I disconnect the screen USB and reconnect it appears.

I: Bus=0003 Vendor=0596 Product=0001 Version=0410
N: Name="3M 3M USB Touchscreen - EX II"
P: Phys=/input0
S: Sysfs=/class/input/input3
H: Handlers=mouse1 event3 ts1
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=3

However the screen touch positions are are off (eg touch bottom and it mouse is at to ect). Can anyone help me out? First why do I need to dis and re connect the screen for it to be detected. Second how can I calibrate it.
I've seen internet notes on using xorg.conf, but when I try it just crashes xorg.

I'm running on etch.

Thanks :)

damko 10-22-2008 09:46 AM

Hi
I'm working on a Micro Touch usb (17") too right now.

Code:

cat /proc/bus/input/devices

I: Bus=0003 Vendor=0596 Product=0001 Version=0410
N: Name="3M 3M USB Touchscreen - EX II"
P: Phys=usb-0000:00:10.0-1/input0
S: Sysfs=/class/input/input2
U: Uniq=
H: Handlers=mouse0 event2
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=3

I'm on a debian Lenny 32bit installed few days ago and kernel 2.6.26-1-686.

Loaded kernel modules:
evdev
usbtouchscreen

Code:

Xorg -version

X.Org X Server 1.4.2
Release Date: 11 June 2008
X Protocol Version 11, Revision 0
Build Operating System: Linux Debian (xorg-server 2:1.4.2-7)
Current Operating System: Linux videostation 2.6.26-1-686 #1 SMP Thu Oct 9 15:18:09 UTC 2008 i686
Build Date: 30 September 2008  01:48:58AM
 
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Module Loader present

This is my xorg.conf:
Code:

Section "InputDevice"
        Identifier "TouchScreen"
        Driver "mutouch"
        Option "Type" "finger"
        Option "Device" "/dev/input/touchscreen"
        Option "ScreenNo" "0"
#      Option "SwapXY" "1"
#      Option "SwapX" "1"
#      Option "SwapY" "1"
EndSection

My monitor is recognized every time without plugging and unplugging the usb cable.

When I run X I can move the mouse but X and Y axes are switched. To solve this I did
Code:

echo Y >  /sys/module/usbtouchscreen/parameters/swap_xy
Unfortunatly X and Y are inverted, i.e. if I move my finger to the left the cursor moves to the right. The same for top and bottom.

Unfortunately these options are not working:
# Option "SwapXY" "1"
# Option "SwapX" "1"
# Option "SwapY" "1"
Uncommenting them gives no results.

Did you find a way to solve the issues?
Any help is really much appreciated

knobby67 10-23-2008 12:13 PM

Yes changed to ELO :o

damko 11-03-2008 07:26 AM

yes
 
Quote:

Originally Posted by knobby67 (Post 3319881)
Yes changed to ELO :o

yes elo driver ("evtouch" in Xorg) works for me too also if this monitor is 3m

windsword 09-09-2009 12:20 PM

MicroTouch, 3M, Fedora 9
 
I have a 15" touchscreen display and have some problems getting it working.
I installed the drivers, but I still have some basic problems, for example when I type:
Code:

cat /proc/bus/input/devices | grep Name

N: Name="Power Button (FF)"
N: Name="Power Button (CM)"
N: Name="Macintosh mouse button emulation"
N: Name="HID 0566:3107"
N: Name="HID 0566:3107"
N: Name="USB Optical Mouse"
N: Name="PC Speaker"

I don't see the "3M USB Touchscreen" under "N: Name=" When I check dmesg, I get the following:
Code:

usb 8-1: new full speed USB device using uhci_hcd and address 3
usb 8-1: configuration #1 chosen from 1 choice
pl2303 8-1:1.0: pl2303 converter detected
usb 8-1: pl2303 converter now attached to ttyUSB0
usb 8-1: New USB device found, idVendor=1453, idProduct=4026
usb 8-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 8-1: Product: USB-Serial Controller
usb 8-1: Manufacturer: Prolific Technology Inc.

This is the RaidoShack usb-to-RS232 serial converter cable. This makes me wonder if I'm using the wrong usb-rs232 cable?

davea0511 09-18-2009 01:16 PM

Quote:

Originally Posted by damko (Post 3318691)
...

Unfortunately these options are not working:
# Option "SwapXY" "1"
# Option "SwapX" "1"
# Option "SwapY" "1"
Uncommenting them gives no results.

Did you find a way to solve the issues?
Any help is really much appreciated

I hear that simply switching the MinX value with the MaxX value will invert the axis. Gonna try this myself ... maybe I'll remember to post the results.

davea0511 09-20-2009 06:33 PM

Quote:

Originally Posted by davea0511 (Post 3688831)
I hear that simply switching the MinX value with the MaxX value will invert the axis. Gonna try this myself ... maybe I'll remember to post the results.

Nope, didn't help.

In fact, it seems no matter what I put into xorg.conf the touchscreen doesn't change. Calibration is way off, and even drifts as I'm using it ... like it's not evey trying ... and x-axis is reversed. "Option "SwapX" "1" does nothing. I checked Dmesg and get this:
Code:

input: 3M 3M USB Touchscreen - EX II as /devices/pci0000:00/0000:00:10.1/usb2/2-1/2-1:1.0/input/input4
and cat /proc/bus/input/devices gives me this:
Code:

I: Bus=0003 Vendor=0596 Product=0001 Version=0410
N: Name="3M 3M USB Touchscreen - EX II"
P: Phys=usb-0000:00:10.1-1/input0
S: Sysfs=/devices/pci0000:00/0000:00:10.1/usb2/2-1/2-1:1.0/input/input4
U: Uniq=
H: Handlers=mouse1 event4
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=3

So that all looks good. I set up xorg.conf like this:
Code:

Under ServerLayout:
        InputDevice "touchscreen" "CorePointer"

later added ...
Section "InputDevice"
    Identifier "touchscreen"
    Driver "evtouch"
    Option "Device" "/dev/input/event4"
    Option "DeviceName" "touchscreen"
    Option "MinX" "2500"
    Option "MinY" "2500"
    Option "MaxX" "13500"
    Option "MaxY" "13500"
    Option "ReportingMode" "Raw"
    Option "Emulate3Buttons"
    Option "Emulate3Timeout" "50"
#    Option "Calibrate" "1"
    Option "SwapX" "1"
    Option "SendCoreEvents" "On"
EndSection

Also changed "CorePointer" to "SendCoreEvents" since my mouse was already "CorePointer", but no effect. Changed the mouse to "SendCoreEvents" and made the touchscreen "CorePointer", then X wouldn't start because it said I hadn't defined a "CorePointer", but I really had because "touchscreen" was defined as the "CorePointer". In otherwords it looks like xorg.conf is ignoring my touchscreen.

Of course, I have evtouch_drv.so in the /usr/lib/xorg/modules/input/ directory.

I've also added modprobe usbtouchscreen and modprobe evdev to /etc/init.d/rc.local (incidentally I get no feedback when I do this at the prompt, even with -v (verbose) switch - but I don't knwo if this means anything).

I changed xorg.conf to look at Option "Device" "/dev/input/event5" (as apparently it sometimes gets incremented after X restarts). No joy so I changed back to event4.

From another discussion someone had success making it work by creating a udev rule to force the touchscreen to behave properly so xorg.conf would recognize it.

So I also made a udev rule (created: /etc/udev/rules.d/010-local.rules) to force the touchscreen to /dev/input/touchscreen instead of /dev/input/event4 since it seems like xorg.conf isn't setting up the screen at all, and then changed xorg.conf to look for /dev/input/touchscreen instead of /dev/input/event4. The rule looked like this:
Code:

new file: /etc/udev/rules.d/010-local.rules
====
SUBSYSTEMS=="usb", DRIVERS=="usbtouchscreen", KERNEL=="event*", SYMLINK+="input/touchscreen"

Unfortunately after restarting X it looks like /dev/input/touchscreen is NOT getting created and when I do a cat /proc/bus/input/devices it shows the touchscreen still on event4. Argh! Why isn't udev working ... is there something wrong with my code there? It seems to be doing nothing.

I've been pulling my hair out on this for a week, even trying with 3 different distros (SamLinux - like mandriva, knoppix - debian derivative which I learned on, and kanotix - a more apt-able version of knoppix), with no difference - xorg.conf seems oblivious to what I'm trying to do. I'm running out of ideas. Ideas anyone?

Ultimately, based on the output above it seems to me (and if I'm wrong PLEASE point out where) that the failure is xorg.conf's inability to set it up with any calibration at all. It's like it doesn't even see it. I really could use some help.

knobby67 09-21-2009 03:39 AM

I could never get 3M to work elo works like a dream.

davea0511 09-23-2009 03:58 AM

Fixed with ubuntu
 
Wow ... talk about easy. I read about doing this in one of my searches and it seems so easy I quickly dismissed it. Anyway, if you're not married to your distro (I'm not) and this doesn't work for you, try ubuntu which "out-of-the-box" does FDI policy instead of X config files. I just installed the evtouch package through their Synaptic Package Manager, created an intrepid fdi policy file, replug in the touchscreen USB cable, and boom! It worked and even seemed perfectly calibrated (though I imagine that was a fluke). I didn't even have to restart X.

Here's the details:
1) install xserver-xorg-input-evtouch (I used synaptic package manager ... universe repository enabled)

2) lshal | grep input.product
make note of the name of your touchscreen when it comes up (mine was "3M 3M Touchscreen - EX II", it could also be "MicroTouch Systems, Inc. MicroTouch USB Touchscreen - EX II" if it's a 3M, and I think this will work with just about any other brand USB touchscreen too. evtouch is the driver to use if you have an USB touchscreen.)

3) Create the file /etc/hal/fdi/policy/touchscreen.fdi containing the following:
Code:

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
        <device>
                <match key="input.product" contains="3M 3M Touchscreen - EX II">
                        <merge key="input.x11_driver" type="string">evtouch</merge>
                        <merge key="input.x11_options.MinX" type="string">14200</merge>
                        <merge key="input.x11_options.MaxX" type="string">2160</merge>
                        <merge key="input.x11_options.MinY" type="string">2580</merge>
                        <merge key="input.x11_options.MaxY" type="string">13800</merge>
                </match>
        </device>
</deviceinfo>

Notice the "<match key=" statement contains the value obtained in Step 2.

Step 4: Unplug and plug back in the touchscreen. It should now work, no need to restart X! Didn't even need to recalibrate - it's right on.

Note: After installing evtouch, "System->Administration->Calibrate Touchscreen" appears. Using this tool (at least for this particular chipset) results in an inverted X-axis. Don't touch it.

davea0511 09-23-2009 12:41 PM

For more information on the above method check out this link on HAL:

http://www.freedesktop.org/wiki/Software/hal

You might as well get used to it ... from what I've read it looks like this is the future of Xorg (the the dismay of some who like to hard-code things). No more hard-coding anything into an xorg.conf file. It all works on a "hardware Abstraction Layer", kind of like how "plug-n-play" works in windows I think. HAL takes care of getting the plug-n-play info when a USB device is plugged in (or firewire, I'm sure) and then sets it up in xorg for you. In the above case I still had to create a policy file but I think ultimately the plan is that it would do that for you as well, or maybe xorg would do that part of it but the content seems it would be independent of the hardware so it should be pretty cut-and-paste.

Anyway, in my Ubuntu distro the xorg.conf contains almost nothing and contains this blurb at the top:

# Note that some configuration settings that could be done previously
# in this file, now are automatically configured by the server and settings
# here are ignored.

Very cool if you ask me. Wish I'd have tried it a week ago, before I wasted all that time on hard-coding everything as I did to no avail.

davedumas0 10-28-2009 10:51 AM

i have the same touch screen but mine is a serial and my mobo does not have a serial port i do have a usb adapter im runing x64 ubuntu with 2.6 kernel but ubuntu does not see the touch screen at all (the monitor works but no touch) im not sure what to do now




any help would be apreciated

knobby67 10-29-2009 04:27 AM

Quote:

Originally Posted by davedumas0 (Post 3735461)
i have the same touch screen but mine is a serial and my mobo does not have a serial port i do have a usb adapter im runing x64 ubuntu with 2.6 kernel but ubuntu does not see the touch screen at all (the monitor works but no touch) im not sure what to do now




any help would be apreciated



Have you made sure the rs-232 is working? If not...
First make sure your usb-rs232 is working, it should be auto detected (at least the ones I've used are) in 2.6. If you haven't got a rs232terminal download one, lots on net or apt-get. You'll need to work out what it's /dev is. You can then start up the terminal and attach a wire across the tx-rx pins on the rs232, you should then see what you type reappear in the rs232 terminal receive window.

davedumas0 10-30-2009 10:31 AM

here is my lsusb

#Bus 001 Device 005: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC

and here is dmesg
#[ 862.489652] usb 1-7: new full speed USB device using ohci_hcd and address 10
[ 862.707923] usb 1-7: configuration #1 chosen from 1 choice
[ 862.710876] ftdi_sio 1-7:1.0: FTDI USB Serial Device converter detected
[ 862.710897] /build/buildd/linux-2.6.24/drivers/usb/serial/ftdi_sio.c: Detected FT232BM
[ 862.710951] usb 1-7: FTDI USB Serial Device converter now attached to ttyUSB0
i think the usbconverter is working?
im not sure what to do

davedumas0 10-30-2009 10:42 AM

i can run #cat /dev/ttyUSB0
and touch the screen and i do get output

knobby67 10-31-2009 04:37 AM

As I don't know what you've done I'll ask, sorry if you have

1 Have you downloaded and installed the correct drivers?
2 Have you made sure you've put the touchscreen into xorg?


3. If you get output from the screen, it must be driver or xorg set up. Have you tried cat /proc/bus/input/devices to see if it's seen as an input devicce


All times are GMT -5. The time now is 03:53 AM.