opengalax touchscreen daemon
C Shell
Latest commit 13375c6 Jul 11, 2013 @poliva Merge pull request #4 from LionelMartin/master
Added directions 6 and 7 to the driver (useful for archos 9 device)
Permalink
Failed to load latest commit information.
debian update debian changelog Jul 2, 2012
10-opengalax.conf make sure product matches opengalax Jun 29, 2012
75_opengalax handle SIGUSR1 to re-initialize the panel Jun 28, 2012
LICENSE initial import Jun 22, 2012
Makefile prepare for debian packaging Jul 2, 2012
README.md
configfile.c add psmouse support Jun 29, 2012
functions.c properly close fds on exit Jul 1, 2012
opengalax-init
opengalax.c Added directions 6 and 7 Jul 11, 2013
opengalax.h properly close fds on exit Jul 1, 2012
psmouse.c change psmouse udev name so it doesn't conflict with MatchProduct xor… Jul 2, 2012
psmouse.h fix compiler warnings Jun 30, 2012

README.md

opengalax - touchscreen daemon

© 2012 Pau Oliva Fora - pof[at]eslack(.)org

Opengalax is a Linux userland input device driver for touchscreen panels manufactured by EETI: eGalax, eMPIA, TouchKit, Touchmon, HanTouch, D-WAV Scientific Co, eTurboTouch, Faytech, PanJit, 3M MicroTouch EX II, ITM, etc.

The panels can be connected using 3 different interfaces:

  • USB (Hardware ID: USB\VID_0EEF&PID_0001 or USB\VID_0EEF&PID_0002)
  • RS232 (Hardware ID: SERNUM\EGX5800, SERNUM\EGX5900, SERNUM\EGX6000, SERNUM\EGX5901 and SERNUM\EGX5803)
  • PS/2 (Hardware ID: *PNP0F13)

At the moment only PS/2 (via serio_raw) interface is supported because this is the hardware I have, but it shouldn't be difficult to adapt the source for USB or Serial (RS232) devices. Feel free to fork and send a pull request if you can adapt it for other devices/interfaces.

Why? Because EETI only offers closed source binary drivers for those touch panels, the eGalax Touch driver is outdated and doesn't work properly on new Xorg servers (the module ABI differs), and the newer closed source eGTouch daemon driver doesn't work properly with PS2 devices like mine, so I wrote opengalax to have an alternative Open Source (GPL) driver.

Configuration

When first launched opengalax will create a configuration file in `/etc/opengalax.conf' with the default configuration values:

# opengalax configuration file

#### config data:
serial_device=/dev/serio_raw0
uinput_device=/dev/uinput
rightclick_enable=0
rightclick_duration=350
rightclick_range=10
# direction: 0 = normal, 1 = invert X, 2 = invert Y, 4 = swap X with Y
direction=0
# set psmouse=1 if you have a mouse connected into the same port
# this usually requires i8042.nomux=1 and i8042.reset kernel parameters
psmouse=0

#### calibration data:
# - values should range from 0 to 2047
# - right/bottom must be bigger than left/top
# left edge value:
xmin=0
# right edge value:
xmax=2047
# top edge value:
ymin=0
# bottom edge value:
ymax=2047

When launched without parameters, opengalax will read the configuration from this config file, some configuration values can also be overwritten via the command line:

Usage: opengalax [options]
    -c                   : calibration mode
	-f                   : run in foreground (do not daemonize)
	-s <serial-device>   : default=/dev/serio_raw0
	-u <uinput-device>   : default=/dev/uinput

Calibration

Altough opengalax provides a basic calibration mode (-c command line switch), for best results it is recommended to use xinput_calibrator and leave the default values in opengalax configuration file.

Usage in Xorg

Opengalax will configure evdev xorg driver to handle right click emulation by default, so you don't need to enable right click emulation in the configuration file. If for some reason you do not want to use evdev, opengalax can handle the right click emulation itself by enabling it in the configuration file.

Ubuntu packages

Official Ubuntu packages are available in poliva/opengalax ppa:

 sudo add-apt-repository ppa:poliva/opengalax
 sudo apt-get update
 sudo apt-get install opengalax