Evtouch

From Bashlinux
Revision as of 03:31, 16 June 2015 by Manpaz (talk | contribs) (Created page with "__NOTOC__ Drivers for evtouch, generally this devices are systems with touchscreen embedded. To check if this driver must be installed check the devices under <tt>/proc/bus/us...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Drivers for evtouch, generally this devices are systems with touchscreen embedded. To check if this driver must be installed check the devices under /proc/bus/usb/devices and find for eGalaxy

# cat /proc/bus/usb/devices | grep -A2 eGalax
 S:  Manufacturer=eGalax Inc.
 C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA
 I:  If#= 0 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=ff Driver=usbtouchscreen

Driver

In order to get driver working on a system is necessary to have done 3 parts:

  • Xorg modules
  • Xorg configuration
  • udev rules

How to setup Xorg modules for evtouch

The modules are installed under /usr/lib/xorg/modules/input

  • evtouch_drv.la
  • evtouch_drv.so

The xorg configuration will have 3 new sections.

  • Two new input devices under _Section "ServerLayout"
   InputDevice    "touchscreen0"
   InputDevice    "dummy"
  • A new section for the touchscreen
Section "InputDevice"
   Identifier  "touchscreen0"
   Driver      "evtouch"
   Option      "Device" "/dev/input/evtouch_event"
   Option      "MinX" "165"
   Option      "MinY" "230"
   Option      "MaxX" "1750"
   Option      "MaxY" "1700"
   Option      "SwapX" "1"
   Option      "ReportingMode" "Raw"
   Option      "SendCoreEvents" "On"
   Option      "ButtonMapping" "1"
EndSection
  • Finally, a new section for a null pointer device will be added to avoid weird behavior on the touchscreen
Section "InputDevice"
   Identifier  "dummy"
   Driver      "void"
   Option      "Device" "/dev/input/mice"
EndSection

There are 2 ways to have it installed on system, from Bashlinux repository and manually.

  • From Bashlinux repository, innstall the driver using yum
# yum install xorg-x11-drv-evtouch

Calibration

Calibration is done by modifying Xorg configuration on /etc/X11/xorg.conf

Each device has different values to work correct, this section describes some working values for specific devices. All configurations were tested at 1024x768

How to calibrate evtouch touchscreens on small factor devices

Note that all devices need in some point to swap one of the axis and/or rotate the pointer movements.

  • MTP-1702
       Option      "MinX" "215"
       Option      "MinY" "400"
       Option      "MaxX" "1700"
       Option      "MaxY" "1750"
       Option      "SwapX" "1"
  • MTP-1502
       Option      "MinX" "165"
       Option      "MinY" "230"
       Option      "MaxX" "1750"
       Option      "MaxY" "1700"
       Option      "SwapX" "1"
  • Protech PS-6508
       Option      "MinX" "500"
       Option      "MinY" "500"
       Option      "MaxX" "3500"
       Option      "MaxY" "3580"
       Option      "SwapY" "1"
       Option      "Rotate" "CW"
  • IRTouch as USB
       Option      "MinX" "50"
       Option      "MinY" "50"
       Option      "MaxX" "4050"
       Option      "MaxY" "4050"
  • Partner EM-200
       Option      "MinX" "200"
       Option      "MinY" "200"
       Option      "MaxX" "3900"
       Option      "MaxY" "3900"
Warning touchcal doesn't work
This driver is intended for USB evtouch devices and touchcal calibration tool might not work because this tool was designed for serial devices.

How to calibrate evtouch touchscreens on Fedora

On FC10 evtouch handles almost all USB touchscreens, excepting PenMount which has its own driver build from source with its own calibration tool.

The touchscreens that are going to be handled by evtouch driver, are initiated by the usbtouchscreen kernel module, and then called from xorg fro the special device /dev/input/evtouch_event that points to the proper event defined on udev rules.

The rules are defined on /etc/udev/rules.d/50-tapcode.rules file, and the following are the current defined USB touchscreens for evtouch driver:

* USB IRTouch
# IRTOUCHSYSTEMS Co. Ltd.
KERNEL=="event*", SUBSYSTEM=="input", ATTRS{idVendor}=="595a", ATTRS{idProduct}=="0001", SYMLINK+="input/evtouch_event"

* USB IRTouch
# IRTOUCHSYSTEMS Co. Ltd.
KERNEL=="event*", SUBSYSTEM=="input", ATTRS{idVendor}=="6615", ATTRS{idProduct}=="0001", SYMLINK+="input/evtouch_event"

* Elo entuitive
# Elo TouchSystems
KERNEL=="event*", SUBSYSTEM=="input", ATTRS{idVendor}=="04e7", ATTRS{idProduct}=="0020", SYMLINK+="input/evtouch_event"

* Partner EM-200
# D-WAV Scientific Co., Ltd eGalax TouchScreen
KERNEL=="event*", SUBSYSTEM=="input", ATTRS{idVendor}=="0eef", ATTRS{idProduct}=="0001", SYMLINK+="input/evtouch_event"