24

I updated ubuntu 18.04 to 20.04. All worked fine for weeks until today. Touchpad on lenovo y580 stopped working just like that. I didn't install any new updates yesterday.

Xinput log:

Virtual core pointer                        id=2    [master pointer  (3)]
↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
↳ PS/2 Synaptics TouchPad                   id=14   [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)]
↳ Power Button                              id=8    [slave  keyboard (3)]
↳ Sleep Button                              id=9    [slave  keyboard (3)]
↳ Video Bus                                 id=10   [slave  keyboard (3)]
↳ Lenovo EasyCamera: Lenovo EasyC           id=11   [slave  keyboard (3)]
↳ Ideapad extra buttons                     id=12   [slave  keyboard (3)]
↳ AT Translated Set 2 keyboard              id=13   [slave  keyboard (3)]
scof93
  • 341

12 Answers12

31

This is solution, that has worked for me:

sudo rmmod psmouse
sudo modprobe psmouse proto=imps

or

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

To make it permanent, edit:

sudo gedit /etc/modprobe.d/options

and add line:

options psmouse proto=imps

NOTE:

This fix will make the touchpad be recognized as a mouse instead, which might remove some features specific to touchpads such as disable while typing and scroll gestures.

Hope this helps.

Frankusky
  • 103
  • 4
  • sudo modprobe -r psmouse && sudo modprobe psmouse proto=imps worked for me, but I can't seem to make it permanent after restart. – monkut Sep 05 '20 at 04:43
  • 2
    @monkut you can try this to add the command to be executed at startup: https://stackoverflow.com/a/9683384/12731060 – Ubuntovative is here Sep 07 '20 at 04:05
  • Thanks! I'm debating on doing a full re-install... Suspend seems to be failing as well. Something seems to have gotten messed up on my system. – monkut Sep 07 '20 at 04:17
  • 1
    Hmmm... Just re-installed 20.04 and have the same issue. I guess some update messed up the system. My hw works fine in my windows boot. – monkut Sep 08 '20 at 02:27
  • 2
    Looks like the problem may have been introduced in the kernel, 5.4.0-47-generic. I selected the previous, 5.4.0-42-generic, at grub boot load and the trackpad/trackpoint work fine now. – monkut Sep 08 '20 at 12:35
  • 1
    That was it @monkut! I think that deserves to be an answer, so that more can see this simple solution instead of the 2h of complex commands I had to live through – oma Sep 10 '20 at 20:17
  • This enabled tapping on the touchpad but disabled scrolling haha. Thanks though! – joshpetit Dec 17 '20 at 01:23
  • @joshpetit Yes I had already mentioned in my answer. – Ubuntovative is here Dec 17 '20 at 03:56
  • 1
    @GopalS wow, how did I miss the fact that you put note in bold. My fault haha! – joshpetit Dec 17 '20 at 11:33
  • this is not working for me – Madeo Nov 17 '21 at 07:43
  • To make this permanent, need to make that options.conf. And need to do this afterwards: sudo update-initramfs -u – Shahbaz Mar 21 '23 at 23:13
9

I've been using 20.04 since august and just and at the end of August 2020, suddenly the touchpad/trackpoint stopped working on my Lenovo Thinkpad X1 extreme.

After struggling, getting it partially working, and eventually trying to re-install 20.04 3 or 4 times to fix the issue (initial install was fine), I found that the problem may have been introduced in the kernel 5.4.0-47-generic.

To work around this, I select the older kernel 5.4.0-42-generic at boot time by accessing the GRUB menu and going to Advanced Options.

Now I'm able to use the trackpad/trackpoint as before.

I still have a bit of a display issue with suspend, but at least I can work on my laptop again.

To configure the kernels and defaults to set, this Ask Ubuntu question is a good resource.

UPDATE

I raised a bug with ubuntu, and managed to resolve the issue in my case by changing the Config->Graphics Device value from Discrete Graphics to Hybrid Graphics. With Hybrid Graphics set in BIOS and running the lastest kernal/updates as of 2020-11-6 I'm able to use my trackpad/trackpoint.

