7

TL;DR; WTF!?

The substance of this question is in the title and in bold. Some touchpads, designed for Win8/10, behave erratically with the Linux i2c-hid kernel module.


There are a lot of questions related to Elantech touchpads not working. This question is not a duplicate. Well, it is, but it isn't. Basically, these touchpads are super finicky and have given a lot of people problems under a variety of conditions.

Sometimes it works or doesn't work when I reboot and the mouse cursor does or doesn't appear. Sometimes it stops working when I'm typing on page 37 of a particular document in Abiword, but page 23 when using LibreOffice. Sometimes it becomes extra finicky when using even-numbered kernel updates, but super stable with odd-numbered updates. Same for any Ubuntu releases ending in .04 or .10 ... or that occur on a prime-numbered year, or when the sum of the digits of the version number is prime (1+8+0+4 = 13). Often it stops working when it "knows" I'm doing something important, exactly 666 ms before I am about to save my work.

In short, all of these details are just random noise. They have nothing to do with whether the touchpad works. It is just a horrible device designed to make my life miserable. But I can't tear my laptop apart to replace it!

This is a meta-question intended to get at the underlying problem with these touchpads, which is they are all on laptops that ran Windows 8/10.

Is there is no ritual, no magic, that can make this touchpad cooperate with operating systems christened outside the MS Temple? What praises can I utter? What blessings can I seek? To make this touchpad work?

4
  • Offcourse there are rituals for that. :)
    – An0n
    Aug 26, 2018 at 2:51
  • try "modprobe i2c_hid", have a look if it works. Here (bugzilla.kernel.org/show_bug.cgi?id=207759) is a good way to get it working. I have problems w. ELAN, HID and i2c devices on a Fujitsu E5510 (latest creation). Touchpad, Wifi and ethernet and keyboard did not start! Better results in Ubuntu 21.04(!). What eventually helped in my case (5.11 kernel, U21): Create a Systemd service essentially invoking "modprobe i2c_hid" . I can paste the code if someone wants. Plenty of tutorials for creating Systemd service out there. Do not forget the "sudo systemctl enable" part! FF! Apr 17, 2021 at 21:29
  • try "modprobe i2c_hid_acpi" This Tip comes from the Fujitsu Laptop community. Actually my Fujitsu E 5511 Lifebook E5511MF5BMDE needs this help. Works fine now. Tested with Ubuntu 22.04beta and 20.04.4LTS. Works fine. Fujitsu E Laptops rock! Mar 5, 2022 at 14:02
  • an even nicer way to activate the kernel modules (i2c_hid and i2c_hid_acpi) is described here: umij.wordpress.com/2021/11/30/… Do not miss the interesting hints in this article. Great work. Apr 16, 2022 at 6:12

2 Answers 2

13

TL;DR; WTF!?

  1. MS created a new protocol, HID over I2C. Neither MS nor touchpad manufacturers actually follow the specs.

  2. As a result, many touchpads that require the new protocol don't work well with the Linux kernel module i2c-hid. Sometimes kernel updates can resolve the problem (or cause it to return).

  3. If possible, disable HID over I2C. On some computers, the setting may be in BIOS. But on other computers, the setting may changed only from within Windows.

  4. Sometimes rebooting or switching the touchpad on and off can help. Sometimes detaching the touchpad, as on an MS Surface or Acer Switch Alpha, can get it working again.


The underlying problem is HID over I2C, an input device protocol created by Microsoft and first used in Windows 8. Because device manufacturers often don't read, or perhaps intentionally don't follow, specs, Microsoft has put a lot of little quirks into the driver to make it work. Or perhaps, it's the other way around? Microsoft has a lot of quirks in the driver so manufacturers cannot follow specs if they are to expect their devices to work (on Windows, until there is one of those "Creator" updates -- so named because they create new, never-before-seen bugs).

On Linux, the kernel module that handles this protocol is i2c-hid. People have varying degrees of success getting the touchpad to work by changing or patching kernels because fixing the driver for one device can break another device. If you find a kernel for which this device works and have no other problems, freeze that version immediately. Never uninstall old kernels unless you have two or more consecutive kernels for which the touchpad consistently works because the touchpad has quantum circuits that activate quarky behavior when it detects the number of stable kernels you have installed is less than or greater than 1.4142, plus-or-minus a counter-anti-counterclockwise spin, which is a single spin in three independent directions, simultaneously. (Such puzzles are not for us to question.)

A potential solution is to turn off HID over I2C in BIOS. There is no consistent name for this setting. It may be tied to some other setting, like EFI. It might be doable only from within Windows. It may be impossible. Consider performing a ritual in which plenty of alcohol is imbibed before attempting this. If this setting can be disabled, the psmouse kernel module will take care of the touchpad.

But sometimes you have to turn on HID over I2C. The nature of these devices is they may not work properly with the psmouse module. Sometimes it is helpful to perform ancient rituals in which sacred, so-called four-letter, words are shouted while the computer is rebooted or the touchpad on-off switch is pressed multiple times in a pattern that is pleasing to the gods of computation. If that does not work, the hopeless sometimes receive answers to their prayers upon ripping the touchpad from the rest of the computer.

We must be vigilant in these trying times. As we continue our Exodus, may our prayers be heard so that we may someday see freedom from the reign of MS.

2
  • Of course, this assumes you've done the standard stuff, like check that the touchpad on/off switch is set appropriately. If not, you are beyond the help of even the gods of the second under-ring, for demons from the realm of the third under-ring seized the ghost in your laptop.
    – xiota
    May 7, 2018 at 14:04
  • I checked in the firmware, and turns out it was triggered because I enabled legacy boot support.
    – Didi Kohen
    May 16, 2022 at 18:31
-1

There is no need for changes on HID or i2c setup, or any hardcore instalation. For me the problem was the Ubuntu Touchpad feature that disabled the right click to touch gesture(try tap with two fingers) use Gnome-tweak-tools to fix it.

2
  • As If I gonna tell the blessing for machine work. But euhm. @xiota. Why You think they are designed for windows 8/10. ;)
    – An0n
    Aug 26, 2018 at 2:49
  • This Elantech ELAN i2c stuff even needs packets of external drivers on Win10datadrainsoft so I guess even there its a shitty solution rather than smooth. Free software helps - this closed proprietary stuff is a timedraining example how not to do the job. When you find the brand new laptop has no working keyboard, touchpad, ethernet, wifi (level 8 panic ! !) say thank you to the greedy stupid business elite creating such shit. They cost us so tremendously much work and time - keep in mind next time! Apr 17, 2021 at 21:26

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .