Is there a way to "restart" the touchpad driver?

143,578

Solution 1

I was having that problem with one laptop repeatedly until I noticed that the touchpad of that computer had its own On/Off switch which I must have been hitting by accident. Notably, the switch did not help to turn it back on. I just became careful not to press it, and before long I took to using an external wireless keyboard with integrated wireless touchpad, and I haven't had that problem since.

UPDATE: (Note: link below broken, solution is above) Since posting this "solution" I posted a comment which apparently met the user's needs. Having only just now learned that the comments remain only temporarily and are automatically deleted, I'm reposting the content of the useful comment below that it may be preserved for others:

I was sharing the "solution" that worked for me. Today it occurred to me to google for solutions more closely fitting your original question and found the following link. It isn't what I would personally consider "convenient", but it could at least be more elegant by making it a script out of it. I found this (see below) – gyropyge Sep 25 at 20:06

Press Alt+F2 and type in gksudo modprobe -r psmouse Type in the password, press Enter, and then press Alt+F2 again for entering the following gksudo modprobe psmouse and then press Enter

Solution 2

To restart the laptop's touchpad driver:

Open terminal by pressing Ctrl+Alt+T and execute the following command

sudo  modprobe -r psmouse

then

sudo modprobe psmouse

I have found the solution here and there is also solution for a usb mouse

Solution 3

I found a way to do this:

First, open a terminal, and print out all input devices to find the id you need for the input device you want to disable. In terminal, type:

xinput --list

Next: Notice where it says id=X in one long column for every input device. You want to find the device id that corresponds to the input device you want to disable (Maybe something that sounds like "touchpad"). Then replace X in the following command with the id number representing the input device you want to disable:

xinput disable X

