Problems with an Elantech (Synaptics) touchpad
Vitaly Magerya
vmagerya at gmail.com
Sat Aug 25 12:24:37 UTC 2012
Hi, folks. I have a problem with a touchpad on my laptop: it has
this "two fingers to scroll" function, which works badly (misdetects
fingers), and I can neither control nor disable it. The touchpad
in question reports itself as "ETPS/2 Elantech Touchpad" and
should be synaptics-compatible.
I tried enabling synaptics support in psm(4) by adding
"hw.psm.synaptics_support=1" to loader.conf (as described in the
wiki page at [1]), but nothing changes that way. In both cases
verbose dmesg reports this:
$ dmesg | grep psm
psm0: unable to allocate IRQ
psmcpnp0: <PS/2 mouse port> irq 12 on acpi0
psm0: current command byte:0047
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: model IntelliMouse, device ID 3-00, 3 buttons
psm0: config:00000000, flags:00000008, packet size:4
psm0: syncmask:08, syncbits:00
And correspondingly no synaptics sysctls are added:
$ sysctl hw.psm
hw.psm.tap_timeout: 125000
hw.psm.tap_threshold: 25
hw.psm.tap_enabled: -1
I also tried using xf86-input-synaptics driver (1.6.2, from the
new Xorg 7.7). With this in xorg.conf:
Section "ServerLayout"
InputDevice "Touchpad0" "CorePointer"
[...]
EndSection
Section "InputDevice"
Identifier "Touchpad0"
Driver "synaptics"
Option "Device" "/dev/psm0"
Option "Protocol" "psm"
Option "ZAxisMapping" "4 5 6 7"
EndSection
... Xorg does not recognize the touchpad at all. Here are relevant
Xorg.0.log parts:
[ 341.541] (II) LoadModule: "synaptics"
[ 341.543] (II) Loading /usr/local/lib/xorg/modules/input/synaptics_drv.so
[ 341.555] (II) Module synaptics: vendor="X.Org Foundation"
[ 341.556] compiled for 1.12.3, module version = 1.6.2
[ 341.556] Module class: X.Org XInput Driver
[ 341.556] ABI class: X.Org XInput driver, version 16.0
...
[ 346.673] (II) Using input driver 'synaptics' for 'Touchpad0'
[ 346.673] (**) Option "CorePointer"
[ 346.673] (**) Touchpad0: always reports core events
[ 346.674] (**) Option "Protocol" "psm"
[ 346.674] (**) Option "Device" "/dev/psm0"
[ 346.692] (--) synaptics: Touchpad0: invalid x-axis range.
defaulting to 1615 - 5685
[ 346.692] (--) synaptics: Touchpad0: invalid y-axis range.
defaulting to 1729 - 4171
[ 346.692] (--) synaptics: Touchpad0: invalid pressure range.
defaulting to 0 - 255
[ 346.692] (--) synaptics: Touchpad0: invalid finger width range.
defaulting to 0 - 15
[ 346.692] (EE) synaptics: Touchpad0: Touchpad0 Found no Synaptics,
found Mouse model 4 instead
[ 346.692] (--) synaptics: Touchpad0: no supported touchpad found
[ 346.692] (EE) synaptics: Touchpad0: Unable to query/initialize
Synaptics hardware.
[ 346.729] (EE) PreInit returned 11 for "Touchpad0"
[ 346.729] (II) UnloadModule: "synaptics"
To compare, the same synaptics driver on Linux works without
fail:
[ 26.712] (II) config/udev: Adding input device ETPS/2 Elantech
Touchpad (/dev/input/event8)
[ 26.713] (**) ETPS/2 Elantech Touchpad: Applying InputClass "evdev
touchpad catchall"
[ 26.713] (**) ETPS/2 Elantech Touchpad: Applying InputClass
"touchpad catchall"
[ 26.713] (II) LoadModule: "synaptics"
[ 26.713] (II) Loading /usr/lib/xorg/modules/input/synaptics_drv.so
[ 26.714] (II) Module synaptics: vendor="X.Org Foundation"
[ 26.714] compiled for 1.11.3, module version = 1.6.2
[ 26.714] Module class: X.Org XInput Driver
[ 26.714] ABI class: X.Org XInput driver, version 16.0
[ 26.714] (II) Using input driver 'synaptics' for 'ETPS/2 Elantech Touchpad'
[ 26.714] (II) Loading /usr/lib/xorg/modules/input/synaptics_drv.so
[ 26.714] (**) ETPS/2 Elantech Touchpad: always reports core events
[ 26.714] (**) Option "Device" "/dev/input/event8"
[ 26.740] (II) synaptics: ETPS/2 Elantech Touchpad: ignoring touch
events for semi-multitouch device
[ 26.740] (--) synaptics: ETPS/2 Elantech Touchpad: x-axis range 0 - 819
[ 26.740] (--) synaptics: ETPS/2 Elantech Touchpad: y-axis range 0 - 405
[ 26.740] (--) synaptics: ETPS/2 Elantech Touchpad: pressure range 0 - 255
[ 26.740] (--) synaptics: ETPS/2 Elantech Touchpad: finger width range 0 - 15
[ 26.740] (--) synaptics: ETPS/2 Elantech Touchpad: buttons: left
right double triple
[ 26.740] (--) synaptics: ETPS/2 Elantech Touchpad: Vendor 0x2 Product 0xe
[ 26.740] (--) synaptics: ETPS/2 Elantech Touchpad: touchpad found
[ 26.740] (**) ETPS/2 Elantech Touchpad: always reports core events
[ 26.748] (**) Option "config_info"
"udev:/sys/devices/platform/i8042/serio1/input/input8/event8"
[ 26.748] (II) XINPUT: Adding extended input device "ETPS/2
Elantech Touchpad" (type: TOUCHPAD, id 12)
[ 26.748] (**) synaptics: ETPS/2 Elantech Touchpad: (accel)
MinSpeed is now constant deceleration 2.5
[ 26.748] (**) synaptics: ETPS/2 Elantech Touchpad: MaxSpeed is now 1.75
[ 26.748] (**) synaptics: ETPS/2 Elantech Touchpad: AccelFactor is now 0.219
[ 26.749] (**) ETPS/2 Elantech Touchpad: (accel) keeping
acceleration scheme 1
[ 26.749] (**) ETPS/2 Elantech Touchpad: (accel) acceleration profile 1
[ 26.749] (**) ETPS/2 Elantech Touchpad: (accel) acceleration factor: 2.000
[ 26.749] (**) ETPS/2 Elantech Touchpad: (accel) acceleration threshold: 4
[ 26.749] (--) synaptics: ETPS/2 Elantech Touchpad: touchpad found
[ 26.750] (II) config/udev: Adding input device ETPS/2 Elantech
Touchpad (/dev/input/mouse0)
[ 26.750] (**) ETPS/2 Elantech Touchpad: Ignoring device from
InputClass "touchpad ignore duplicates"
So, why do neither psm(4) nor the synaptics driver recognize
this touchpad, and is there any way I can disable the "two fingers
to scroll" function?
Note that this function is present both in Xorg and in console
mode.
[1] http://wiki.freebsd.org/SynapticsTouchpad
More information about the freebsd-x11
mailing list