Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • L libinput
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 161
    • Issues 161
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 19
    • Merge requests 19
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • libinput
  • libinput
  • Issues
  • #694
Closed
Open
Issue created Oct 30, 2021 by yznerf@yznerf

Touchpad not working at all on Lenovo Yoga Slim 7 15ITL05 with libinput

Summary

I'm inclined to confess, that I am only a casual Linux-User and I am not a native english-speaker. This is my first bug-report and I am not sure that I am using this platform correctly. I'm trying to find out, if this is really a bug, or if it can be resolved with configuration.

I made a dualboot of Windows and Ubuntu on a Lenovo Yoga Slim 7 Notebook (Model 15ITL05). At first, the touchpad seemed only to act up a bit. Jumping cursor, ghost clicks. But it got worse - presumably after a firmware-update which I applied via Windows.

I realized, that the machine drew a lot of battery-power while no application was running. Effectively the time until drain was only a third of what it was displayed on Windows. I took a look at dmesg and found, that it was spammed with the Error:

i2c hid acpi i2c-ELAN 0000:00: i2c_hid_get_input: incomplete report (14/60416)

10 Errors or so a second, and it continued, so that /var/log/syslog grew immensely. So I browsed the Internet for a solution. I found many other users who had problems on the Lenovo Yoga Slim 7 (mostly the popular AMD version) but none seemed to be exactly the same problem. I tried to apply some of the solutions that had worked for other users: e.g. kernel-arguments in grub (pci=nocrs i8042.nopnp=1), blacklisting one or both of the drivers (elan_i2c and/or i2c_hid_acpi). But to no avail. The arguments in grub did nothing. And only blacklisting both drivers stopped the spam in dmesg, and stopped the power-draw - But then: No touchpad. I was starting to think, that this was a hardware-issue, but the touchpad worked flawlessly under Windows 10.

So I thought, maybe it's the slightly older kernel, which is used in Ubuntu. I thought about patching the kernel, but at this point I gravitated towards a new install anyway and I've had more luck with Fedora when it comes to more recent hardware. And that's what I did... Only to find out that the problem was the same. Touchpad only working barely or not at all and error-spam in dmesg.

As described, I only use Linux casually, but I really wanted to take a deeper dive. So I learned, that libinput is used in GNOME to supply the drivers for hid. I tried the X-Org enviroment that comes with fedora, but the error stayed the same. So I tested Manjaro/KDE as a live-CD, as this distribution only uses X-Org and Synaptics Drivers. Same error: Touchpad not working, error-spam in dmesg. So it seems to be a problem with the new firmware, that lenovo supplied.

On Fedora I've conducted some more troubleshooting to isolate the origin of the error, but I'm afraid, that I am not qualified for that. I downgraded libinput to version 1.17.1, but with no result. Update back to latest version. I may say, that the udevadm -info showed two ELAN Drivers one for touchpad and one for mouse and the output of evtest showed a massive amount of events, even while the touchpad was not touched. This test was conducted when the touchpad working barely for a short time.

After that I got fed up and blacklisted one of the drivers, after I've learned, that

sudo modprobe -r elan_i2c

turns of the touchpad completely.

To prevent it to load at boot, I have made the following modifications:

echo "blacklist elan_i2c" >> /etc/modprobe.d/i2c-touchpad-blacklist.conf
dracut -f /boot/initramfs-5.14.13-200.fc34.x86_64.img

I can temporarily activate the driver again with:

sudo modprobe elan_i2c

but now, even after I remove the blacklist.conf file and update the ramdisk, only the touchpad driver is shown with udevadm -info (see attached log).
The touchpad can be toggled on/off in GNOME-Settings, but does not work. It seems, that the copious amounts of events were only output, when both drivers were present. I presume, that's why the libinput-records and libinput debug-events logs don't contain any records, although I touched, clicked and wiped the touchpad like a maniac after starting the recording. Also, the error has changed to

elan_i2c i2c-ELAN0000:00: invalid report id data (0)

I don't know if this is a legitimate bug-report. I posted it, in case someone has the same error after the firmware-update and hope they would second me. Or, maybe someone has a fix for this with configuration. I'd be more than happy to supply additional information or test possible solutions.

Important: Under Windows the touchpad continues to work flawlessly.

A similar error can be found in the arch forums: here

Steps to reproduce

I have tested with full installation of Ubuntu 20.04.2 (Kernel 5.11.? - GNOME) and Fedora 34 (Kernel 5.14.12 - GNOME and Upgrade to 5.14.13) and with Live-CD of Manjaro/KDE.

The error (barely any or no function of touchpad / error-spammed dmesg) was persistent on all platforms after install/boot on the above posted model with the most recent firmware-updates applied.

Required information

  • libinput version: 1.19.2 (tried downgrade to 1.17.1 - error persists)
  • hardware information: Lenovo Yoga Slim 7 15ITL05
  • libinput record output: touchpad.yml
  • libinput debug-events --verbose debug-events

dmesg

[ 1936.608955] elan_i2c i2c-ELAN0000:00: invalid report id data (0)
[ 1936.610277] elan_i2c i2c-ELAN0000:00: invalid report id data (0)
[ 1936.611606] elan_i2c i2c-ELAN0000:00: invalid report id data (0)
[ 1936.612935] elan_i2c i2c-ELAN0000:00: invalid report id data (0)
[ 1936.614267] elan_i2c i2c-ELAN0000:00: invalid report id data (0)
[ 1936.615601] elan_i2c i2c-ELAN0000:00: invalid report id data (0)
[ 1936.616932] elan_i2c i2c-ELAN0000:00: invalid report id data (0)
[ 1936.618271] elan_i2c i2c-ELAN0000:00: invalid report id data (0)
[ 1936.619603] elan_i2c i2c-ELAN0000:00: invalid report id data (0)
[ 1936.620930] elan_i2c i2c-ELAN0000:00: invalid report id data (0)

udevadm-info device-list evtest

Edited Oct 30, 2021 by yznerf
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking