Lenovo touchpad not working on 16.0

I just switched from Fedora to openSUSE Leap 16.0 x86_64 (Gnome, Wayland) on my ThinkPad E14 Gen 2, however after hours of trying i can’t figure out how to make the touchpad work. I’m currently using a mouse which works fine.

Here are some commands for diagnostics:

jhai@localhost:~> uname -r
6.12.0-160000.25-default
jhai@localhost:~> cat /proc/bus/input/devices | grep -i "touchpad"
jhai@localhost:~> cat /proc/bus/input/devices | grep -i "elan"
jhai@localhost:~> sudo dmesg | grep -i touch
[    1.070906] [     T46] input: ETPS/2 Elantech Touchpad as /devices/platform/i8042/serio1/input/input2
jhai@localhost:~> sudo libinput list-devices | grep -i touchpad
jhai@localhost:~> 

I also tried editing and saving the grub.cfg file:

jhai@localhost:~> cat /etc/default/grub | head -n 20
# If you change this file, run 'grub2-mkconfig -o /boot/grub2/grub.cfg' afterwards to update
# /boot/grub2/grub.cfg.

#GRUB_TIMEOUT_STYLE=hidden

# Uncomment to set your own custom distributor. If you leave it unset or empty, the default
# policy is to determine the value from /etc/os-release
GRUB_DISTRIBUTOR=
GRUB_DEFAULT=saved
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=1
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i8042.nopnp=1 i8042.nomux=1 i8042.reset"

# Uncomment to automatically save last booted menu entry in GRUB2 environment

# variable `saved_entry'
# GRUB_SAVEDEFAULT="true"
#Uncomment to enable BadRAM filtering, modify to suit your needs

jhai@localhost:~> 

Thanks for any help!

Is the lsmod | grep i2c_hid module loaded?

lsmod | grep i2c_hid

Unlikely, but do check the BIOS/UEFI Touchpad (or Internal Pointing Device settings. Is Basic(PS/2) or Advanced (I2C or Precision Touchpad modes) in use?

Thanks for the reply.

I did now add and activated i2c_hid:

jhai@localhost:~> lsmod | grep i2c_hid
i2c_hid                40960  0
jhai@localhost:~> 

But it didn’t work. My touchpad was not using i2c:

jhai@localhost:~> sudo libinput list-devices | grep -iE "elan|synaptics|i2c|touch|smbus" 
jhai@localhost:~> sudo dmesg | grep -iE "i2c|hid|elan|synaptics|psmouse" 
[ 0.179766] [ T1] ACPI: \_SB_.PC00.I2C2.PXTC: New power resource [ 0.573119] [ T1] hid: raw HID events driver (C) Jiri Kosina 
[ 0.934435] [ T64] psmouse serio1: elantech: assuming hardware version 4 (with firmware version 0x5f3001) 
[ 0.946340] [ T64] psmouse serio1: elantech: Synaptics capabilities query result 0x90, 0x18, 0x0d. 
[ 0.957601] [ T64] psmouse serio1: elantech: Elan sample query result 00, 0d, a7 [ 0.970624] [ T64] psmouse serio1: elantech: Elan ic body: 0x11, current fw version: 0x2 
[ 1.149699] [ T64] psmouse serio1: elantech: Trying to set up SMBus access 
[ 1.149720] [ T64] psmouse serio1: elantech: SMbus companion is not ready yet 
[ 1.176117] [ T64] input: ETPS/2 Elantech TrackPoint as /devices/platform/i8042/serio1/input/input3 
[ 1.190849] [ T64] input: ETPS/2 Elantech Touchpad as /devices/platform/i8042/serio1/input/input2 
[ 2.143427] [ T490] usbcore: registered new interface driver usbhid 
[ 2.143429] [ T490] usbhid: USB HID core driver 
[ 2.222627] [ T490] hid-generic 0003:045E:07B2.0001: input,hidraw0: USB HID v1.11 Keyboard [Microsoft Microsoft® Nano Transceiver v1.0] on usb-0000:00:14.0-5/input0 
[ 2.225219] [ T490] hid-generic 0003:045E:07B2.0002: input,hidraw1: USB HID v1.11 Mouse [Microsoft Microsoft® Nano Transceiver v1.0] on usb-0000:00:14.0-5/input1 
[ 2.276732] [ T490] hid-generic 0003:045E:07B2.0003: input,hiddev96,hidraw2: USB HID v1.11 Device [Microsoft Microsoft® Nano Transceiver v1.0] on usb-0000:00:14.0-5/input2 
[ 3.307538] [ T69] i2c i2c-14: Successfully instantiated SPD at 0x50 
[ 3.740914] [ T93] psmouse serio1: elantech: assuming hardware version 4 (with firmware version 0x5f3001) 
[ 3.753612] [ T93] psmouse serio1: elantech: Synaptics capabilities query result 0x90, 0x18, 0x0d. 
[ 3.765215] [ T93] psmouse serio1: elantech: Elan sample query result 00, 0d, a7 
[ 3.776781] [ T93] psmouse serio1: elantech: Elan ic body: 0x11, current fw version: 0x2 
[ 3.844973] [ T93] psmouse serio1: elantech: Trying to set up SMBus access jhai@localhost:~>

I then tried to change that in bios, but I didn’t find any settings to do so and for my Thinkpad E14 there seems to be no advanced bios settings:

I now just run it on PS/2 and it seems to be working.

OK, but bear in mind that this only enables basic functionality.
In that mode the touchpad behaves as a simple pointing device, and you may not get full multi-touch gesture support

The best way to do this is to load the module early (before the psmouse or other driver claims it).

Set BIOS to Advanced / I2C, and load the modules once booted

sudo modprobe i2c_hid_acpi

(This will load the i2c_hid module as well.)

Now rebuild the initramfs with sudo dracut -f.

Reboot and check sudo libinput list-devices to see how the device is now enumerated.