Difference between revisions of "Multitouch displays"

From ArchWiki
Jump to: navigation, search
(Started stub)
 
(9 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[Category:Other hardware (English)]]
+
[[Category:Other hardware]]
 
{{Stub}}
 
{{Stub}}
 
Since Linux Kernel 3.2, multitouch devices are handled by the {{ic|hid-multitouch}} module, see [[Kernel Modules]].  
 
Since Linux Kernel 3.2, multitouch devices are handled by the {{ic|hid-multitouch}} module, see [[Kernel Modules]].  
  
==Configuration==
+
==Configuration (USB devices) ==
Find the vendor ID (VID) and product ID for your touchscreen using {{ic|lsusb}}:
+
Find the vendor ID (VID) and product ID (PID) for your touchscreen using {{ic|lsusb}}:
 
{{hc|$ lsusb|
 
{{hc|$ lsusb|
 
...
 
...
Line 10: Line 10:
 
...
 
...
 
}}
 
}}
Here, VID=0eef (eGalax) and PID=725e. Now, get the MT_CLASS_* definitions for the VID from [http://lxr.free-electrons.com/source/drivers/hid/hid-multitouch.c]. In this example
+
Here, VID=0eef (eGalax) and PID=725e. Now, get the MT_CLASS_* definitions from [http://lxr.free-electrons.com/source/drivers/hid/hid-multitouch.c]. Currently vendor specific classes are available for 3M Cypress and eGalax. If none of this matches your device, you can try to experiment with the other MT_CLS_*. In this example
 
  #define MT_CLS_EGALAX                          0x0103
 
  #define MT_CLS_EGALAX                          0x0103
an convert it to decimal (0x0103=259 in this case). After loading the {{ic|hid-multitouch}}, see [[Kernel Modules]], you need to pass the devices' options with
+
You need to convert MT_CLS_* to decimal (In this case, 0x0103 is 259 in decimal).
  # echo 3 VID PID MT_CLASS_* > /sys/module/hid_multitouch/drivers/hid\:hid-multitouch/new_id
+
 
In this example,
+
After loading the {{ic|hid-multitouch}}, see [[Kernel Modules]], you need to pass the devices' options with
 +
  # echo BUS VID PID MT_CLASS_* > /sys/module/hid_multitouch/drivers/hid\:hid-multitouch/new_id
 +
In this example, the touchscreen is an USB device, so BUS=3 and the previous command looks like this:
 
  # echo 3 0eef 725e 259 > /sys/module/hid_multitouch/drivers/hid\:hid-multitouch/new_id
 
  # echo 3 0eef 725e 259 > /sys/module/hid_multitouch/drivers/hid\:hid-multitouch/new_id
Reboot. If the touchscreen is not working properly, you may need to install a specific driver for your touchscreen, see [[#Drivers]].
+
Reboot. If the touchscreen is detected you should submit your devices' details (relevant {{ic|lsusb}} line) to the [http://vger.kernel.org/vger-lists.html#linux-input linux-input mailing list].
 +
 
 +
If the touchscreen is not working properly, you may need to install a specific driver for your touchscreen, see [[#Drivers]].
  
 
==Drivers==
 
==Drivers==

Revision as of 16:03, 13 June 2012

Tango-document-new.pngThis article is a stub.Tango-document-new.png

Notes: please use the first argument of the template to provide more detailed indications. (Discuss in Talk:Multitouch displays#)

Since Linux Kernel 3.2, multitouch devices are handled by the hid-multitouch module, see Kernel Modules.

Configuration (USB devices)

Find the vendor ID (VID) and product ID (PID) for your touchscreen using lsusb:

$ lsusb
...
Bus 004 Device 002: ID 0eef:725e D-WAV Scientific Co., Ltd 
...

Here, VID=0eef (eGalax) and PID=725e. Now, get the MT_CLASS_* definitions from [1]. Currently vendor specific classes are available for 3M Cypress and eGalax. If none of this matches your device, you can try to experiment with the other MT_CLS_*. In this example

#define MT_CLS_EGALAX                           0x0103

You need to convert MT_CLS_* to decimal (In this case, 0x0103 is 259 in decimal).

After loading the hid-multitouch, see Kernel Modules, you need to pass the devices' options with

# echo BUS VID PID MT_CLASS_* > /sys/module/hid_multitouch/drivers/hid\:hid-multitouch/new_id

In this example, the touchscreen is an USB device, so BUS=3 and the previous command looks like this:

# echo 3 0eef 725e 259 > /sys/module/hid_multitouch/drivers/hid\:hid-multitouch/new_id

Reboot. If the touchscreen is detected you should submit your devices' details (relevant lsusb line) to the linux-input mailing list.

If the touchscreen is not working properly, you may need to install a specific driver for your touchscreen, see #Drivers.

Drivers

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:Multitouch displays#)

eGalax

The driver for eGalax tocushcreens is available from the eGalax website. Also, it is availbale as xf86-input-egalax-linux3AUR from the Arch User Repository.

Invert Y-axis

If after installing the eGalax driver the Y-axis of the touchscreen is inverted, edit the file /etc/eGTouchd.ini an change the value of Direction from 0 to 2:

/etc/eGtouchd.ini
...
DetectRotation 0
Direction 2
Orientation 0
...