Take a look at our
ThinkPads.com HOME PAGE
For those who might want to contribute to the blog, start here: Editors Alley Topic
Then contact Bill with a Private Message

Touchpad fix X220 synaptics firmware 8.1 bug (linux)

X200/X201/X220 (including equivalent tablet models) and X300/X301 Series
Post Reply
Message
Author
skx
Sophomore Member
Posts: 242
Joined: Mon Jul 09, 2018 6:25 pm
Location: Colombia

Touchpad fix X220 synaptics firmware 8.1 bug (linux)

#1 Post by skx » Mon Jul 23, 2018 8:03 am

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:

Code: Select all

dmesg | grep -i touchpad
[ +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
ThinkPad X220: i5-2520M CPU 2.5GHz - 8GB RAM 1333 MHz - SSD 860 EVO 250GB - Debian - ME_cleaned
ThinkPad X230: i5-3320M CPU 3.3GHz - 8GB RAM 1600 MHz - SSD 860 EVO 500GB - Debian - ME_cleaned

axur-delmeria
Senior ThinkPadder
Senior ThinkPadder
Posts: 3810
Joined: Mon May 28, 2012 5:49 am
Location: Metro Manila, Philippines

Re: Touchpad fix X220 synaptics firmware 8.1 bug (linux)

#2 Post by axur-delmeria » Mon Jul 23, 2018 11:00 am

Tried the dmesg | grep -i touchpad command. The output was blank/empty. Then i realized that i disabled the touchpad in BIOS. :lol:

Thanks for the post regardless. I'll keep a copy for future reference.
Planned Purchase: T480s i5-8350 FHD Touch
Impulse Buy: Thinkpad not named for safety reasons :lol:
RIP: X220 4291-C91 X61 7676-A24 760XD-U9E :cry:

evening_hunger
Junior Member
Junior Member
Posts: 303
Joined: Thu Nov 26, 2015 2:55 pm
Location: Normandy, France

Re: Touchpad fix X220 synaptics firmware 8.1 bug (linux)

#3 Post by evening_hunger » 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....
T14amdR7-4750U/32GB/500gb.ssd/debian_testing (main driver)
X320/i7-2620M/8GB/256gb.ssd/FHD13.3''IPS/debian_testing (ex-main driver)
T30Pentium-M 4 1.8Ghz 512MB RAM - under restoration
X230/i5/8GB/500gb.hdd+256gb.m2ssd/IPS/debian_stable+win7
755CE, 486DX, approx 28MB RAM (Win95 JP)

skx
Sophomore Member
Posts: 242
Joined: Mon Jul 09, 2018 6:25 pm
Location: Colombia

Re: Touchpad fix X220 synaptics firmware 8.1 bug (linux)

#4 Post by skx » Sun Jul 29, 2018 4:53 pm

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?
ThinkPad X220: i5-2520M CPU 2.5GHz - 8GB RAM 1333 MHz - SSD 860 EVO 250GB - Debian - ME_cleaned
ThinkPad X230: i5-3320M CPU 3.3GHz - 8GB RAM 1600 MHz - SSD 860 EVO 500GB - Debian - ME_cleaned

asbesto
Posts: 7
Joined: Sun Feb 10, 2008 1:22 pm
Location: Palazzolo Acreide, ITALY

Re: Touchpad fix X220 synaptics firmware 8.1 bug (linux)

#5 Post by asbesto » Thu Nov 04, 2021 2:21 pm

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
73 de IW9HGS - asbesto
Thinkpad T40 type 2373-8CG

Post Reply
  • Similar Topics
    Replies
    Views
    Last post

Return to “ThinkPad X200/X201/X220 and X300/X301 Series”

Who is online

Users browsing this forum: No registered users and 59 guests