Skip to main content

Kubuntu on ThinkPad with TrackPoint and TouchPad Elantech Problem

·340 words·2 mins
oon arfiandwi
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.