Trackpoint sometimes not working after each boot on Thinkpad T440p

Hi

I have recently installed Tumbleweed on my T440p and the trackpoint (not trackpad) is just not working on some sessions. And rebooting does not guarantee a fix. I could not track down a pattern to understand what gets the trackpoint to work sometimes but I have logged outputs of dmesg | egrep -i "input|firmware" and xinput list on a session that the trackpoint works and on a session that it does not work.
I’m new to openSUSE and don’t understand how devices work on linux well enough to diagnose the problem so any help is appreciated.

My system info:

Operating System: openSUSE Tumbleweed 20250903
KDE Plasma Version: 6.4.4
KDE Frameworks Version: 6.17.0
Qt Version: 6.9.2
Kernel Version: 6.16.3-1-default (64-bit)
Graphics Platform: X11
Processors: 4 × Intel® Core™ i5-4300M CPU @ 2.60GHz
Memory: 8 GiB of RAM (7.6 GiB usable)
Graphics Processor: Intel® HD Graphics 4600
Manufacturer: LENOVO
Product Name: 20AWS2T100
System Version: ThinkPad T440p

Outputs for when the trackpoint works:

sudo dmesg | egrep -i "input|firmware"

[    0.000000] [      T0] efi: [Firmware Bug]: Invalid EFI memory map entries:
[    0.186218] [      T0] Spectre V2 : Enabling Restricted Speculation for firmware calls
[    0.383743] [      T1] ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored
[    1.077168] [     T60] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0
[    1.923604] [     T60] psmouse serio1: synaptics: serio: Synaptics pass-through port at isa0060/serio1/input0
[    1.960731] [     T60] input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio1/input/input2
[    3.225542] [    T368] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input4
[    5.074367] [     T60] psmouse serio2: trackpoint: IBM TrackPoint firmware: 0x0e, buttons: 3/3
[    5.275576] [     T60] input: TPPS/2 IBM TrackPoint as /devices/platform/i8042/serio1/serio2/input/input3
[    5.339932] [      T1] SELinux:  Permission firmware_load in class system not defined in policy.
[    6.009407] [      T1] systemd[1]: Clear Stale Hibernate Storage Info was skipped because of an unmet condition check (ConditionPathExists=/sys/firmware/efi/efivars/HibernateLocation-8cf2644b-4b0b-428f-9387-6d876050dc67).
[    6.463125] [    T609] input: Lid Switch as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input5
[    6.483349] [    T609] input: Sleep Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input6
[    6.483584] [    T609] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input7
[    6.553769] [    T617] ACPI: thermal: [Firmware Bug]: Invalid critical threshold (-274000)
[    6.554170] [    T617] ACPI: thermal: [Firmware Bug]: No valid trip points!
[    6.680781] [    T627] input: PC Speaker as /devices/platform/pcspkr/input/input8
[    6.796997] [     T11] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    6.942678] [    T229] iwlwifi 0000:03:00.0: loaded firmware version 17.bfb58538.0 7260-17.ucode op_mode iwlmvm
[    6.946624] [    T598] input: ThinkPad Extra Buttons as /devices/platform/thinkpad_acpi/input/input9
[    7.206645] [     T59] input: HDA Intel HDMI HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:03.0/sound/card0/input12
[    7.206810] [     T59] input: HDA Intel HDMI HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:03.0/sound/card0/input13
[    7.206961] [     T59] input: HDA Intel HDMI HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:03.0/sound/card0/input14
[    7.228643] [    T630] snd_hda_codec_realtek hdaudioC1D0:    inputs:
[    7.280055] [     T25] input: HDA Digital PCBeep as /devices/pci0000:00/0000:00:1b.0/sound/card1/input15
[    7.280137] [     T25] input: HDA Intel PCH Dock Mic as /devices/pci0000:00/0000:00:1b.0/sound/card1/input16
[    7.280238] [     T25] input: HDA Intel PCH Mic as /devices/pci0000:00/0000:00:1b.0/sound/card1/input17
[    7.280987] [     T25] input: HDA Intel PCH Dock Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card1/input18
[    7.281809] [     T25] input: HDA Intel PCH Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card1/input19
[    7.803062] [     T60] psmouse serio1: synaptics: serio: Synaptics pass-through port at isa0060/serio1/input0
[    7.842407] [     T60] input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio1/input/input11
[   10.967233] [     T60] psmouse serio3: trackpoint: IBM TrackPoint firmware: 0x0e, buttons: 3/3
[   11.170993] [     T60] input: TPPS/2 IBM TrackPoint as /devices/platform/i8042/serio1/serio3/input/input20
[   20.063164] [    T765] Bluetooth: hci0: Intel Bluetooth firmware file: intel/ibt-hw-37.7.10-fw-1.80.2.3.d.bseq


xinput list

⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=10   [slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                     id=12   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=9    [slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                    id=11   [slave  keyboard (3)]

Outputs for when the trackpoint doesn’t work:

sudo dmesg | egrep -i "input|firmware"

[sudo] password for root:
[    0.000000] [      T0] efi: [Firmware Bug]: Invalid EFI memory map entries:
[    0.185431] [      T0] Spectre V2 : Enabling Restricted Speculation for firmware calls
[    0.383795] [      T1] ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored
[    1.083579] [     T60] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0
[    1.919317] [     T60] psmouse serio1: synaptics: serio: Synaptics pass-through port at isa0060/serio1/input0
[    1.956436] [     T60] input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio1/input/input2
[    3.221099] [    T361] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input4
[    5.289652] [     T60] psmouse serio2: trackpoint: IBM TrackPoint firmware: 0x0e, buttons: 3/3
[    5.484763] [     T60] input: TPPS/2 IBM TrackPoint as /devices/platform/i8042/serio1/serio2/input/input3
[    5.494301] [      T1] SELinux:  Permission firmware_load in class system not defined in policy.
[    6.237496] [      T1] systemd[1]: Clear Stale Hibernate Storage Info was skipped because of an unmet condition check (ConditionPathExists=/sys/firmware/efi/efivars/HibernateLocation-8cf2644b-4b0b-428f-9387-6d876050dc67).
[    6.704625] [    T604] input: Lid Switch as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input5
[    6.708517] [    T604] input: Sleep Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input6
[    6.709133] [    T604] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input7
[    6.789865] [    T604] ACPI: thermal: [Firmware Bug]: Invalid critical threshold (-274000)
[    6.790300] [    T604] ACPI: thermal: [Firmware Bug]: No valid trip points!
[    6.978660] [    T629] input: PC Speaker as /devices/platform/pcspkr/input/input8
[    6.987076] [     T77] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    7.140291] [     T77] iwlwifi 0000:03:00.0: loaded firmware version 17.bfb58538.0 7260-17.ucode op_mode iwlmvm
[    7.177309] [    T602] input: ThinkPad Extra Buttons as /devices/platform/thinkpad_acpi/input/input9
[    7.424363] [    T242] input: HDA Intel HDMI HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:03.0/sound/card0/input12
[    7.424531] [    T242] input: HDA Intel HDMI HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:03.0/sound/card0/input13
[    7.425274] [    T242] input: HDA Intel HDMI HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:03.0/sound/card0/input14
[    7.452590] [    T763] snd_hda_codec_realtek hdaudioC1D0:    inputs:
[    7.497970] [      T9] input: HDA Digital PCBeep as /devices/pci0000:00/0000:00:1b.0/sound/card1/input15
[    7.498053] [      T9] input: HDA Intel PCH Dock Mic as /devices/pci0000:00/0000:00:1b.0/sound/card1/input16
[    7.498124] [      T9] input: HDA Intel PCH Mic as /devices/pci0000:00/0000:00:1b.0/sound/card1/input17
[    7.498193] [      T9] input: HDA Intel PCH Dock Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card1/input18
[    7.506421] [      T9] input: HDA Intel PCH Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card1/input19
[    8.280368] [    T620] input: Synaptics TM2722-001 as /devices/pci0000:00/0000:00:1f.3/i2c-9/9-002c/rmi4-00/input/input20
[   12.140916] [    T229] psmouse serio3: trackpoint: IBM TrackPoint firmware: 0x0e, buttons: 3/3
[   12.764989] [    T229] input: TPPS/2 IBM TrackPoint as /devices/pci0000:00/0000:00:1f.3/i2c-9/9-002c/rmi4-00/rmi4-00.fn03/serio3/input/input21
[   40.864492] [     T86] Bluetooth: hci0: Intel Bluetooth firmware file: intel/ibt-hw-37.7.10-fw-1.80.2.3.d.bseq


xinput list

⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Synaptics TM2722-001                      id=9    [slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                     id=12   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=10   [slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                    id=11   [slave  keyboard (3)]

Are you ever able to have it work after a failure by merely logging out and back into Plasma?

Are you ever able to have it work after a failure by merely logging out and back into the other Plasma session type, Wayland instead of X11?

Are you ever able to have it work after a failure by merely logging out of Plasma and into a non-Plasma session type, e.g. IceWM or LXQt?

If no one chimes in here with better help, you may consider to report a bug, noting whether this only happens in Plasma sessions or not, whether both Plasma session types, and including the URL of this thread. I have two CPUs/GPUs like yours, but no Trackpoints.

Welcome to openSUSE Forums. Based on the kernel logging you provided for both working and non-working cases, it seems that there is a race condition in the UEFI/BIOS at boot.

When the kernel detects “psmouse serio1: Synaptics TouchPad” (using classic PS/2 driver), the touchpad shows up as a “SynPS/2 Synaptics TouchPad”.

When the kernel detects “input: Synaptics TM2722-001” instead, it is using the newer “I²C HID mode”, and the device shows up as “Synaptics TM2722-001”.

Try using the following kernel boot parameter in your GRUB configuration:
psmouse.synaptics_intertouch=0
This should make the kernel use the PS/2 driver for the touchpad instead of trying to initialize it in I²C mode, which should eliminate the intermittent detection issue.

Let us know how that goes.

My bad - I missed that this was about the TrackPoint. The working case…

[5.074367] psmouse serio2: trackpoint: IBM TrackPoint firmware: 0x0e, buttons: 3/3
[5.275576] input: TPPS/2 IBM TrackPoint as /devices/platform/i8042/serio1/serio2/input/input3
...
[10.967233] psmouse serio3: trackpoint: IBM TrackPoint firmware: 0x0e, buttons: 3/3
[11.170993] input: TPPS/2 IBM TrackPoint as /devices/platform/i8042/serio1/serio3/input/input20

Non-working…

[5.289652] psmouse serio2: trackpoint: IBM TrackPoint firmware: 0x0e, buttons: 3/3
[5.484763] input: TPPS/2 IBM TrackPoint as /devices/platform/i8042/serio1/serio2/input/input3
...
[12.140916] psmouse serio3: trackpoint: IBM TrackPoint firmware: 0x0e, buttons: 3/3
[12.764989] input: TPPS/2 IBM TrackPoint as /devices/pci0000:00/0000:00:1f.3/i2c-9/9-002c/rmi4-00/rmi4-00.fn03/serio3/input/input21

The TrackPoint device seems to be initialized twice in both cases. In the non-working case during the second initialization, it is treated as an I²C device, instead of the an i8042 (PS/2) device. Some kind of timing issue.

Are you using the latest firmware for the T440p?

While you could try using the psmouse.proto=imps kernel boot parameter, it would affect the entire PS/2 mouse interface, so the trackpad would also treated as a more basic device.

Thanks for the reply.

While I have not tried Wayland or other DEs, I think there were instances when the system went to sleep mode automatically and after turning it on again, the trackpoint was working. But it is inconsistent and I can not fix it by just manually putting the system in sleep mode and turning it back on again or logging out and logging back in.

I will try Wayland and report back.

That is unlikely to make any difference unfortunately. This is a low level hardware/firmware timing issue occurring at boot.

Thanks for the reply.

Yes. Actually I updated the firmware to the latest official version last week. it did not effect the trackpoint behavior.

I will try adding psmouse.proto=imps parameter to modprobe.d and report back.

If you don’t mind how the TrackPad is handled, you could just use a custom udev rule to limit the TrackPoint device to being handled as a PS/2 device, and ignore the TrackPoint I2C device handling…

sudo nano /etc/udev/rules.d/99-trackpoint.rules
with the following

SUBSYSTEM=="input", ATTRS{name}=="TPPS/2 IBM TrackPoint", ATTR{driver_override}="none"

This tells the kernel not to bind the I2C TrackPoint driver (when it occurs), leaving the PS/2 TrackPoint driver active.

Just be aware that it will also affect the TouchPad handling as well. In the working and non-working cases it’s treated differently remember, although the advanced behaviour might not be something you take advantage of (or are even aware of perhaps).

Well it doesn’t seem to be working anyways.
Correct me if I’m doing something wrong. Here is the command I used:

sudo nano /etc/modprobe.d/trackpoint.conf

and then put this in there: options psmouse.proto=imp also tried options psmouse proto=imp

The other solution that you suggested is also pretty straight forward. I ran the command and then wrote the exact same line you quoted.

The trackpad functions doesn’t seem to be limited either.

Also Wayland doesn’t behave any different as you predicted.

Forgot to mention, I tested each solution by rebooting and turning off the system several times after creating each file. And also deleted the “.rules” file before testing the other solution.

Sorry, my bad.
I used yast2 boot loader this time. It does work but as you said, the scroll functions of the touchpad is completely gone.

That won’t work, as the psmouse driver is compiled into the kernel (not a module). It needs to be added as a kernel parameter.

See here:
https://wiki.archlinux.org/title/Kernel_parameters#GRUB

Yes, I hinted that might not be acceptable from a touchpad POV. Try the udev rule approach. It will only help with making sure the kernel uses the PS/2 interface for the TrackPoint. However, you’ll still get the intermittent issue with respect to the TouchPad.

It doesn’t seem to change the trackpoint behavior.
Here is the output of cat /etc/udev/rules.d/99-trackpoint.rules

SUBSYSTEM=="input", ATTRS{name}=="TPPS/2 IBM TrackPoint", ATTR{driver_override}="none"

It is still working randomly on some sessions.

Is this problem specific to my system? Because Thinkpads are popular among linux users but I couldn’t fine similar problems on the web.

It may be specific to how the TouchPad and TrackPoint input devices are implemented, as the firmware exposes them on both the I2C and PS/2 buses, but the initialization order is inconsistent. The kernel then tries to handle the devices accordingly. Ultimately, this should be fixed within the firmware, but given the age of this hardware I think your options would be limited.

Have you investigated the UEFI/BIOS TrackPoint (or mouse) settings? Maybe something can be tweaked there?

Yes. There is only an enable/disable option for trackpad and trackpoint. I have tweaked some other settings that might have been relevant to how system handles devices but no luck. Now that I know it is a firmware related issue, I might look into Coreboot.

Thank you for your time anyway.

Perhaps worth posting this issue over at https://forum.thinkpads.com/ as well.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.