Synaptics Touchpad not working and not detected

Hi,
I have a Lenovo Thinkpad Gen7 running Manjaro on kernel 5.8.1-3 . Since a few days ( I think Thursday, after I made my regular updates on Wednesday) my touchpad does not work anymore at all. I was using kernel 5.7 at this moment. I went now to 5.8.1-3, but the problem persists. Older kernels I would like to avoid, as the microphone does not work with kernels older than 5.7 . I tried many things, and checked also the other topics here:

Nothing worked for me. The problem is that xinput --list gives:

⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ TPPS/2 Elan TrackPoint                  	id=13	[slave  pointer  (2)]
⎜   ↳ Logitech Wireless Mouse MX Master 3     	id=15	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Video Bus                               	id=7	[slave  keyboard (3)]
    ↳ Sleep Button                            	id=8	[slave  keyboard (3)]
    ↳ Integrated Camera: Integrated C         	id=9	[slave  keyboard (3)]
    ↳ Integrated Camera: Integrated I         	id=10	[slave  keyboard (3)]
    ↳ sof-hda-dsp Headset Jack                	id=11	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=12	[slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                  	id=14	[slave  keyboard (3)]
    ↳ Logitech Wireless Mouse MX Master 3     	id=16	[slave  keyboard (3)]

so the touchpad is not there, only the trackpoint.

  • I also checked libinput list-devices. Nothing.
  • I checked /proc/bus/input/devices, nothing. Only the trackpoint is listed here.
  • dmesg | grep -i syna finds nothing.
  • In ls -al /sys/bus/acpi/devices I cannot find anything related to Elan.
  • lsmod gives:
lsmod | grep i2c 
i2c_hid                32768  0
i2c_algo_bit           16384  1 i915
i2c_i801               36864  0
i2c_smbus              20480  1 i2c_i801
hid                   143360  4 i2c_hid,hid_generic,uhid,hid_logitech_hidpp
  • I tried to blacklist the i2c_hid module
  • and I tried sudo rmmod i2c_hid && sudo modprobe i2c_hid without success
  • I also tried to fiddle around with psmouse without success
  • I added the psmouse.synaptics_intertouch=0 to my grub config, with no success
  • I have installed the latest firmware etc with fwupdmgr .

I simply don’t understand, why the touchpad is not appearing anywhere, as if it is gone! I also do not really understand where it should register itself first. I thought xinput should see something, or at least it should be here: less /proc/bus/input/devices . I also tried to check the X11 log and system log, but could not find any note, that something is odd, and everything else is working properly.

I checked also the bios, and there the touchpad works, and on my secondary windows installation as well.

Could someone help me to debug this problem, or is there a deeper kernel / bios related problem?

Any help is appreciated!

1 Like

Have you already ruled out the possibility of the touchpad having gone defective? If you boot from a Windows install disk, for instance, will it work?

Hi, so I booted today from a Manjaro Live USB key and there the touchpad works out of the box. This is with Kernel 5.6 . I reverted back to kernel 5.6 now, but no changes. Under the live manjaro I could also check dmesg and there the touchpad registers itself as SYNA8004:00 device and works properly.

Can you see SYNA8004:00 or similar in /sys/bus/acpi/devices/? If so, is there a physical_node entry in the directory?

Hi,
thanks! Yes there is actually. /sys/bus/acpi/devices/SYNA8004:00/ exists and there is an entry physical_node .

Can you send the output of ls -l /sys/bus/acpi/devices/SYNA8004:00/physical_node/?

ls -l /sys/bus/acpi/devices/SYNA8004:00/physical_node/
total 0
-rw-r--r-- 1 root root 4096 Aug 30 21:21 driver_override
lrwxrwxrwx 1 root root    0 Aug 30 21:21 firmware_node -> ../../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:7a/SYNA8004:00
-r--r--r-- 1 root root 4096 Aug 30 21:21 modalias
drwxr-xr-x 2 root root    0 Aug 30 21:21 power
lrwxrwxrwx 1 root root    0 Aug 30 21:21 subsystem -> ../../../../bus/platform
-rw-r--r-- 1 root root 4096 Aug 30 21:21 uevent

Does the device show up in /sys/bus/i2c/devices/?

Mh, not really? I am also not sure how to interpret the information there:

> ls /sys/bus/i2c/devices/
i2c-0  i2c-1  i2c-2  i2c-3  i2c-4  i2c-5  i2c-6  i2c-7  i2c-8  i2c-9

> cat /sys/bus/i2c/devices/i2c-*/name
Synopsys DesignWare I2C adapter
Synopsys DesignWare I2C adapter
SMBus I801 adapter at efa0
i915 gmbus dpb
i915 gmbus dpc
i915 gmbus misc
i915 gmbus dpd
AUX A/port A
AUX B/port B
AUX C/port C

You should’ve seen something like “i2c-SYNA…”. Anyway, what’s the output of readlink /sys/bus/acpi/devices/SYNA8004:00/physical_node?

readlink /sys/bus/acpi/devices/SYNA8004:00/physical_node
../../../../../pci0000:00/0000:00:15.1/SYNA8004:00

Ah on the live manjaro it said something in dmesg like: SYNA8004:00 06CB:CD8B touchpad as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-9/... does that help? But unfortunately in my installation I cannot find this line in dmesg.

Can you run ls -l /sys/devices/pci0000:00/0000:00:15.1/?

ls -l /sys/devices/pci0000:00/0000:00:15.1/
total 0
drwxr-xr-x 3 root root    0 Aug 30 21:21 SYNA8004:00
-r--r--r-- 1 root root 4096 Aug 30 21:21 ari_enabled
-rw-r--r-- 1 root root 4096 Aug 30 21:21 broken_parity_status
-r--r--r-- 1 root root 4096 Aug 30 21:21 class
-rw-r--r-- 1 root root  256 Aug 30 21:21 config
-r--r--r-- 1 root root 4096 Aug 30 21:21 consistent_dma_mask_bits
-rw-r--r-- 1 root root 4096 Aug 30 21:21 d3cold_allowed
-r--r--r-- 1 root root 4096 Aug 30 21:21 device
-r--r--r-- 1 root root 4096 Aug 30 21:21 devspec
drwxr-xr-x 4 root root    0 Aug 30 21:21 dma
-r--r--r-- 1 root root 4096 Aug 30 21:21 dma_mask_bits
lrwxrwxrwx 1 root root    0 Aug 30 21:21 driver -> ../../../bus/pci/drivers/intel-lpss
-rw-r--r-- 1 root root 4096 Aug 30 21:21 driver_override
-rw-r--r-- 1 root root 4096 Aug 30 21:21 enable
lrwxrwxrwx 1 root root    0 Aug 30 21:21 firmware_node -> ../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:7a
drwxr-xr-x 4 root root    0 Aug 30 21:21 i2c_designware.1
drwxr-xr-x 3 root root    0 Aug 30 21:21 idma64.1
lrwxrwxrwx 1 root root    0 Aug 30 21:21 iommu -> ../../virtual/iommu/dmar1
lrwxrwxrwx 1 root root    0 Aug 30 21:21 iommu_group -> ../../../kernel/iommu_groups/7
-r--r--r-- 1 root root 4096 Aug 30 21:21 irq
drwxr-xr-x 2 root root    0 Aug 30 21:21 link
-r--r--r-- 1 root root 4096 Aug 30 21:21 local_cpulist
-r--r--r-- 1 root root 4096 Aug 30 21:21 local_cpus
-r--r--r-- 1 root root 4096 Aug 30 21:21 modalias
-rw-r--r-- 1 root root 4096 Aug 30 21:21 msi_bus
-rw-r--r-- 1 root root 4096 Aug 30 21:21 numa_node
drwxr-xr-x 2 root root    0 Aug 30 21:21 power
--w--w---- 1 root root 4096 Aug 30 21:21 remove
--w------- 1 root root 4096 Aug 30 21:21 rescan
-r--r--r-- 1 root root 4096 Aug 30 21:21 resource
-rw------- 1 root root 4096 Aug 30 21:21 resource0
-r--r--r-- 1 root root 4096 Aug 30 21:21 revision
lrwxrwxrwx 1 root root    0 Aug 30 21:21 subsystem -> ../../../bus/pci
-r--r--r-- 1 root root 4096 Aug 30 21:21 subsystem_device
-r--r--r-- 1 root root 4096 Aug 30 21:21 subsystem_vendor
-rw-r--r-- 1 root root 4096 Aug 30 21:21 uevent
-r--r--r-- 1 root root 4096 Aug 30 21:21 vendor

It seems the device is not recognized as an i2c device, therefore no i2c hid driver is able to attach to it. What was the last kernel version that worked, and what is the first kernel version that doesn’t work?

Mh, I know that Kernel 5.7.9-1 worked. I updated to that end of July. I think I realized the problem when I updated on 08/19 to 5.7.14-1. I just ran the normal system updates, so I did not specifically did a kernel update there. That I remember for sure. So it must have happened on a regular minor kernel update. Then, I tried to use directly 5.8 and also 5.6 , but no luck.

Then, I tried to use directly 5.8 and also 5.6 , but no luck.

So if you downgrade to 5.6 it doesn’t work, but the touchpad works in the live session with 5.6 kernel? If so, could you provide the exact version (uname -r)? Could you also provide the output of lsmod | grep -Ei '(syna|hid|i2c)' on the system where the touchpad works?

Yes, so uname -r gives: 5.6.15-1-MANJARO .

lsmod gives:

hid_multitouch               32768    0
hid_generic                     16384    0
i2c_hid                            32768    0
hid                              143360       3 i2c_hid, hid_multitouch, hid_generic
i2c_i801                          36864    0
mac_hid                          16384     0
i2c_algo_bit                         16384   1 i915

I would need to go back to my installation, but I think I saw some i801_smbus errors in my dmesg. If this is of importance here. But I am 100% sure.

If you don’t see the smbus errors when the touchpad works, they may be of significance.

Yes that is why I am mentioning it. I just realized, as I noticed the i2c_i801 number. I did not made the connection to my touchpad. The errors are:

[    2.839438] i801_smbus 0000:00:1f.4: Timeout waiting for interrupt!
[    2.839440] i801_smbus 0000:00:1f.4: Transaction timeout
[    2.841540] i801_smbus 0000:00:1f.4: Failed terminating the transaction
[    2.841595] i801_smbus 0000:00:1f.4: SMBus is busy, can't use it!

I thought this is something else, because the address does not match 0000:00:15.1 …

Those errors do not appear on my live installation. Can I somehow revert back to 5.7.9-1 would that be worth a try?

Ah, and yes I went to 5.6.19_rt12-3 a few hours back. And nothing changed…