Page 1 of 1
Touchpad fix X220 synaptics firmware 8.1 bug (linux)
Posted: Mon Jul 23, 2018 8:03 am
by skx
I finally found and applied the fix to solve the jumpy touchpad behaviour on X220. The issue is caused by a bug in the latest 8.1 firmware. I searched 1 week for the solution and I could not find any solutions on this forum or the ThinkWiki. Below how to verify if you are impacted and how to solve under Linux.
verify if your X220 has the faulty 8.1 firmware:
[ +0.005261] psmouse serio1: synaptics: Touchpad model: 1, fw: 8.1,
id: 0x1e2b1, caps: 0xd002a3/0x940300/0x123800, board id: 1611, fw id: 1099905
libinput fix:
1. Create a new file /etc/udev/hwdb.d/90-libinput-x220-fw8.1.hwdb
2. Look for X220 in the 90-libinput-model-quirks.hwdb file, copy the match and the property assignment into the file.
As of the time of writing, the two lines are as below, but make sure you take the latest from your locally installed libinput version.
libinput:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO:*:pvrThinkPadX220*
LIBINPUT_MODEL_LENOVO_X220_TOUCHPAD_FW81=1
3. Update the udev hwdb with sudo udevadm hwdb --update
4. Verify the tag shows up with sudo udevadm test /sys/class/input/event4
5. Reboot
Confirmed working on Debian Stretch, all credits to Peter Hutterer and the many Linux kernel developers, source:
https://bugzilla.redhat.com/show_bug.cgi?id=1264453
Re: Touchpad fix X220 synaptics firmware 8.1 bug (linux)
Posted: Mon Jul 23, 2018 11:00 am
by axur-delmeria
Tried the
dmesg | grep -i touchpad command. The output was blank/empty. Then i realized that i disabled the touchpad in BIOS.
Thanks for the post regardless. I'll keep a copy for future reference.
Re: Touchpad fix X220 synaptics firmware 8.1 bug (linux)
Posted: Sat Jul 28, 2018 5:34 am
by evening_hunger
@skx
Thanks for this, let me just notice your procedure is not exhaustive. First of all, there's nothing in the /etc/udev/hwdb.d/ directory for most users. You write "look for quirks in the 90-libinput..." file, but you don't even say how to find it / create it.
Only search reveals there's a prototype of this file in /usr/lib (on Debians at least) but it's nontrivial...
That out of the way, do you know what the procedure should be for a X230? Surely, I can't just use the same two lines, as udevadm hwdb --update doesn't get a match on this on a X230. And X230 has jumpy trackpad too....
Re: Touchpad fix X220 synaptics firmware 8.1 bug (linux)
Posted: Sun Jul 29, 2018 4:53 pm
by skx
evening_hunger wrote: ↑Sat Jul 28, 2018 5:34 am
@skx
Thanks for this, let me just notice your procedure is not exhaustive. First of all, there's
nothing in the /etc/udev/hwdb.d/ directory for most users. You write "look for quirks in the 90-libinput..." file, but you don't even say how to find it / create it.
Only search reveals there's a prototype of this file in /usr/lib (on Debians at least) but it's nontrivial...
That out of the way, do you know what the procedure should be for a X230? Surely, I can't just use the same two lines, as udevadm hwdb --update doesn't get a match on this on a X230. And X230 has jumpy trackpad too....
You need to re-read the instructions. You are mixing things up. I have Debian, but the fix is distibution independent and applies to all distributions with libinput. For your info, the fix was even identified by Red Hat kernel developers (see source mentioned in my first post, read the full bug comment trail)
Step 1: create a new file (it's normal you don't find anything under /etc/udev/hwdb.d/), you can do this with command touch
Code: Select all
touch /etc/udev/hwdb.d/90-libinput-x220-fw8.1.hwdb
Step 2: lookup information mentioned in 90-libinput-model-quirks.hwdb , the reason why the location is not mentioned is that this can be different for different distros. use the find command to define the location of 90-libinput-model-quirks.hwdb. for debian you can find this file under /lib/udev/hwdb.d and it mentions the following for X230:
# X230 (Tablet)
libinput:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO:*:pvrThinkPadX230*
LIBINPUT_MODEL_LENOVO_X230=1
The info you will find should be copypasted in the file you created under step 1. But again, you should lookup this yourself, as the settings can change from distro to distro.
Good luck, if you don't find the file mentioned under step 2, verify you have libinput installed at all? Which distro do you use?
Re: Touchpad fix X220 synaptics firmware 8.1 bug (linux)
Posted: Thu Nov 04, 2021 2:21 pm
by asbesto
Hi there, I know this is an old post but I can't solve this problem. It happened today as I changed... the TRACKPAD on my old X220 laptop!!!
So the "firmware" is on the trackpad itself. The new firmware, I mean.
I followed the instruction here:
- created the new file
- looked anywhere for 90-libinput-model-quirks.hwdb but I don't have this file!!!
So I got it from github (don't remember the exact link now)
- got that line of code to add in the new file:
libinput:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO:*:pvrThinkPadX220*
LIBINPUT_MODEL_LENOVO_X220_TOUCHPAD_FW81=1
updated the udev hwdb with udevadm hwdb --update via root
then:
"4. Verify the tag shows up with sudo udevadm test /sys/class/input/event4"
I don't even know WHAT to verify, and WHERE! I got nothing in event4 and nothing anywhere in event* for touchpad or synaptics or whatever related to them.
I notice also that every time udevadm read config files from /etc/udev/rules.d and /lib/udev/rules.d, it reads every config file but NOT the file I just created.
I rebooted, nothing changed, and I don't know what to do.
My distro is DEVUAN gnu/linux and I *DON'T* use systemd.
Any hint?
5. Reboot