19.10: Thinkpad X1 Tablet gen 2 trackpoint not working

I have two Thinkpad X1 tablets gen 2. One is running Ubuntu 19.04 and the other is running Ubuntu 19.10. This machine has a removable keyboard which contains a trackpad and trackpoint. The trackpad has two buttons in its lower left and right corner. Just below the space bar are three mouse buttons.

When I bought the machines the trackpoint was not working but a patch for it eventually made it into the kernel (17.10 I think), see this thread and another. It has worked for a couple years now, but yesterday I noticed that the trackpoint and left and right buttons beneath space bar were not working on my machine with 19.10. I upgraded to 19.10 a month ago and I am afraid I did not notice if it stopped working then because I have had it attached to the dock with a mouse for most of the past month. Another thing I did yesterday was boot the computer into windows briefly from an attached drive which messed up the booting so I mounted a live Ubuntu 19.10 to repair grub. In the live Ubuntu 19.10, the trackpoint works fine.

On my 19.04 machine where the trackpoint works I get trackpoint and button events when I cat any of the following files

/dev/input/mouse2

/dev/input/event9

/dev/input/event10

/dev/hidraw3

The first two do NOT show events for trackpad and its buttons but event10 and hidraw shows events for trackpad, trackpoint and all buttons.

The xinput devices for event9 and event 10 are "PRIMAX ThinkPad X1 Tablet Thin Keyboard Gen 2 Mouse" and "PRIMAX ThinkPad X1 Tablet Thin Keyboard Gen 2 Touchpad" respectively.

When I run

xinput --test "PRIMAX ThinkPad X1 Tablet Thin Keyboard Gen 2 Mouse"

I get events for the trackpoint and its three buttons but not the trackpad. When I run

xinput --test "PRIMAX ThinkPad X1 Tablet Thin Keyboard Gen 2 Touchpad",

I get events for the trackpad and its buttons and not the trackpoint or its buttons.

On the machine running 19.10 where the trackpoint does not work, both the same xinput devices are present. Their properties from xinput --list-props are the same as on my 19.04 machine. I get trackpad and button events from "PRIMAX ThinkPad X1 Tablet Thin Keyboard Gen 2 Touchpad" and I get only button 2 events from "PRIMAX ThinkPad X1 Tablet Thin Keyboard Gen 2 Mouse". When I cat /dev/input/mouse[n] or /dev/input/event9 I get nothing. cat /dev/input/event10 and /dev/hidraw3 give me events for trackpad, trackpoint and all buttons.

2020-05-11 update

Here is some kernel data.

The trackpoint is working on my Ubuntu 19.04 X1 tablet with kernel 5.0.0-38-generic

It is working on the Ubuntu live USB 18.04 and 19.10 with kernels 5.3.0-28-generic and 5.3.0.18-generic respectively.

It does not work on the Ubuntu live USB 20.04 with kernel 5.4.0-26-generic.


Solution 1:

Please try my patch:

https://github.com/leakim/lenovo-x1-gen3-trackpoint-buttons

Would love some feedback on it if you try it.