monkut
  • 291
  • 1
  • 4
  • 11
  • 2
    This worked for me, way simpler and fast to test. None of the other commands worked for me, touchpad was not showing in /proc/bus/input/devices list when booting on new linux kernel. I'm also on ubuntu 20.04. Thanks monkut – oma Sep 11 '20 at 07:19
  • That also worked for me, my two cents here is to save the last kernel you have previously run, changing the file /etc/default/grub adding the entries: GRUB_DEFAULT=saved and GRUB_SAVEDEFAULT=true. After that, executing sudo update-grub. Source: https://askubuntu.com/questions/216398/set-older-kernel-as-default-grub-entry – Wellington Souza Nov 06 '20 at 08:17
  • 1
    Could you link the bug you reported to Ubuntu? I'm having a similar issue, but it's not solved with the steps here. – Herman van Rink Dec 05 '20 at 16:27
  • Hybrid graphics seemed to be the issue for me too on an Extreme Gen1, weird – Zach Bloomquist Jan 08 '21 at 15:57
  • Had the issue also with hybrid graphic. 5.8.0-36-generic kernel version fixed all issues for me. – wasserholz Feb 15 '21 at 12:19
  • @monkut, can you please please file a bug for the 5.4.0-42 -> 5.4.0-47 regression with the touchpad? I just changed my touchpad and with 5.4.0-144 it doesn't work. It looks like the Ubuntu team doesn't know about this regression. – Shahbaz Mar 21 '23 at 23:12
8

You can try reinstalling touchpad driver (synaptics in your case):

sudo apt purge xserver-xorg-input-synaptics
sudo apt autoremove
sudo apt update
sudo apt install xserver-xorg-input-synaptics

Restart and check.

