FS#59714 - [linux] Elantech Touchpad and TrackPoint does not work with new kernel (4.18.1)
Attached to Project:
Arch Linux
Opened by Rainer (rainer) - Sunday, 19 August 2018, 07:35 GMT
Last edited by Andreas Radke (AndyRTR) - Tuesday, 01 March 2022, 21:13 GMT
Opened by Rainer (rainer) - Sunday, 19 August 2018, 07:35 GMT
Last edited by Andreas Radke (AndyRTR) - Tuesday, 01 March 2022, 21:13 GMT
|
Details
I am using a ThinkPad L480 with an Elantech Touchpad and
Trackpoint with a freshly installed ArchLinux.
With the current kernel 4.18.1-arch1-1-ARCH both, the Touchpad and the Trackpoint are not registered as devices in /proc/bus/input/devices and are not working. When I switch to the LTS kernel "4.14.63-1-lts" everything works fine. I noticed I2C (SMBus) related errors in dmesg for the 4.18.1 Kernel, which are not present in the LTS kernel: [ 2.817190] psmouse serio1: elantech: assuming hardware version 4 (with firmware version 0x5f3001) [ 2.833363] psmouse serio1: elantech: Synaptics capabilities query result 0x90, 0x18, 0x10. [ 2.849612] psmouse serio1: elantech: Elan sample query result 00, 23, c8 [ 2.862956] random: crng init done [ 2.862960] random: 7 urandom warning(s) missed due to ratelimiting [ 2.865045] psmouse serio1: elantech: Trying to set up SMBus access [ 2.874664] elan_i2c 0-0015: 0-0015 supply vcc not found, using dummy regulator [ 2.887800] elan_i2c 0-0015: failed to get resolution: -5 [ 2.887839] elan_i2c: probe of 0-0015 failed with error -5 Full dmesg output and /proc/bus/input/devices file for both kernel versions see attached. I appreciate any help on this. |
This task depends upon
Closed by Andreas Radke (AndyRTR)
Tuesday, 01 March 2022, 21:13 GMT
Reason for closing: Fixed
Additional comments about closing: Fixed upstream.
Tuesday, 01 March 2022, 21:13 GMT
Reason for closing: Fixed
Additional comments about closing: Fixed upstream.
I have tried adding the kernel parameters "i8042.noloop i8042.nomux i8042.nopnp i8042.reset" (suggested in libinput ArchWiki), but that did not fix the issue.
Both the Touchpad and Trackpoint are working fine with the LTS kernel (4.14.63-1-lts), without any additional kernel parameters.
-----------------
Edit: 24-Aug-2018
Including the outputs of the following commands, for the latest stable (core/linux 4.18.4.arch1-1) and LTS (core/linux-lts 4.14.66-1) kernels:
dmesg | grep -iC 3 "elan"
cat /proc/bus/input/devices |awk '/Elantech/' RS="\n\n"
grep "Using input driver" /var/log/Xorg.0.log
The stable kernel (4.18.4.arch1-1) does not create any Elantech devices in /proc/bus/input/devices.
--------------------
Edit 2: 24/Aug/2018
The xorg log files uploaded in the previous edit were named incorrectly. Apologies. I am unable delete them from the comment. The correct ones are the 0.7 KiB file for linux-lts-4.14.66-1 and 0.4 KiB file for linux-4.18.4.arch1-1.
dmesg_linux-lts-4.14.66-1.txt (1 KiB)
cat_proc_devices_linux-lts-4.... (0.5 KiB)
xorg_input_driver_linux-4.18.... (0.7 KiB)
xorg_input_driver_linux-lts-4... (0.4 KiB)
xorg_input_driver_linux-lts-4... (0.7 KiB)
xorg_input_driver_linux-4.18.... (0.4 KiB)
I used these patches:
https://bugzilla.kernel.org/attachment.cgi?id=277507&action=diff and https://bugzilla.kernel.org/attachment.cgi?id=277553&action=diff
From this thread:
https://bugzilla.kernel.org/show_bug.cgi?id=199911#c68
And the touchpad works for me, however it is still buggy. Occasionally it disconnects and the driver needs restarting and there are a few other issues.
kernel: psmouse serio1: elantech: assuming hardware version 4 (with firmware version 0x5f2001)
kernel: psmouse serio1: elantech: Synaptics capabilities query result 0x90, 0x18, 0x0e.
kernel: psmouse serio1: elantech: Elan sample query result 00, 28, 96
kernel: psmouse serio1: elantech: Trying to set up SMBus access
kernel: elan_i2c 0-0015: 0-0015 supply vcc not found, using dummy regulator
kernel: elan_i2c 0-0015: Linked as a consumer to regulator.0
kernel: elan_i2c 0-0015: failed to get resolution: -71
kernel: elan_i2c 0-0015: Dropping the link to regulator.0
kernel: elan_i2c: probe of 0-0015 failed with error -71
$ dmesg | grep -i elan
[ 3.176443] psmouse serio1: elantech: assuming hardware version 4 (with firmware version 0x5f2001)
[ 3.187446] psmouse serio1: elantech: Synaptics capabilities query result 0x90, 0x18, 0x0e.
[ 3.197761] psmouse serio1: elantech: Elan sample query result 00, 28, 96
[ 3.209929] psmouse serio1: elantech: Trying to set up SMBus access
[ 3.216519] elan_i2c 0-0015: 0-0015 supply vcc not found, using dummy regulator
[ 3.237723] elan_i2c 0-0015: failed to get resolution: -71
[ 3.237731] elan_i2c: probe of 0-0015 failed with error -71
[ 4502.367914] psmouse serio1: elantech: assuming hardware version 4 (with firmware version 0x5f2001)
[ 4502.378665] psmouse serio1: elantech: Synaptics capabilities query result 0x90, 0x18, 0x0e.
[ 4502.389503] psmouse serio1: elantech: Elan sample query result 00, 28, 96
[ 4502.399499] psmouse serio1: elantech: Trying to set up SMBus access
[ 4502.399935] elan_i2c 0-0015: 0-0015 supply vcc not found, using dummy regulator
[ 4502.418036] elan_i2c 0-0015: failed to get resolution: -71
[ 4502.418060] elan_i2c: probe of 0-0015 failed with error -71
I added the workaround part into my 4.19-rc4 and it did not change the picture unfortunately...
I think I saw a note in the original thread that this workaround is needed only if the error message from the excluded code block is appearing in the syslog.
I think I found at least temporary fix for the issue (the new notebook is not useless at least!) Hopefully somebody more experienced with input drivers will add a real fix for the issue.
When I instruct system to use 'elantech' as the protocol for serial device with the command:
sudo sh -c 'echo -n "elantech" > /sys/bus/serio/devices/serio1/protocol'
the system log shows that the device is detected correctly:
kernel: psmouse serio1: elantech: assuming hardware version 4 (with firmware version 0x5f2001)
kernel: psmouse serio1: elantech: Synaptics capabilities query result 0x90, 0x18, 0x0e.
kernel: psmouse serio1: elantech: Elan sample query result 00, 28, 96
kernel: input: ETPS/2 Elantech TrackPoint as /devices/platform/i8042/serio1/input/input16
kernel: input: ETPS/2 Elantech Touchpad as /devices/platform/i8042/serio1/input/input15
Both touchpad and trackpoint are working fine now
tested on stock Arch Kernel 4.18.7-arch1-1-ARCH
I have noticed that 'cat /sys/bus/serio/devices/serio1/protocol' reports 'ETSMBus' before running the command and 'ETPS/2' after running it.
sudo sh -c 'echo -n "elantech" > /sys/bus/serio/devices/serio1/protocol'
Actually 4.14 LTS works fine, do someone know something about 4.20?
Booting with kernel parameter "psmouse.elantech_smbus=0" seems to fix it as well.
Thinkpad P52
Linux 4.19.8-arch1-1-ARCH #1 SMP PREEMPT Sat Dec 8 13:49:11 UTC 2018 x86_64 GNU/Linux
uname -a
Linux dosbox 4.19.12-arch1-1-ARCH #1 SMP PREEMPT Fri Dec 21 13:56:54 UTC 2018 x86_64 GNU/Linux
dmesg | grep elan
[ 4.653049] psmouse serio1: elantech: assuming hardware version 4 (with firmware version 0x5f2001)
[ 4.663477] psmouse serio1: elantech: Synaptics capabilities query result 0x90, 0x18, 0x0e.
[ 4.673817] psmouse serio1: elantech: Elan sample query result 00, 28, 96
[ 4.683755] psmouse serio1: elantech: Trying to set up SMBus access
[ 4.688794] elan_i2c 0-0015: 0-0015 supply vcc not found, using dummy regulator
[ 4.688806] elan_i2c 0-0015: Linked as a consumer to regulator.0
[ 4.719058] elan_i2c 0-0015: failed to get resolution: -71
[ 4.719070] elan_i2c 0-0015: Dropping the link to regulator.0
[ 4.719076] elan_i2c: probe of 0-0015 failed with error -71
workaround from dr-avas works.
uname -a
Linux dosbox 4.20.0-arch1-1-ARCH #1 SMP PREEMPT Mon Dec 24 03:00:40 UTC 2018 x86_64 GNU/Linux
dmesg | grep elan
[ 3.627199] psmouse serio1: elantech: assuming hardware version 4 (with firmware version 0x5f2001)
[ 3.641126] psmouse serio1: elantech: Synaptics capabilities query result 0x90, 0x18, 0x0e.
[ 3.652137] psmouse serio1: elantech: Elan sample query result 00, 28, 96
It is detected:
dmesg | grep elan
[ 10.142640] elan_i2c i2c-ELAN0501:00: i2c-ELAN0501:00 supply vcc not found, using dummy regulator
[ 10.142674] elan_i2c i2c-ELAN0501:00: Linked as a consumer to regulator.0
[ 10.262529] elan_i2c i2c-ELAN0501:00: Elan Touchpad: Module ID: 0x000a, Firmware: 0x0002, Sample: 0x0002, IAP: 0x000d
Output of cat /sys/bus/serio/devices/serio0/firmware_id :
PNP: PNP0303
uname -a
Linux acer-laptop 4.20.6-arch1-1-ARCH #1 SMP PREEMPT Thu Jan 31 08:22:01 UTC 2019 x86_64 GNU/Linux
journalctl --since today | grep elan
Feb 02 09:03:41 acer-laptop kernel: elan_i2c i2c-ELAN0501:00: i2c-ELAN0501:00 supply vcc not found, using dummy regulator
Feb 02 09:03:41 acer-laptop kernel: elan_i2c i2c-ELAN0501:00: Linked as a consumer to regulator.0
Feb 02 09:03:41 acer-laptop kernel: elan_i2c i2c-ELAN0501:00: Elan Touchpad: Module ID: 0x000a, Firmware: 0x0002, Sample: 0x0002, IAP: 0x000d
Feb 02 09:04:54 acer-laptop kernel: elan_i2c i2c-ELAN0501:00: i2c-ELAN0501:00 supply vcc not found, using dummy regulator
Feb 02 09:04:54 acer-laptop kernel: elan_i2c i2c-ELAN0501:00: Linked as a consumer to regulator.0
Feb 02 09:04:54 acer-laptop kernel: elan_i2c i2c-ELAN0501:00: Elan Touchpad: Module ID: 0x000a, Firmware: 0x0002, Sample: 0x0002, IAP: 0x000d
cat /sys/bus/serio/devices/serio0/firmware_id
PNP: PNP0303
Please try the work around from https://bugs.archlinux.org/task/59714#comment174924
λ rg -i 'Touchpad' ~/.local/share/xorg/Xorg.0.log
263:[ 7.877] (II) config/udev: Adding input device ELAN0662:00 04F3:30BC Touchpad (/dev/input/event7)
264:[ 7.877] (**) ELAN0662:00 04F3:30BC Touchpad: Applying InputClass "libinput touchpad catchall"
265:[ 7.877] (II) Using input driver 'libinput' for 'ELAN0662:00 04F3:30BC Touchpad'
267:[ 7.878] (**) ELAN0662:00 04F3:30BC Touchpad: always reports core events
270:[ 7.879] (II) event7 - ELAN0662:00 04F3:30BC Touchpad: is tagged by udev as: Touchpad
271:[ 7.879] (II) event7 - ELAN0662:00 04F3:30BC Touchpad: device is a touchpad
272:[ 7.880] (II) event7 - ELAN0662:00 04F3:30BC Touchpad: device removed
274:[ 7.880] (II) XINPUT: Adding extended input device "ELAN0662:00 04F3:30BC Touchpad" (type: TOUCHPAD, id 11)
276:[ 7.881] (**) ELAN0662:00 04F3:30BC Touchpad: (accel) selected scheme none/0
277:[ 7.881] (**) ELAN0662:00 04F3:30BC Touchpad: (accel) acceleration factor: 2.000
278:[ 7.881] (**) ELAN0662:00 04F3:30BC Touchpad: (accel) acceleration threshold: 4
279:[ 7.881] (II) event7 - ELAN0662:00 04F3:30BC Touchpad: is tagged by udev as: Touchpad
280:[ 7.882] (II) event7 - ELAN0662:00 04F3:30BC Touchpad: device is a touchpad
281:[ 7.883] (II) config/udev: Adding input device ELAN0662:00 04F3:30BC Touchpad (/dev/input/mouse1)
λ journalctl -k | grep -i elan
Apr 19 11:00:25 moto kernel: Command line: BOOT_IMAGE=/boot/vmlinuz-linux root=UUID=28d3c19f-5078-4a70-a03f-6bb0ce9bfd7e rw loglevel=3 quiet psmouse.elantech_smbus=0
Apr 19 11:00:25 moto kernel: Kernel command line: BOOT_IMAGE=/boot/vmlinuz-linux root=UUID=28d3c19f-5078-4a70-a03f-6bb0ce9bfd7e rw loglevel=3 quiet psmouse.elantech_smbus=0
Apr 19 11:00:25 moto kernel: i2c_hid i2c-ELAN0662:00: i2c-ELAN0662:00 supply vdd not found, using dummy regulator
Apr 19 11:00:25 moto kernel: i2c_hid i2c-ELAN0662:00: i2c-ELAN0662:00 supply vddl not found, using dummy regulator
Apr 19 11:00:26 moto kernel: input: ELAN0662:00 04F3:30BC Mouse as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-ELAN0662:00/0018:04F3:30BC.0001/input/input6
Apr 19 11:00:26 moto kernel: input: ELAN0662:00 04F3:30BC Touchpad as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-ELAN0662:00/0018:04F3:30BC.0001/input/input8
Apr 19 11:00:26 moto kernel: hid-generic 0018:04F3:30BC.0001: input,hidraw0: I2C HID v1.00 Mouse [ELAN0662:00 04F3:30BC] on i2c-ELAN0662:00
Apr 19 11:00:26 moto kernel: input: ELAN0662:00 04F3:30BC Mouse as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-ELAN0662:00/0018:04F3:30BC.0001/input/input10
Apr 19 11:00:26 moto kernel: input: ELAN0662:00 04F3:30BC Touchpad as /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-ELAN0662:00/0018:04F3:30BC.0001/input/input12
Apr 19 11:00:26 moto kernel: hid-multitouch 0018:04F3:30BC.0001: input,hidraw0: I2C HID v1.00 Mouse [ELAN0662:00 04F3:30BC] on i2c-ELAN0662:00
""Booting with kernel parameter "psmouse.elantech_smbus=0" seems to fix it as well."
This thread seemed most relevant in context to specifically the thinkpad trackpad issue.
I had been all around the web looking for a solution and what finally worked was my blacklisting i2c_i801 from modprobe. This is the SMBus driver.
I tried thigg's solution on my distribution and it did not work but was the clue that led me to disable that module. I wonder if there isn't some other kernel parameter that would be similar outside arch.
For the curious here are other relevant details from my issue:
cat /etc/debian_version
bullseye/sid
uname -a
Linux **** 5.4.0-47-generic #51-Ubuntu SMP Fri Sep 4 19:50:52 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
cat /etc/default/grub
xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ PixArt USB Optical Mouse id=9 [slave pointer (2)]
⎜ ↳ ETPS/2 Elantech TrackPoint id=11 [slave pointer (2)]
⎜ ↳ ETPS/2 Elantech Touchpad id=12 [slave pointer (2)]
cat /proc/bus/input/devices |awk '/Elantech/' RS="\n\n"
I: Bus=0011 Vendor=0002 Product=000e Version=0000
○ → dmesg | grep -i elan
[ 1.679338] psmouse serio1: elantech: assuming hardware version 4 (with firmware version 0x5f2001)
[ 1.690591] psmouse serio1: elantech: Synaptics capabilities query result 0x90, 0x18, 0x0e.
[ 1.701369] psmouse serio1: elantech: Elan sample query result 00, 28, 96
[ 1.723050] psmouse serio1: elantech: Trying to set up SMBus access
[ 87.241837] elan_i2c 0-0015: 0-0015 supply vcc not found, using dummy regulator
[ 87.253396] elan_i2c 0-0015: Elan Touchpad: Module ID: 0x0028, Firmware: 0x0074, Sample: 0x0000, IAP: 0x0000
[ 87.254125] input: Elan Touchpad as /devices/pci0000:00/0000:00:1f.4/i2c-0/0-0015/input/input8
[ 87.254205] input: Elan TrackPoint as /devices/pci0000:00/0000:00:1f.4/i2c-0/0-0015/input/input9
[ 631.155545] psmouse serio1: elantech: assuming hardware version 4 (with firmware version 0x5f2001)
[ 631.165714] psmouse serio1: elantech: Synaptics capabilities query result 0x90, 0x18, 0x0e.
[ 631.175527] psmouse serio1: elantech: Elan sample query result 00, 28, 96
[ 631.195122] psmouse serio1: elantech: Trying to set up SMBus access
[ 631.195134] psmouse serio1: elantech: SMbus companion is not ready yet
[ 631.216730] input: ETPS/2 Elantech TrackPoint as /devices/platform/i8042/serio1/input/input20
[ 631.228903] input: ETPS/2 Elantech Touchpad as /devices/platform/i8042/serio1/input/input19
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash psmouse.elan_smbus=0"
→ cat /etc/modprobe.d/blacklist
#Causes Trackpad to fail
blacklist i2c_i801
apt list --installed | grep xorg-input
xserver-xorg-input-evdev/focal,now 1:2.10.6-1 amd64 [installed]
xserver-xorg-input-libinput/focal,now 0.29.0-1 amd64 [installed]
xserver-xorg-input-mouse/focal,now 1:1.9.3-1build1 amd64 [installed]
kernel 5.11.6-arch1-1 | linux
kernel 5.10.23-1 | linux-lts
kernel 5.16.11.arch1-1 | linux
kernel 5.15.25-1 | linux-lts