|
Unsupported Version |
First of all, this should work for all touch screen monitors with IntelliTouch (Surface Acoustic Wave) technology, and hopefully other monitors. You can also find the tutorial here: http://ubuntuforums.org/showthread.php?t=579155
To use the open-source ELO graphics X input driver included with Ubuntu (for 32- and 64-bit), see the EloTouchScreen page instead.
www.elotouch.com offers you precompiled binaries for their monitors, unfortunately they just work for kernels <= 2.6.17. If you want them to compile for a special kernel/distro for you, they will charge you just a few $1,500 bucks (Hell no!, monitors I bought were expensive enough). I've found an open source driver called evtouch that works great in my PC (using USB), so, let's begin.
Why this guide
This guide is meant to help people install touch screen monitors that use IntelliTouch technology (Surface Acoustic Wave), hopefully, other technologies will also work, although I don't have the hardware to test it. This guide was also meant to complement the source's website, as it lacked right values for Elo Touch monitor, and tutorial didn't mention udev-rules, and events, which are needed to set the right handlers for the linux kernel.
Sources
Sources, and an incomplete tutorial can be found here: http://stz-softwaretechnik.com/~ke/touchscreen/evtouch.html
Specs
The specs of the monitor I used, plus my PC specs:
Elo Touch Screen monitor with IntelliTouch (Surface Acoustic Wave). Model 1939L (also found to work with 1528L), both USB.
- Linux ubuntu 2.6.20-16-generic #2 SMP Sun Sep 23 19:50:39 UTC 2007 i686 GNU/Linux.
- Ubuntu 7.04 Feisty Fawn
- CPU: Intel P4 3Ghz with HT
Prerequisites
I used the precompiled binaries, you can find them in the website I mentioned in the first point. The latest at the time I'm writing this is:
- Precompiled driver for X V0.8.7
Also, you will need to copy udev-rules, the file you need can be found also in the same website, inside a sources tarball:
- X driver sources V0.8.4 (not needed if you are copying my udev-rules, pasted later in this how to)
Installation
tar -zxvf evtouch-0.8.7.tar.gz cd evtouch-0.8.7 sudo cp evtouch_drv.so /usr/lib/xorg/modules/input/
Open /etc/X11/xorg.conf and add this lines:
Section "InputDevice" Identifier "touchscreen" Driver "evtouch" Option "Device" "/dev/input/evtouch_event" Option "DeviceName" "touchscreen" Option "MinX" "4095" Option "MinY" "4095" Option "MaxX" "0" Option "MaxY" "0" Option "ReportingMode" "Raw" Option "Emulate3Buttons" Option "Emulate3Timeout" "50" Option "SendCoreEvents" "On" EndSection Section "InputDevice" Identifier "dummy" Driver "void" Option "Device" "/dev/input/mice" EndSection
If Min/Max values don't work correctly for you, you'll have to adjust that values manually (calibration application included in the sources does not work, the author of the sources himself has stated that, at the writing of this how to).
Now search for "ServerLayout" section in the same file, and add this lines just before EndSection
InputDevice "touchscreen" "CorePointer" InputDevice "dummy"
Note that Section "InputDevice" with Identifier "dummy" and InputDevice "dummy" are only needed if you use xorg > 7.2.
Next, you have to find your monitors name:
cat /proc/bus/input/devices
you'll get something like this:
I: Bus=0003 Vendor=04e7 Product=0020 Version=0100 N: Name="Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface" P: Phys=usb-0000:00:10.1-1/input0 S: Sysfs=/class/input/input2 H: Handlers=js0 event2 B: EV=b B: KEY=10000 0 0 0 0 0 0 0 0 B: ABS=100 3
Next, you have to add udev-rules to your system, download and extract "X driver sources V0.8.4" (or copy my rules, and modify it to fit to your needs):
tar -jxvf xf86-input-evtouch-0.8.4.tar.bz2 cd xf86-input-evtouch-0.8.4
Modify 69-touchscreen.rules file for your monitor, or copy the text to a text editor, adjust to your needs, and save the file as 69-touchscreen.rules:
# Evtouch udev.rules # # Because Evtouch can't autoprobe devices we assume that we only # Have one device so we can make it like this :P # # List here your touchscreen, check if it works and send it to rpms_AT_ilmi_DOT_fi # Name can be found in /proc/bus/input/devices (In console make command 'cat /proc/bus/input/devices') # # Tested on Telepeak Model 800-Y-Y-V (http://www.telepeak.com). Should work on most eGalax based stuff! KERNEL=="event*", SUBSYSTEM=="input", ATTRS{name}=="Elo TouchSystems, Inc. Elo TouchSystems 2700 IntelliTouch(r) USB Touchmonitor Interface", SYMLINK+="input/evtouch_event" # # This could be also like this (eGalax Inc. USB TouchController) # KERNEL=="event*", SUBSYSTEM=="input", ATTRS{idVendor}=="0eef", ATTRS{idProduct}=="0001", SYMLINK+="input/evtouch_event" #
Now, copy the file to /etc/udev/rules.d/
That should be it, restart your system, and it should work.
More on compatibility
Using this very helpful tutorial, I've also been able to make an Elo Touchcomputer 1528L work under both Ubuntu 7.04 (no changes needed except inverting Min/Max X and Y) and Fedora 7 (apart from inverting X and Y values, I had to add a regular mouse input device to xorg.conf instead of the dummy device. This way, in the ServerLayout section I have one Keyboard, one Mouse, and the "touchscreen" device, all of which are "CorePointer". I hope the author doesn't mind my edit of the wiki, I just thought I'd share.
My experience
I just wanted to share with everyone that I recently tried to duplicate these results on Ubuntu 7.10 (Gutsy) with an EloTouch 1537L Intellitouch USB. It did not work. I then installed Ubuntu 7.04 (Fiesty) and the out-of-box installation along with this tutorial work great. I did, have to swap the min and max X and Y values just like the contributor above mentioned but otherwise the touchscreen works great. I wish I could say what about 7.10 made it not work but I figure I'll save any 7.10 users the headache of figuring it out.