Note: If you're not sure which device id you should use to disable the touchpad, then you can find out by testing random id's and seeing if your mouse pad still works. Make sure you are NOT DOING ANYTHING IMPORTANT. Save all your work and be prepared to restart your computer if you do something like disable your keyboard. (You may have trouble trying to enable it again if you can't type into the terminal.

Then you'll have to run this last line (Thanks for catching this Arch Stanton!)

xinput enable X

Reason: I desperately needed an answer to this problem because the problems I was experiencing with my touchpad made doing any kind of work impossible. Suddenly, at some random moment when using my laptop, for apparently no reason, my touchpad goes into some kind of "special mode". Merely moving one finger on my touchpad would cause the screen to scroll, instead of actually moving the cursor of the mouse on the screen so it was impossible to get the mouse to hover over anything in broswer without considerable coordinating efforts to account for the scrolling screen and non moving mouse. I wanted to find a way, WITHOUT RESTARTING THE LAPTOP, to reset the touchpad. On the plus side, resetting the touchpad with the method above actually fixes my problem.

Update: To make resetting the touchpad even easier, I made a hotkey for the above listed commands. When my touchpad goes on the fritz, I simply do the key combination ctrl+super+r and it does the reset for me. Quick and easy.

Here's how:

-Create a file inside your home directory and call it something like "touchpad-reset.sh".

-Inside this file, put in two of the three (the last two) previous commands listed above except, instead of using an X id number for the device, since it's subject to change with added peripherals (maybe??) you can do use this instead:

Here's an output from my computer inside the terminal using this commmand:

xinput --list

Result:

Virtual core pointer                        id=2    [master pointer  (3)]⎜   
   ↳ Virtual core XTEST pointer                 id=4    [slave  pointer  (2)]⎜   
   ↳ Genius 2.4G Wireless Mouse                 id=10   [slave  pointer  (2)]⎜   
   ↳ MSFT0001:00 06CB:75BD UNKNOWN              id=13   [slave  pointer  (2)]⎜   
   ↳ ELAN Touchscreen                           id=12   [slave  pointer  (2)]⎜ 

-Now what you do, you replace the X (which was an id before) for xinput disable X and xinput enable X with the name corresponding to that id inside single quotes. For example, from the above, if you wanted to do it for id=13, my touchpad device, you would use:

xinput disable 'MSFT0001:00 06CB:75BD UNKNOWN'
xinput enable 'MSFT0001:00 06CB:75BD UNKNOWN'

-So now, you're disabling by name instead of ID number, where an id may possibly change in time and then you'd be disabling and enabling some other device.

Finally, you need to give the permissions to make this file executable; run this command with your working directory in the terminal as your home directory (where you created the file):

chmod +x your_script_name.sh

So once you make this file with the appropriate commands written inside, making sure it's in your home directory, take the following steps below:

  1. Press the super key (windows key on PC) on keyboard to bring up the unity side bar. Type in 'system settings' and press the enter key.
  2. Find the 'Keyboard' option under where it says 'Hardware' and click on it.
  3. Select the 'Shortcuts' tab.
  4. In the left window, select 'Custom Shortcuts'
  5. Click on the + button near the bottom center.
  6. A window should pop up asking for a description name and a command to put in.
  7. Make the name something like "reset touchpad"
  8. Use this command: gnome-terminal -x ./name_of_your_script.sh
  9. Click on 'Apply'
  10. You should now see your shortcut listed and on the far right it should say "Disabled" or some other garbage. Click on that text and be prepared to make some kind of key combination, perhaps like ctrl+super+r.
  11. Once you make this key combination, you're done.

Congrats! Have fun.

Solution 4

If you have a synaptics touchpad :

synclient TouchpadOff=0

Solution 5

If you do not know what module your touchpad uses you can find out with a bit of digging around

grep -iA2 touchpad /proc/bus/input/devices

for me this returns

N: Name="Elan Touchpad"
P: Phys=
S: Sysfs=/devices/platform/80860F41:03/i2c-11/i2c-ELAN0100:00/input/input10

then see what kernel modules are available in this category:

ls $(find /lib/modules/$(uname -r) -type d -name mouse)

which for me returns

appletouch.ko  bcm5974.ko  cyapatp.ko  elan_i2c.ko  gpio_mouse.ko  
psmouse.ko  sermouse.ko  synaptics_i2c.ko  synaptics_usb.ko  vsxxxaa.ko

Cross reference the two - in my case it looks like the module for my touchpad is elan_i2c.ko

Edit: I recently figured out how to reliably get the name of the driver in use with a convoluted command, which terdon simplified nicely for me

grep -hriPo 'DRIVER=\K.+' /sys 2>/dev/null | while read driver; do [ -e /lib/modules/$(uname -r)/kernel/drivers/input/mouse/"$driver"* ] && echo $driver; done

To check you got the right module, test the command to unload it from the kernel:

sudo modprobe -r elan_i2c

The touchpad will instantly die if you got the right module, so you can easily find it by trial and error. Reload it with

sudo modprobe elan_i2c

This effectively restarts the module. You can run the two commands together like this:

sudo modprobe -r elan_i2c && sudo modprobe elan_i2c

I occasionally have to do this on resume from suspend.

Share:
143,578

Related videos on Youtube

matteo
Author by

matteo

Updated on September 18, 2022

Comments

  • matteo
    matteo over 1 year

    I use Ubuntu 14.04 on a laptop, usually with an external usb mouse and keyboard and screen connected. Sometimes, however, I unplug all of them and move the laptop and keep using it with the builtin keyboard and screen and touchpad.

    At random times it happens that the touchpad stops working (but if I plug the usb mouse, the usb mouse does work). Though this happens very rarely, when it does it's a great annoyance, as I'm forced to reboot if I need the touchpad to work again.

    Is there some workaround that I can try, such as killing some process that would automatically restart, or some command that would cause the touchpad driver to restart or refresh or something? Anything that may "wake up" the touchpad without having to reboot?

    • illusionist
      illusionist over 6 years
      Sometimes shutting the laptop screen and opening up again solves the issue.
    • sancho.s ReinstateMonicaCellio
      sancho.s ReinstateMonicaCellio over 2 years
      @illusionist - Worked for me.
  • matteo
    matteo over 9 years
    not my case, though
  • gyropyge
    gyropyge over 9 years
    I was sharing the "solution" that worked for me. Today it occurred to me to google for solutions more closely fitting your original question and found the following link. It isn't what I would personally consider "convenient", but it could at least be make more elegant by making it a script. tuxtrix.com/2010/06/…
  • matteo
    matteo over 9 years
    Thanks! I've marked your answer as the accepted answer though the answer is actually in your comment (well I haven't had the opportunity to test it but it sounds like it is the solution).
  • gyropyge
    gyropyge over 9 years
    Thank you for the consideration of my after-thought comment. I too may wind up benefiting from that solution in the future, as my solution of trying not to hit a particularly easy-to-hit button bordering the edge of the touch-pad hasn't been particularly satisfactory.
  • matteo
    matteo over 9 years
    "Having only just now learned that the comments remain only temporarily and are automatically deleted" WTF, really????
  • Scaine
    Scaine over 8 years
    News to me - comments are permanent as far as I know. Also, the link to your solution is broken. Looks like tuxtrix.com is no more...
  • user2392762
    user2392762 over 8 years
    The link to the script no longer works. Could you please revise the answer?
  • Arch Stanton
    Arch Stanton over 8 years
    Then you'll have to run xinput enable X.
  • user3499524
    user3499524 over 8 years
    Ah-ha! Did i forget to put that in there? Shoot. Thanks for adding that in there. Just like me to blow it in the end.
  • G Trawo
    G Trawo over 8 years
    Link was working for me, but just in case: If you are stuck with no mouse movement on your laptop (touchpad) then press the key combinations Alt+F2 and type in gksudo modprobe -r psmouse Type in the password, press enter, and then press Alt+F2 again for entering the following gksudo modprobe psmouse
  • Arch Stanton
    Arch Stanton over 8 years
    Ahah nevermind, you saved me :-)
  • axel22
    axel22 about 8 years
    xinput list + disable + enable works great
  • Manikandan Arunachalam
    Manikandan Arunachalam over 7 years
    Perfect finding.My pointer gets stucked in a position this helped me to resolve it.
  • Ur Ya'ar
    Ur Ya'ar over 7 years
    this worked for me - my touchpad would stop working after some time. I have an ALPS touchpad on Dell running Xubuntu 16.04
  • Z. Zlatev
    Z. Zlatev about 7 years
    enable/disable also work with ID only instead of device name
  • chao
    chao about 7 years
    thx! works for zenbook ux305ca on ubuntu 16.04 lts.
  • Pablo Bianchi
    Pablo Bianchi almost 7 years
    sudo modprobe psmouse proto=impsworked for me on a Asus UX303UB+Ubuntu 16.04.2 but without multitouch features. Somehow from one day to another I need to run that command to have touchpad, never again with gestures.
  • petobens
    petobens over 6 years
    Worked with my touchpad and built-in keyboard as well. Had to use a USB keyboard though. I'm running Xenial (16.04.3 LTS). Thanks :)
  • jpenna
    jpenna over 6 years
    Looks like my notebook has this "disable key" too. Just got my touch pad to work again doing some ocus pocus, but I don't know what I did, next time I will make sure to keep track of my moves haha
  • Mala
    Mala about 6 years
    My touchpad (dell xps 13) has recently starting falling into 2-finger-mode (which means one finger causes it to scroll, etc) which makes it impossible to move the mouse or left click. Installing xinput then disabling / re-enabling the touchpad is the only reliable fix I've found. Thank you!
  • Archit Kapoor
    Archit Kapoor almost 6 years
    Thanks. This solution worked for me. And I didn't even need to restart my computer. My touchpad was troubling me. I think xinput disable/enable is a quick fix.
  • Fabby
    Fabby almost 6 years
    Welcome to Ask Ubuntu! ;-) Solutions do not need to be geeky to be good! Just keep it short and simple... :-)
  • yurenchen
    yurenchen over 5 years
    this save my life ; )
  • Cerin
    Cerin over 5 years
    This didn't work for me on a Dell Precision.
  • Tomofumi
    Tomofumi over 5 years
    my Asus laptop is using a hid driver for BOTH keyboard & touchpad, so it need to do like this in a single cmdline, otherwise you cannot type after modprobe -r.
  • Old account
    Old account over 5 years
    id didn't work for me, but the full device name seemed to work. What ended up happening is that the touchpad would let me move the mouse cursor just a little bit then it would stop again.
  • 4Z4T4R
    4Z4T4R almost 5 years
    Yeyaaaaa! Ubuntu 18.04 LTS with xfce and it worked like a charm with Synaptics!
  • Yaron
    Yaron almost 5 years
    11 is the specific device number in your case, you'll have to find this number using xinput --list before you can use it here.
  • SaTa
    SaTa over 4 years
    This solution did not work for me. Ubuntu 18.04 with "SYNA8004:00 06CB:CD8B Touchpad", Lenovo X1 Carbon Gen 7. I get snappy touchpad behavior after resuming from hibernation.
  • SaTa
    SaTa over 4 years
    This solution did not work for me. Ubuntu 18.04 with "SYNA8004:00 06CB:CD8B Touchpad", Lenovo X1 Carbon Gen 7. I get snappy touchpad behavior after resuming from hibernation.
  • Santropedro
    Santropedro over 4 years
    worked for XFCE
  • user56reinstatemonica8
    user56reinstatemonica8 almost 4 years
    Be careful if synclient isn't installed... I tried installing synclient to see if it would help and after installing xserver-xorg-input-synaptics, after restart, my keyboard and USB mouse stopped working. sudo apt-get remove --auto-remove xserver-xorg-input-synaptics and restart got them back again
  • user56reinstatemonica8
    user56reinstatemonica8 almost 4 years
    +1 for lsmod | grep touch, most answers here are specific to particular drivers, and this is how to find out which one(s) you have
  • pholat
    pholat almost 4 years
    @user56reinstatemonica8 it should, thanks for noticing, edited.
  • Hendy Irawan
    Hendy Irawan almost 4 years
    THANK YOU! Works very well and you saved me from restarting my computer! :)
  • sh37211
    sh37211 over 3 years
    This is the only solution that worked for me! Tried various "lsmod" and "sudo modprobe" solutions above, none of them worked.
  • Allexj
    Allexj over 3 years
    this solution WORKS for me.
  • Aces
    Aces about 3 years
    Thank you! This worked for me on Ubuntu/Xubuntu 20.04.2 LTS. If you put the above command in a hidden BASH script somewhere and link it to a keyboard shortcut, you can easily reactivate the touchpad when it goes out.
  • MycrofD
    MycrofD about 3 years
    this is strange. touchpad always switches back to one-finger scrolling after reboots and shutdowns. using your method only disables the touchpad, and doesn't enable it.
  • OZ1SEJ
    OZ1SEJ almost 3 years
    Worked like a charm! Ubuntu 20.04.
  • Eric Walker
    Eric Walker over 2 years
    Of the top answers, this is the only one that worked for me.
  • asgs
    asgs over 2 years
    this is it for me. I tried to enable the "disable touchpad while typing" feature and it disabled until I ran the command you shared. Thank you!