Comment 119 for bug 549447

Revision history for this message
In , Matt (matt-redhat-bugs) wrote :

For whatever reason, my egalax touchscreen gets confused with a synaptics touchpad, not the evdev driver. I had to change the above fdi file - specifically the "contains" part didn't match my device:

<?xml version="1.0" encoding="UTF-8"?> <!-- -*- SGML -*- -->
<deviceinfo version="0.2">
  <device>
    <match key="info.product" contains="eGalax INC. USB TouchController">
      <match key="info.capabilities" contains="input">
        <merge key="input.x11_driver" type="string">egalax</merge>
        <merge key="input.x11_device" type="string">usbauto</merge>
        <merge key="input.x11_parameters" type="string">/etc/egalax.cal</merge>
      </match>
    </match>
  </device>
</deviceinfo>

I put it in /etc/hal/fdi/policy, which is probably what the above post was referring to. After doing this, the touchscreen is loaded in xorg via hal using the egalax driver. I still have a problem where I can list the device in hal, and input.x11_parameters says /etc/egalax.cal, but the xorg driver doesn't seem to get this information, and is looking for the calibration file in the default location /var/lib/eeti.param.

#hal-device /org/freedesktop/Hal/devices/usb_device_eef_1_noserial_if0_logicaldev_input

udi = '/org/freedesktop/Hal/devices/usb_device_eef_1_noserial_if0_logicaldev_input'
  input.x11_device = 'usbauto' (string)
  input.x11_parameters = '/etc/egalax.cal' (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:0b.1/usb1/1-2/1-2.3/1-2.3:1.0/input/input7/event7' (string)
  input.product = 'eGalax INC. USB TouchController' (string)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_eef_1_noserial_if0' (string)
  input.device = '/dev/input/event7' (string)
  info.capabilities = { 'input', 'input.touchpad' } (string list)
  info.subsystem = 'input' (string)
  info.product = 'eGalax INC. USB TouchController' (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_eef_1_noserial_if0_logicaldev_input' (string)
  linux.device_file = '/dev/input/event7' (string)
  input.x11_driver = 'egalax' (string)
  info.category = 'input' (string)
  linux.hotplug_type = 2 (0x2) (int)
  linux.subsystem = 'input' (string)
  input.originating_device = '/org/freedesktop/Hal/devices/usb_device_eef_1_noserial_if0' (string)

# grep egalax /var/log/Xorg.0.log
(II) LoadModule: "egalax"
(II) Loading /usr/lib64/xorg/modules/input//egalax_drv.so
(II) Module egalax: vendor="X.Org Foundation"
(**) egalax: always reports core events
(**) egalax X device name: egalax
(**) egalaxHistroSize=10
(**) egalax associated screen: 0
(**) egalax:Use Defualt Parameter file:/var/lib/eeti.param(**) egalax Rotation option is enabled.
(II) XINPUT: Adding extended input device "egalax" (type: egalax)

Also, I had more success with the latest beta driver (1.07) from eeti:

http://home.eeti.com.tw/web20/eGalaxTouchDriver/linuxDriver.htm