Elantech - Touchpad not working after upgrading to 18.10 from 18.04 (ThinkPad L480)
When updating from 18.04 to 18.10 on a ThinkPad L480 the Elantech touchpad stopped working. This means it is not recognized at all. This problem occured after the first boot in 18.10
dmesg | grep -i elantech
shows the following errors:
[ 3.409043] psmouse serio1: elantech: assuming hardware version 4 (with firmware version 0x5f3001)
[ 3.427372] psmouse serio1: elantech: Synaptics capabilities query result 0x90, 0x18, 0x10.
[ 3.447275] psmouse serio1: elantech: Elan sample query result 00, 23, c8
[ 3.464905] psmouse serio1: elantech: Trying to set up SMBus access
[ 5.576149] elan_i2c 0-0015: 0-0015 supply vcc not found, using dummy regulator
[ 5.586505] elan_i2c 0-0015: failed to get resolution: -71
[ 5.586527] elan_i2c: probe of 0-0015 failed with error -71
uname:
$ uname -a
Linux test 4.18.0-10-generic #11-Ubuntu SMP Thu Oct 11 15:13:55 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
I found the following thread which solves the problem temporarly (and reports the same problem in Arch): https://bugs.archlinux.org/task/59714
Running the following command enables it again for the current session:
sudo sh -c 'echo -n "elantech"> /sys/bus/serio/devices/serio1/protocol'
dmesg afterwards:
[ 569.522490] psmouse serio1: elantech: assuming hardware version 4 (with firmware version 0x5f3001)
[ 569.544584] psmouse serio1: elantech: Synaptics capabilities query result 0x90, 0x18, 0x10.
[ 569.565939] psmouse serio1: elantech: Elan sample query result 00, 23, c8
Before running the fix:
$ cat /sys/bus/serio/devices/serio1/protocol
ETSMBus
and after:
$ cat /sys/bus/serio/devices/serio1/protocol
ETPS/2
After reboot the command has to be run again, of course.
Is this a bug in the 4.18 kernel?
According to https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1803600 adding the kernel parameter psmouse.elantech_smbus=0
to the boot options fixes the problem across reboots.
And yes, this a bug with the linux kernel.