Calico Cat
  • 1,296
  • I did that. After restart on the screen where you choose user i try to move cursor but he weirdly and fast jumps all over the screen and after few moments touchpad stop working. Also in xinput log now "PS/2 Synaptics TouchPad " is not visible. – scof93 May 04 '20 at 08:48
  • Issue this command to see if libinput is installed: sudo apt list --installed | grep libinput, if it's not there, you have to install the xserver-xorg-input-libinput package – Calico Cat May 04 '20 at 08:56
  • Among other things I got: libinput-bin/focal,now 1.15.5-1 amd64 [installed], libinput10/focal,now 1.15.5-1 amd64 [installed], xserver-xorg-input-libinput/focal,now 0.29.0-1 amd64 [installed,automatic] – scof93 May 04 '20 at 09:01
  • It seems you already have libinput, which is weird because I have had this issue before and installing xserver-xorg-input-synaptics fix the problem. It might also be that your touchpad is disabled (accidentally?). i suggest that you take a look at these wiki: Touchpad not working after login and DebuggingTouchpadDetection. The former provide some simple workarounds, while the latter gives more details and scenarios. – Calico Cat May 04 '20 at 11:25
  • 1
    Looks like reinstalling xserver-xorg-input-libinput works for me on Yoga 13 and Ubuntu 20.04. – ZhukovRA Aug 17 '20 at 21:24
  • 1
    This is dangerous if one has already removed xserver-xorg-input-libinput (https://askubuntu.com/a/783734/89062), as it will render the machine entirely unresponsive to all inputs. – MRule Oct 04 '21 at 08:24
7

I solved my touchpad problem on Ubuntu 20.04 with this:

  1. Edit (create it if doesn't exist) the psmouse.conf file:

    sudo gedit /etc/modprobe.d/psmouse.conf
    
  2. Add the line:

    options psmouse synaptics_intertouch=1
    
  3. Then run:

    sudo modprobe -r psmouse && sudo modprobe psmouse
    
3

Disabling and enabling the touchpad in Settings somehow solves the problem.

2

Here's an easy and quick way to do solve the problem:

Just press Alt+F2 and enter the command r. This will be restarting your environment for a while and then everything will work properly.

2

Well, all I did was to get to the “settings” and enabled the touchpad which surprisingly was disabled. I will check for the next few days if there is an issue and I will report here.

This touchpad issue happened on my ASUS N550JK and I think after I did “dist-upgrade” and my Linux distribution was upgraded.

enter image description here

1

I'm running into this situation every now and then on my Lenovo laptop. Trackpad suddenly stops working; sometimes the keyboard stops too. I can rescue things a bit with the virtual keyboard. ALt-F-R doesn't solve the problem. Reboots usually restore mouse/keyboard function. Recently, none of this worked, but plugging in the dongle of a Bluetooth mouse (I think) forced a bus rescan and restored mouse/keyboard function.

1

This just happened to me today with Ubuntu 20.04 5.4.0-100-generic kernel: just restarting the system with "shutdown -r now" fixed the issue.

  • Strange after that update on all 6 of my machines the update required a restart. So are you saying a second restart fixed it? – David Feb 18 '22 at 15:27
  • 1
    This was my problem showup use case: i was playing normally with ubuntu, then suddenly, for no apparent reason, the touchpad was like inexistent. The "sudo rmmod psmouse sudo modprobe psmouse proto=imps" suggested solution was transforming the touchpad in a mouse ie disablind the multitouch features so I didn't like it. Before trying more solutions I just restarted the system for double check and the problem was gone. My 2 cents – stefano perticoni Feb 21 '22 at 15:10
0

I was facing the issue on elementary OS 6.1 (based on Ubuntu 20.04), and the problem seemed to be related to ignore while typing option getting apparently stuck. Toggling this option from System Settings > Mouse & Touchpad > Device > Touchpad > Ignore While typing got it working back on.

xquilt
  • 117
0

this answer is just an extension of the answer by @ubuntovative is here

simply to get trackpad accessed as mouse we need to use this command
sudo modprobe -r psmouse && sudo modprobe psmouse proto=imps
This command will basically unload the psmouse kernel module and load it with an extra parameter proto=imps, which will make the kernel to treat the touchpad as mouse.

Make command permanent

There are various ways for it, the one that is used in general is to create a .conf file(any name can be used such as psmouse.conf, just .conf is required as file-extension) in /etc/modeprobe.d/ directory with the command options psmouse proto=imps, which will basically load the kernel module psmouse with parameter proto=imps at first place.

The problem with these approaches is they are not working all the time, for me it is not working in debian 12 based distro.

The approach that always work for me

For me using cron jobs works all the time, which will run this command at every boot, for this do the following:

  1. create a file /etc/crontab if not already created,
  2. Then add this line at end of this file @reboot root modprobe -r psmouse && modprobe psmouse proto=imps

Issue with the command

As mentioned in the above answers, using trackpad as mouse will result in loss of some of its features, for me the scrolling is not available anymore.

Workaround to get scrolling back

To get scrolling back i am using "button" scrolling method in libinput driver, what this will do is when you press the set button(the one we would set among the two trackpad buttons to be recognized as scroll button) then any finger movement on trackpad will be considered as scroll while the button is being pressed.

How to do this

First note that i am using libinput driver(recommended and available by default on most distros) than the synaptic driver.

Now do the following:

  1. open file /usr/share/X11/xorg.conf.d/40-libinput.conf (number can be different, smaller number means higer priority as compared to other scripts present in the directory) as root user.
  2. Now look for the para
Section "InputClass"
        Identifier "libinput touchpad catchall"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
EndSection

Change this to

Section "InputClass"
        Identifier "libinput touchpad catchall"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
        Option "ScrollMethod" "button"
        Option "ScrollButton" "3"
EndSection

Explanation

The line MatchIsTouchpad "on" has been removed to apply these setting to pointer device also(which in this case your touchpad has already become after loading the psmouse with proto=imps option).

The line Option "ScrollMethod" "button" is used to set the "scrollmethod" to "button" (other available options are "twofinger", "none", and "edge" none of which are working in my case).

The line Option "ScrollButton" "3" is used to set the bottom right button on the touchpad as scrollbutton basically the button which when down will make any finger movement on touchpad as corresponding scroll.

The number "3" is generally the number assigned to the bottom right button, for bottom left button it is "1", you can also check the number assigned to each button via command xinput get-button-map <device-id> (for example xinput get-button-map 10), where device-id is the device id of your touchpad which you can get via command xinput list.

After all this you should have a working touchpad with button scroll enabled.

0

In my case few years ago I turned off touchpad, after updating to kernel 6.5 (ubutnu 22.04 xfce lenovo x230) the ID of touchpad changed and my startup script was turning off trackpoint instead of touchpad :-)

xinput list #pick correct ID for trackpoint and enable it
xinput set-prop 11 "Device Enabled" 1 #then i disabled touchpad again with proper id

Hope this helps someone.

Honza P.
  • 141
  • 3