English / Deutsch  -   15/Nov/2014: plopKexec update will be released soon
11/Nov/2014: Plop Linux for Raspberry PI will be released soon
06/Nov/2014: A bugfixed hfsprescue will be released in the next few days

Xorg Evdev Touchscreen Driver (plpevtch)


page update: 25/May/2010
Print version

Introduction


The plpevtch driver is an eventdevice driver for touchscreens under Xorg 7.x.

Why another touchscreen driver when evtouch already exists? I was using evtouch on my Flybook with Xorg 6.9 very long. But with Xorg 7.3 it was not working for me. Shortly I bought a touchscreen and I was not able to get it to work with evtouch. Then quickly I created this new driver and it works in the way I want. plpevtch is not a fork of evtouch.


Download


xf86-input-plpevtch-0.5.0.tar.gz (2010/05/25)

xf86-input-plpevtch-0.4.1.tar.gz (2010/04/17) SwapAxes added by Ken
xf86-input-plpevtch-0.4.0.tar.gz (2009/02/26)


Supported Hardware


I have only 2 different touchscreens, so i can only say that it works for those. But the driver should work with any other eventdev touchscreen kernel driver too.

The driver was successful tested on

  • USB Touchscreen eGalax (ID 0eef:0001 D-WAV Scientific Co., Ltd eGalax TouchScreen)
  • Flybook Touchscreen PenmountLPC


Configuration


Important: its required that the evdev kernel module is loaded or builtin in your kernel!

Here is a sample configuration for Xorg 7.x xorg.conf

Section "InputDevice"
    Identifier "touchscreen"
    Driver    "plpevtch"

    Option "Device" "/dev/input/event3"	# <-- use the evdev name
					# see /proc/bus/input/devices for your eventX
    
#    Option "Calibrate" 	# <-- uncomment this line to calibrate
#    Option "Debug" 		# <-- uncomment this line for debug

#    Option "MinX" "67"
#    Option "MaxX" "1984"

#    Option "MinY" "42"
#    Option "MaxY" "1920"

#    Option "InvX"		# <-- uncomment this line to invert X
#    Option "InvY"		# <-- uncomment this line to invert Y

#    Option "RightClick" 	"False"	# <-- uncomment this line to disable right click
					# right click is enabled by default
#    Option "RightClickMS" 	"5000"	# make right click after 5 seconds without moving the cursor
					# default is 3 seconds
#    Option "RightClickSquare"  "10"	# allow moving in a square of 10x10 pixels when waiting for
					# right click
					
#    Option "TouchFilter" 	"False"	# <-- uncomment this line to disable touch filter
					# touch filter is enabled by default
#    Option "TouchFilterMS" 	"20"	# ignore press/release within 20ms, default is 10ms

#    Option "SwapAxes" 		"True"	# swap X/Y axis

#    Option "GrabDevice"        "True"  # force  a  grab on the event device. Doing so will ensure that no
	                                # other driver can initialise the same device
EndSection    
add to the ServerLayout
Section "ServerLayout"

    Identifier  "Simple Layout"
    Screen "Screen 1"
    InputDevice "Keyboard1" "CoreKeyboard"
    InputDevice "Mouse1" "CorePointer"

    InputDevice "touchscreen" "Pointer"  # <--- add this to ServerLayout

EndSection

How to calibrate


  • add Option "Calibrate" to the touchscreen section

  • restart the X server

  • move along the borders of your touchscreen multiple times (ignore the mouse pointer). Its required to get the minimum and maximum values of your screen.

  • search /var/log/Xorg.0.log for the last 'plpevdev' and 'Calibrate'. You will see something like

    (II) touchscreen: Calibrate | MinX: 67 | MaxX: 1984 | MinY: 42 | MaxY: 1920

    use this values in the touchscreen section of your xorg.conf

  • remove the Calibrate Option in the touchscreen section

  • restart the X server


Install


If your Xorg is installed in /usr/X11R7 then run
./configure --prefix=/usr/X11R7 && make && make install

If your Xorg is installed in /usr then run
./configure --prefix=/usr && make && make install


© 2014 by Elmar Hanlhofer