2000-04-26 18:26:31 +00:00
|
|
|
<!doctype linuxdoc system>
|
|
|
|
<!-- LinuxDoc file was created by hand and emacs
|
|
|
|
Fri Dec 10 17:45:29 GMT 1999 -->
|
|
|
|
<article>
|
2002-11-06 15:19:46 +00:00
|
|
|
<title>
|
|
|
|
Linux Touch Screen HOWTO
|
2000-04-26 18:26:31 +00:00
|
|
|
</title>
|
2002-11-06 15:19:46 +00:00
|
|
|
<author>
|
2006-11-08 14:28:12 +00:00
|
|
|
(c) 2002-2006 by Christoph Baumann, cgb(at)debian.org
|
2000-04-26 18:26:31 +00:00
|
|
|
</author>
|
2006-11-08 14:28:12 +00:00
|
|
|
<date>v3.4 -- Nov 7, 2006 -- the GNU Free
|
2004-10-08 16:01:08 +00:00
|
|
|
Documentation License applies to this document
|
2000-04-26 18:26:31 +00:00
|
|
|
</date>
|
|
|
|
<abstract>
|
|
|
|
This document describes how to set up a touch screen input device under
|
|
|
|
XFree86. As the author had only the opportunity to work with devices
|
|
|
|
from EloTouch(R) and MicroTouch(R) this HOWTO is rather specific for these
|
2002-07-10 19:58:37 +00:00
|
|
|
devices. The examples given in this HOWTO concentrate on devices
|
|
|
|
connected via the serial port i.e. /dev/ttyS0 or /dev/ttyS1.
|
|
|
|
(Information about USB devices would be appreciated!)
|
2000-04-26 18:26:31 +00:00
|
|
|
</abstract>
|
2002-07-10 19:58:37 +00:00
|
|
|
<toc>
|
2000-04-26 18:26:31 +00:00
|
|
|
|
|
|
|
<sect>How to configure the device
|
|
|
|
<p>
|
|
|
|
Touch screen devices are configured in the Xinput section in the XF86Config
|
|
|
|
file (mostly /etc/X11/XF86Config or /etc/XF86Config).
|
|
|
|
At first verify that the device driver modules exist. They are located in
|
|
|
|
/usr/X11R6/lib/modules/ (the modules for the above mentioned devices are
|
|
|
|
xf86Elo.so and xf86MuTouch.so). Now have a look into XF86Config.
|
|
|
|
There should be a section looking like this:
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p><verb>
|
|
|
|
Section "Files"
|
|
|
|
...
|
|
|
|
ModulePath "/usr/X11R6/lib/modules"
|
|
|
|
...
|
|
|
|
EndSection
|
|
|
|
</verb></p>
|
|
|
|
<p>
|
|
|
|
To get the module loaded by the X server there has to be a section like this:
|
|
|
|
</p>
|
|
|
|
<p><verb>
|
|
|
|
Section "Module"
|
|
|
|
Load "xf86Elo.so"
|
|
|
|
EndSection
|
|
|
|
</verb></p>
|
|
|
|
<p>
|
|
|
|
Now the more tricky part. X needs to know some parameters about the device.
|
|
|
|
The section for this looks like this (see "man XF86Config" for more details):
|
|
|
|
</p>
|
|
|
|
<p><verb>
|
|
|
|
Section "Xinput"
|
|
|
|
SubSection "Elographics"
|
|
|
|
#the entry for a MicroTouch device would be SubSection "MicrotouchFinger"
|
|
|
|
Port "/dev/ttyS1" # for a device at serial port 2
|
|
|
|
DeviceName "TouchScreen" #could be any unambiguous name
|
|
|
|
MinimumXPosition 300
|
|
|
|
MaximumXPosition 3700
|
|
|
|
MinimumYPosition 300
|
|
|
|
MaximumYPosition 3700
|
|
|
|
UntouchDelay 10 #not supported with MuTouch
|
|
|
|
ReportDelay 10 #not supported with MuTouch
|
2000-10-24 15:42:19 +00:00
|
|
|
AlwaysCore #activates the device on startup
|
2000-04-26 18:26:31 +00:00
|
|
|
EndSubSection
|
|
|
|
EndSection
|
|
|
|
</verb></p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
The values for the entries MinimumXPosition etc. are of course specific
|
|
|
|
for the setup of the hardware (i.e. depend on the position of the touch
|
|
|
|
screen relative to the monitor). The values determine where the points (0,0)
|
|
|
|
and (xmax,ymax) on your monitor (xmax and ymax depend on the resolution
|
|
|
|
chosen for the Xserver, such as 1024x768) are mapped on the touch screen.
|
|
|
|
The device driver reads these values and interpolishes the other coordinates.
|
|
|
|
For illustration:
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p><verb>
|
|
|
|
--------------touch screen area-----------------
|
|
|
|
I I
|
|
|
|
I ########visible monitor area############## I
|
|
|
|
I #x # I
|
|
|
|
I # (0,0) # I
|
|
|
|
I # (MinimumXPosition,MinimumYPosition) # I
|
|
|
|
I # # I
|
|
|
|
I # # I
|
|
|
|
I # # I
|
|
|
|
I # # I
|
|
|
|
I # # I
|
|
|
|
I # # I
|
|
|
|
I # # I
|
|
|
|
I # (MaximumXPosition,MaximumYPosition)# I
|
|
|
|
I # (xmax,ymax)# I
|
|
|
|
I # x# I
|
|
|
|
I ########################################## I
|
|
|
|
I I
|
|
|
|
------------------------------------------------
|
|
|
|
</verb></p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
This mapping can be done by trial and error or by reading the raw output
|
|
|
|
of the device (needs some serial port programming, see "The Linux Serial
|
|
|
|
Programming HOWTO"). For the types EloTouch and MicroTouch exists a
|
|
|
|
rudimentary calibration tool (written by the author of this document,
|
|
|
|
it can be found at
|
|
|
|
<url
|
2006-11-08 14:28:12 +00:00
|
|
|
url="http://touchcal.sourceforge.net"
|
|
|
|
name="http://touchcal.sourceforge.net">).
|
2000-04-26 18:26:31 +00:00
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
<sect>Activating the device
|
|
|
|
<p>
|
|
|
|
After starting X, type in an Xterminal the command
|
|
|
|
<p><tt>xsetpointer <devicename></tt></p>
|
|
|
|
<p>
|
|
|
|
where<tt><devicename></tt> is the name defined in XF86Config
|
|
|
|
with the line
|
|
|
|
<tt>DeviceName "....."</tt>, in this example it would be TouchScreen.
|
|
|
|
</p>
|
2000-10-24 15:42:19 +00:00
|
|
|
<p>To get the device working on startup use the AlwaysCore option in
|
|
|
|
the touch screen section (see above)</p>
|
|
|
|
|
|
|
|
<sect>Using touch screen and mouse in parallel
|
|
|
|
<p>
|
|
|
|
To use the touch screen and a mouse in parallel you need to enter the
|
|
|
|
mouse specs in the Xinput-section. This definitions should be the same
|
|
|
|
as in the Pointer-section. The following example is for a
|
|
|
|
PS/2-mouse:
|
|
|
|
<verb>
|
|
|
|
Section "Xinput"
|
|
|
|
SubSection "Mouse"
|
|
|
|
Protocol "PS/2"
|
|
|
|
Port "/dev/mouse" #could also be /dev/psaux
|
|
|
|
DeviceName "Mouse"
|
|
|
|
AlwaysCore
|
|
|
|
EndSubSection
|
|
|
|
...
|
|
|
|
EndSection
|
|
|
|
</verb>
|
|
|
|
Several people pointed this out, especially the usage of the
|
|
|
|
AlwaysCore option. Thanks to them all.
|
|
|
|
</p>
|
2000-04-26 18:26:31 +00:00
|
|
|
|
2002-01-12 22:43:00 +00:00
|
|
|
<sect>Configuration under XFree86 4
|
|
|
|
<p>
|
|
|
|
(from Lee Monamy)
|
|
|
|
</p>
|
|
|
|
<p>
|
|
|
|
Example XF86Config-4 for an ELO touch screen:
|
|
|
|
|
|
|
|
<verb>
|
|
|
|
Section "InputDevice"
|
|
|
|
Identifier "ELO touchscreen"
|
|
|
|
Driver "elographics"
|
|
|
|
Option "Device" "/dev/ttyS0"
|
|
|
|
Option "MinimumXPosition" "300"
|
|
|
|
Option "MaximumXPosition" "3700"
|
|
|
|
Option "MinimumYPosition" "300"
|
|
|
|
Option "MaximumYPosition" "3700"
|
|
|
|
Option "UntouchDelay" "10"
|
|
|
|
Option "ReportDelay" "10"
|
|
|
|
Option "SendCoreEvents" "yes"
|
|
|
|
EndSection
|
|
|
|
</verb>
|
|
|
|
|
|
|
|
Noteable differences between this and the version 3 config are that you
|
|
|
|
specify a Device, *not* a Port, otherwise you get an error.
|
|
|
|
Also, AlwaysCore from v3 has been replaced with SendCoreEvents.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
You must also add to the ServerLayout section, despite that X might
|
|
|
|
say:
|
|
|
|
"(II) XINPUT: Adding extended input device "TOUCHSCREEN" (type:
|
|
|
|
Elographics Touch Screen)"
|
|
|
|
</p>
|
|
|
|
<p>
|
|
|
|
<verb>
|
|
|
|
Section "ServerLayout"
|
|
|
|
Identifier "Default Layout"
|
|
|
|
Screen "Default Screen"
|
|
|
|
InputDevice "Generic Keyboard"
|
|
|
|
...
|
|
|
|
InputDevice "ELO touchscreen"
|
|
|
|
EndSection
|
|
|
|
</verb>
|
|
|
|
</p>
|
|
|
|
|
2002-07-10 19:58:37 +00:00
|
|
|
<sect1>Another configuration example
|
|
|
|
<p>
|
|
|
|
from Dirk Mueller
|
|
|
|
(for Microtouch SMT3 Series):
|
|
|
|
</p>
|
|
|
|
<p>
|
|
|
|
<verb>
|
|
|
|
Section "InputDevice"
|
|
|
|
Identifier "MicroTouchFinger"
|
|
|
|
Driver "mutouch"
|
|
|
|
Option "Type" "finger"
|
|
|
|
Option "Device" "/dev/ttyS0"
|
|
|
|
Option "ScreenNo" "0"
|
|
|
|
Option "MinimumXPosition" "0"
|
|
|
|
Option "MaximumXPosition" "16383"
|
|
|
|
Option "MinimumYPosition" "0"
|
|
|
|
Option "MaximumYPosition" "16383"
|
|
|
|
EndSection
|
|
|
|
</verb>
|
|
|
|
</p>
|
|
|
|
<p>
|
|
|
|
Option "Type" can be "finger" or "stylus"
|
|
|
|
Since Microtouch was bought by 3M-Touch, the resources are on
|
|
|
|
<url
|
|
|
|
url="http://www.3M.com/3MTouchSystems/downloads/legacy.jhtml#Linux"
|
|
|
|
name="http://www.3M.com/3MTouchSystems/downloads/legacy.jhtml#Linux">
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<sect1>Addendum
|
|
|
|
<p>
|
|
|
|
According to Wong Yeow Sen the configuration option names have changed
|
|
|
|
in XFree86 4.2 (at least with Red Hat 7.3). If it seems your
|
|
|
|
calibration values aren't parsed try the following:
|
|
|
|
</p>
|
|
|
|
<p>
|
|
|
|
<verb>
|
|
|
|
...
|
|
|
|
Option "MinX" "100"
|
|
|
|
Option "MaxX" "4000"
|
|
|
|
Option "MinY" "100"
|
|
|
|
Option "MaxY" "4000"
|
|
|
|
...
|
|
|
|
</verb>
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
<sect>Touch Screens on Fujitsu LifeBooks
|
|
|
|
<p>(from Joerg Hau)</p>
|
|
|
|
<p>Information about these devices can be found here:</p>
|
|
|
|
<p>"...</p>
|
|
|
|
<p>
|
|
|
|
Harald Hoyer's Linux Touch Panel Drivers for the Fujitsu Lifebooks
|
|
|
|
B112/B142/B2130,
|
|
|
|
<url url="http://parzelle.de/Linux/Lifebook/"
|
|
|
|
name="http://parzelle.de/Linux/Lifebook/">. Unfortunately,
|
|
|
|
this is XFree 3.x only and it seems that this information is now
|
|
|
|
"static" (dead?).
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
Kenan Esau's Lifebook Series B Touchscreen driver, which is the
|
|
|
|
adaptation of Harald's driver to XFree 4.x.
|
|
|
|
<url
|
2002-11-06 15:19:46 +00:00
|
|
|
url="http://www.conan.de/lifebook/lifebook.html"
|
|
|
|
name="http://www.conan.de/lifebook/lifebook.html">.
|
2002-07-10 19:58:37 +00:00
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
I [Joerg Hau] have used Kenan's driver on my Fujitsu LifeBook B142
|
|
|
|
(described at
|
|
|
|
<url url="http://www.mysunrise.ch/users/joerg.hau/linux/b142.htm"
|
|
|
|
name="http://www.mysunrise.ch/users/joerg.hau/linux/b142.htm">),
|
|
|
|
and it works like a charm.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p>..."</p>
|
|
|
|
|
2006-11-08 14:28:12 +00:00
|
|
|
<sect>Configuration under X.Org
|
|
|
|
<p>
|
|
|
|
(from Kenan Bektas)
|
|
|
|
</p>
|
|
|
|
<p>
|
|
|
|
Example xorg.conf for an Elo TouchSystems 2216 AccuTouch® USB Touch-Monitor:
|
|
|
|
<verb>
|
|
|
|
Section "InputDevice"
|
|
|
|
Identifier "elo"
|
|
|
|
Driver "elo"
|
|
|
|
Option "AlwaysCore"
|
|
|
|
Option "MinX" "300"
|
|
|
|
Option "MaxX" "3700"
|
|
|
|
Option "MinY" "300"
|
|
|
|
Option "MaxY" "3700"
|
|
|
|
Option "ScreenNumber" "0"
|
|
|
|
Option "ButtonNumber" "1"
|
|
|
|
EndSection
|
|
|
|
</verb>
|
|
|
|
</p>
|
|
|
|
|
2000-04-26 18:26:31 +00:00
|
|
|
<sect>Suggested reading
|
|
|
|
<p>
|
|
|
|
<itemize>
|
|
|
|
<item>Manpage for XF86Config
|
2002-01-19 19:48:02 +00:00
|
|
|
<item><url url="http://www.elotouch.com/support/linux.asp"
|
2000-09-22 13:50:02 +00:00
|
|
|
name="http://www.elotouch.com/Support/linux.asp">
|
2002-11-06 15:19:46 +00:00
|
|
|
<item><url url="http://www.3M.com/3MTouchSystems/downloads/legacy.jhtml#Linux"
|
|
|
|
name="http://www.3M.com/3MTouchSystems/downloads/legacy.jhtml#Linux">
|
2000-09-22 13:50:02 +00:00
|
|
|
<item><url url="http://www.hof-berlin.de/tablet/tablet.html"
|
|
|
|
name="http://www.hof-berlin.de/tablet/tablet.html"> (Thanks to
|
|
|
|
Christer Olofsson for sending me this URL)
|
2004-10-08 16:01:08 +00:00
|
|
|
<item><url url="http://freshmeat.net/projects/xf86elousb"
|
|
|
|
name="http://freshmeat.net/projects/xf86elousb"> (Driver for iTouch USB)
|
2000-04-26 18:26:31 +00:00
|
|
|
<item>The manual shipped with your touch screen :-)
|
|
|
|
</itemize>
|
|
|
|
</article>
|
|
|
|
|