Ubuntu – Touchpad gestures and holding keys does not work

16.04keyboardtouchpad

I am facing very weird problem on which I cannot find solution. One time touchpad gestures stopped working along with keyboard keys holding. Touchpad is moving the cursor but nothing more. When I am holding keyboard keys they appear only once, although in my setting it is set up to repeat keys.

$ uname -r
4.13.0-26-generic

Best Answer

  • Many have reported problems with Kernel 4.13.0-26

    Around January 11, 2018 many Ubuntu users began reporting problems with Kernel 4.13.0-26 automatic update:

    These are issues reported over the last few days. Not all of these issues have been verified as caused by Kernel 4.13.0-26.

    January 27, 2018 Update: Check your Intel Microcode

    The Intel Microcode Update 2018-01-08 to address speculative execution branching security holes broke some systems. This effected many Ubuntu systems from January 8th to January 21st. On January 22, 2018 Ubuntu released an update that puts back older Microcode from 2017-07-07.

    If you experienced problems with updates, reinstalled Ubuntu and turned off updates between 2018-01-08 and 2018-01-22 you may want to try Ubuntu automatic updates again. Check the link in the preceding paragraph for more information.

    How to find out your kernel version

    Open a terminal using Ctrl+Alt+T. Then type:

    uname -r
    

    Since the terminal is open already, get your Ubuntu release using:

    lsb_release -a
    

    To close the terminal use:

    exit
    

    Easiest solution boot with older Kernel

    When you boot your computer at the Grub menu select Advanced Options then select an older kernel to see if you problems go away. If so keep regularly updating to newer kernels as they are offered in Ubuntu LTS and check them until one works. Make sure you don't run sudo apt auto-remove which could make your working older kernel disappear.


    Fixing Keyboard repeat problems in Kernel 4.13

    With the introduction of Kernel 4.13.0-26 Ubuntu LTS update around January 11, 2018 and old bug from September 2017 resurfaced. The developer recommended trying Kernel 4.14 (described in the next session) but a quicker fix seems to be disabling PEAQ WMI Hotkeys.

    Verify PEAQ WMI Hotkeys is loaded

    As discussed in Unix & Linux the first step is to ensure it is loaded:

    $ xinput list
    ⎡ Virtual core pointer                              id=2    [master pointer  (3)]
    ⎜   ↳ Virtual core XTEST pointer                    id=4    [slave  pointer  (2)]
    ⎜   ↳ Dell Dell KM632 Wireless Keyboard and Mouse   id=11   [slave  pointer  (2)]
    ⎜   ↳ Dell Dell KM632 Wireless Keyboard and Mouse   id=12   [slave  pointer  (2)]
    ⎜   ↳ SynPS/2 Synaptics TouchPad                    id=16   [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)]
        ↳ Video Bus                                     id=8    [slave  keyboard (3)]
        ↳ Sleep Button                                  id=9    [slave  keyboard (3)]
        ↳ Dell Dell KM632 Wireless Keyboard and Mouse   id=10   [slave  keyboard (3)]
        ↳ Lenovo EasyCamera: Lenovo EasyC               id=13   [slave  keyboard (3)]
        ↳ Ideapad extra buttons                         id=14   [slave  keyboard (3)]
        ↳ AT Translated Set 2 keyboard                  id=15   [slave  keyboard (3)]
        ↳ Dell Dell KM632 Wireless Keyboard and Mouse   id=18   [slave  keyboard (3)]
        ↳ PEAQ WMI hotkeys                              id=17   [slave  keyboard (3)]
    

    Note the last line above

    If you have it loaded you can disable it with an xinput command but we'll use the work around suggestion in the bug report above:

    Disable PEAQ WMI Hotkeys for current session

    sudo rmmod peaq_wmi
    

    Disable PEAQ WMI Hotkeys Permenantly

    Using your favourite sudo editor, edit /etc/modprobe.d/blacklist.conf. At the end of the file insert two lines:

    #spams ^@
    blacklist peaq_wmi
    

    Save the file and exit.


    Fixing Synaptics Touchpad in Kernel 4.13

    Temporary Fix

    According to this Debian Bug Report a short term fix is to use:

    sudo rmmod psmouse
    sudo modprobe psmouse
    

    Try this in the terminal and then test your Touchpad.

    Permanent Fix

    If the temporary fix works then edit the file /etc/rc.local with sudo powers. Add the following lines:

    /sbin/rmmod psmouse
    /sbin/modprobe psmouse
    

    From now on when you reboot the fix will be permanent.

    Note this hasn't been tested yet when resuming from suspend. If you have any problems in that department post a comment below.


    Install newest mainline / stable kernel 4.14.xx

    It's been confirmed that 4.14.13 improves Touchpad and Keyboard for users of Kernel 4.13.0-26. However as of January 20, 2018 4.14.14 is now the newest kernel and it includes Spectre support but runs 2% slower.

    January 23, 2018 - Kernel 4.14.15 released. January 31, 2018 - Kernel 4.14.16 released.

    In the bug report above a developer recommends trying the most current mainline (stable) kernel. In some cases an OP wants to go to a higher kernel number rather than a lower one. This section focuses on how to move up to the latest mainline (stable) kernel.

    There are instances going back to August 2017 where the touchpad didn't work that is unrelated to Kernel 4.13.0-26 automatic Ubuntu LTS upgrade but one of the answers still require Kernel 4.14 anyway: Touchpad not detected on Lenovo Ideapad 320 with Kubuntu 17.04.

    On January 10, 2018 the latest stable mainline kernel was 4.14.13. If you choose to manually install it you should know:

    • Older LTS kernels will not get updated until they are greater than the main menu first option titled Ubuntu.
    • Manually installed kernels are not removed with the usual sudo apt auto-remove command. You need to follow this: How do I remove old kernel versions to clean up the boot menu?
    • Monitor developments in the older kernels for when you want to get back on the regular LTS kernel update method. Then delete the manually installed mainline kernel as described in the previous bullet point link.
    • After manually removing the newest mainline kernel run sudo update-grub and then Ubuntu's latest LTS kernel will be the first option called Ubuntu on Grub's main menu.

    Now that the warning are out of the way, to install the latest mainline kernel (4.14.13) follow this link: How to update kernel to the latest mainline version without any Distro-upgrade?

    Mainline Kernel 4.14.13.png

    Periodically watch the LTS kernel updates you missed

    If you have updated to the latest kernel it's important to see the older kernels you've missed using this command:

    $ apt-cache search . | grep 'image-4.13.0-..-generic'
    linux-image-4.13.0-16-generic - Linux kernel image for version 4.13.0 on 64 bit x86 SMP
    (... SNIP ....)
    linux-image-4.13.0-26-generic - Linux kernel image for version 4.13.0 on 64 bit x86 SMP
    linux-image-4.13.0-31-generic - Linux kernel image for version 4.13.0 on 64 bit x86 SMP
    linux-image-4.13.0-32-generic - Linux kernel image for version 4.13.0 on 64 bit x86 SMP
    (... SNIP ....)
    

    When you see a newer supported kernel offered by Ubuntu Kernel Team you should install it and test it. For example to see what to install for 4.13.0-32 use:

    $ apt-cache search . | grep '4.13.0-32-generic'
    linux-cloud-tools-4.13.0-32-generic - Linux kernel version specific cloud tools for version 4.13.0-32
    linux-headers-4.13.0-32-generic - Linux kernel headers for version 4.13.0 on 64 bit x86 SMP
    linux-image-4.13.0-32-generic - Linux kernel image for version 4.13.0 on 64 bit x86 SMP
    linux-image-extra-4.13.0-32-generic - Linux kernel extra modules for version 4.13.0 on 64 bit x86 SMP
    linux-signed-image-4.13.0-32-generic - Signed kernel image generic
    linux-tools-4.13.0-32-generic - Linux kernel version specific tools for version 4.13.0-32
    

    Most users won't need all these packages. Usually just headers, image, image-extra and signed-image.