个人工具

“UbuntuHelp:EloIntelliTouch”的版本间的差异

来自Ubuntu中文

跳转至: 导航, 搜索
第30行: 第30行:
 
Open /etc/X11/xorg.conf and add this lines:
 
Open /etc/X11/xorg.conf and add this lines:
 
<pre><nowiki>Section "InputDevice"
 
<pre><nowiki>Section "InputDevice"
Identifier "touchscreen"
+
    Identifier "touchscreen"
Driver "evtouch"
+
    Driver "evtouch"
Option "Device" "/dev/input/evtouch_event"
+
    Option "Device" "/dev/input/evtouch_event"
Option "DeviceName" "touchscreen"
+
    Option "DeviceName" "touchscreen"
Option "MinX" "4095"
+
    Option "MinX" "4095"
Option "MinY" "4095"
+
    Option "MinY" "4095"
Option "MaxX" "0"
+
    Option "MaxX" "0"
Option "MaxY" "0"
+
    Option "MaxY" "0"
Option "ReportingMode" "Raw"
+
    Option "ReportingMode" "Raw"
Option "Emulate3Buttons"
+
    Option "Emulate3Buttons"
Option "Emulate3Timeout" "50"
+
    Option "Emulate3Timeout" "50"
Option "SendCoreEvents" "On"
+
    Option "SendCoreEvents" "On"
 
EndSection
 
EndSection
 +
 
Section "InputDevice"
 
Section "InputDevice"
Identifier "dummy"
+
    Identifier "dummy"
Driver "void"
+
    Driver "void"
Option "Device" "/dev/input/mice"
+
    Option "Device" "/dev/input/mice"
 
EndSection</nowiki></pre>
 
EndSection</nowiki></pre>
 
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).
 
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
 
Now search for "ServerLayout" section in the same file, and add this lines just before EndSection
 
<pre><nowiki> InputDevice    "touchscreen"  "CorePointer"
 
<pre><nowiki> InputDevice    "touchscreen"  "CorePointer"
InputDevice "dummy"</nowiki></pre>
+
    InputDevice "dummy"</nowiki></pre>
 
Note that Section "InputDevice" with Identifier "dummy" and InputDevice "dummy" are only needed if you use xorg > 7.2.  
 
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:
 
Next, you have to find your monitors name:
<code><nowiki>cat /proc/bus/input/devices</nowiki></code>
+
<pre><nowiki>cat /proc/bus/input/devices</nowiki></pre>
 
you'll get something like this:
 
you'll get something like this:
 
<pre><nowiki>I: Bus=0003 Vendor=04e7 Product=0020 Version=0100
 
<pre><nowiki>I: Bus=0003 Vendor=04e7 Product=0020 Version=0100

2007年12月6日 (四) 10:13的版本

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 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"]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, I used USB although monitor also

has Serial interface.

  • 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.