Contents
Elantech Touchpad
Support in lenny
Using the mouse driver or the evdev driver
This is the only option available to you if you're using an unpatched Linux kernel such as one of the Linux 2.6.26 kernel packages in lenny.
The touchpad is recognised as an Intellimouse PS/2 device. Consequently, it is not recognised by the X.org synaptics driver.
(II) Synaptics touchpad driver version 0.14.6 (1406) Synaptics0 no synaptics event device found (**) Option "Device" "/dev/psaux" (**) Option "HorizEdgeScroll" "1" Query no Synaptics: 6003C8
What works
Two-finger vertical scrolling works, as do two- and three-finger taps (for the middle and right buttons) and, strangely, drags can be started by holding one finger on the pad and tapping with another finger.
What doesn't work
It is not possible to make any specific device configuration, such as horizontal scrolling.
Using the synaptics driver
This option is available to you if you use a patched Linux kernel or with 2.6.28 and later.
Practically everything supported works, except for things like finger pressure which the hardware doesn't support.
2.6.27.* and older
Asus patched the xorg synaptics driver in order to make this Elantech device work properly. However, the source code is nowhere to be found, and neither Asus nor the Xandros packager of the driver replied to emails asking for the source code.
There is a kernel patch (?see here for build instructions) which provides support for the touchpad, which will be identified as an "ETPS/2 Elantech Touchpad". This allows the synaptics driver to be used; both two-finger and circular scrolling work fine, though they are disabled by default, but the above drag method is unsupported.
With the patch, the touchpad is usable with xserver-xorg-input-synaptics in lenny.
lsinput (in package input-utils) reports the following:
bustype : BUS_I8042 vendor : 0x2 product : 0xd version : 0 name : "ETPS/2 Elantech Touchpad" phys : "isa0060/serio1/input0" bits ev : EV_SYN EV_KEY EV_REL EV_ABS
The kernel log contains:
elantech.c: Elantech version query result 0x02, 0x00, 0x30. elantech.c: assuming hardware version 2, firmware version 2.48 elantech.c: Synaptics capabilities query result 0x00, 0x02, 0x64.
2.6.28-rc1 and later
The touchpad is recognised by the kernel as an Elantech device (ETPS/2) device; no patching is needed, but you may need to ensure that the configuration option, CONFIG_MOUSE_PS2_ELANTECH, is set. It is not set in the default configurations in upstream kernel source or in Debian kernels prior to 2.6.32-4. (?See here for build instructions.)
There is a new-enough version of xserver-xorg-input-synaptics in squeeze.
xserver-xorg-input-synaptics 0.99.3, built for use on lenny, is available in packaged form from http://alioth.debian.org/~dsalt-guest/eee/ (you'll need to use dpkg -i to install it).
[Correct as of 2010-02-01.]
(II) Synaptics touchpad driver version 0.99.2 (--) Configured Mouse auto-dev sets device to /dev/input/event9 (**) Option "Device" "/dev/input/event9" (II) Configured Mouse: x-axis range 8 - 1144 (II) Configured Mouse: y-axis range 8 - 760 (II) Configured Mouse: device does not report pressure, will use touch data. (II) Configured Mouse: finger width range 0 - 0 (II) Configured Mouse: buttons: left right middle double triple … (II) Configured Mouse touchpad found
lsinput reports the following:
bustype : BUS_I8042 vendor : 0x2 product : 0xe version : 0 name : "ETPS/2 Elantech Touchpad" phys : "isa0060/serio1/input0" bits ev : EV_SYN EV_KEY EV_REL EV_ABS
The kernel log content is as for older, patched, kernels.
Support in squeeze
Enabled in kernel 2.6.32-4 and later.
The touchpad is recognised by the kernel as an Elantech device (ETPS/2) device. Identification is as for lenny with 2.6.28-rc1 or later.
Why the Synaptics driver?
Because.
It certainly simplifies configuration, and various features implemented by the driver are software features ‒ edge scrolling, for example ‒ and many of them are common across all supported hardware.
Synaptics driver configuration
xserver-xorg-input-synaptics (in squeeze) has tapping disabled by default; see /usr/share/doc/xserver-xorg-input-synaptics/NEWS.Debian.gz. The following configuration examples show how to re-enable tapping and how to configure other options.
For a list of available options, see synclient -l. Not all options are appropriate; for example, Elantech touchpads don't report pressure.
xorg.conf
Recommended where the touchpad is declared as an input device in the ServerLayout section.
Section "InputDevice" Identifier "Touchpad" Driver "synaptics" Option "Device" "/dev/input/mouse0" Option "Protocol" "auto-dev" Option "VertTwoFingerScroll" "1" Option "HorizTwoFingerScroll" "1" Option "TapButton1" "1" Option "TapButton2" "2" Option "TapButton3" "3" EndSection Section "ServerLayout" Identifier "Default Layout" Screen "Default Screen" InputDevice "Generic Keyboard" InputDevice "Touchpad" EndSection
HAL
This applies to xserver-xorg-core 1.6, which is no longer in Debian.
Use of HAL for configuration is recommended where X is allowed to auto-detect devices.
The suggested name for this is /etc/hal/fdi/policy/touchpad.fdi.
<?xml version="1.0" encoding="UTF-8"?> <deviceinfo version="0.2"> <device> <match key="info.capabilities" contains="input.touchpad"> <merge key="input.x11_options.VertTwoFingerScroll" type="string">1</merge> <merge key="input.x11_options.HorizTwoFingerScroll" type="string">1</merge> <merge key="input.x11_options.TapButton1" type="string">1</merge> <merge key="input.x11_options.TapButton2" type="string">2</merge> <merge key="input.x11_options.TapButton3" type="string">3</merge> </match> </device> </deviceinfo>
udev
This applies to xserver-xorg-core 1.7 or later.
Use of udev for configuration is recommended where X is allowed to auto-detect devices.
The suggested name for this is /etc/udev/rules.d/99-elantech.rules.
ACTION!="add|change", GOTO="elantech_synaptics_end" KERNEL!="event*", GOTO="elantech_synaptics_end" ENV{ID_INPUT_TOUCHPAD}!="1", GOTO="elantech_synaptics_end" ENV{x11_driver}="synaptics" # Restricted to devices which are reported as ETPS/2 ATTR{device/name}=="*ETPS/2*", \ ENV{x11_options.VertTwoFingerScroll}="1", \ ENV{x11_options.HorizTwoFingerScroll}="1", \ ENV{x11_options.TapButton1}="1", \ ENV{x11_options.TapButton2}="2", \ ENV{x11_options.TapButton3}="3" LABEL="elantech_synaptics_end"
SHMConfig considered harmful
If you find that the touchpad configuration cannot be altered by using synclient, then (and only then) add a line to enable SHMConfig: either an Option or a <merge />, depending on how you choose to set the default configuration.
(Ref. this blog posting by Matthew Garrett.)
GUI assistance
The Mouse and Pointing device settings applets in the GNOME control centre (the latter in gpointing-device-settings) can be used to enable tapping and scrolling graphically. Beware that they can override the global X settings in xorg.conf, hal or udev.
PS/2 in >2.6.32
You might want the older behavior for some reasons: * tapping * better 3-finger-tap right-click support (e.g. for using mouse gestures)
So you have to disable the Elantech drivers from your kernel by recompiling. In menuconfig you find the entry in Device Drivers --> Input device support --> Mice --> Elantech PS/2 protocol extension