Skip to main content

Kubuntu on ThinkPad with TrackPoint and TouchPad Elantech Problem

·340 words·2 mins
Linux
oon arfiandwi
Author
oon arfiandwi
keep it simple, s!
Kubuntu Jammy Jellyfish 22.04 LTS

Since I work at Dicoding, I use a ThinkPad (yeah, kind of bored of using Mac).

(re-)Starting Career as an Educator at Dicoding
·153 words·1 min
Dicoding educator

And, of course, I use Linux on that ThinkPad, as I am a fan of Kubuntu. 😂

Add New Resolution to Xorg on Kubuntu
·145 words·1 min
Linux X11

After years of no problems at all, today I found that the touchpad was not moving while I was working. At some point, I used a USB mouse.

Okay, let’s get technical.

First, I thought that it was the device driver, so probably a new kernel caused the problem. I found that my Kubuntu has several kernels with versions 5.15.xx and 6.5.xx.

$ apt list --installed | grep linux-image

So, I tried to reboot several times with different kernel versions, manually selected via grub. But, the problem still exists. 😢

Let’s try a different perspective, check what happened on dmesg.

$ sudo dmesg | grep mouse

Now, we can see some kernel messages, “probably” related to the kernel module psmouse, or there’s a clue on the hardware name “probably” Elantech.

And then, of course, we move to ask Google. 😂

The quick fix that I got was to remove the kernel module psmouse and add it again. 1

sudo modprobe -r psmouse && sudo modprobe psmouse proto=imps

But, um… yeah, still not perfect. I can’t use the scroll. 😕

On the other side, I found something with Elantech, information officially from Lenovo, the producer of ThinkPad. 2 So there’s a trick regarding psmouse for Elantech by setting the kernel with the parameter psmouse.elantech_smbus=0.

Digging deeper regarding psmouse and Elantech, I found that it’s a bug in the Linux kernel 3, which comes from years ago. It made a wrong protocol detection in the kernel configuration: /sys/bus/serio/devices/serio1/protocol.

So, as mentioned in 2, adjusting the kernel parameter fixed my problem. Then, I made it permanent by adding the parameter to GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub 4.

Hope it helps.