How to Fix Touchpad Not Working in Ubuntu

When the touchpad fails to function on an Ubuntu laptop—leaving the mouse cursor frozen, gestures unresponsive, tap-to-click inoperable, or the entire “Touchpad” section missing from GNOME Settings—the issue typically stems from unsupported I2C/Synaptics hardware controllers, kernel ACPI power management conflicts, missing user-space input drivers (libinput), or software switch locks. Because modern laptop trackpads communicate via either legacy PS/2 emulation or modern I2C serial buses, configuring appropriate kernel parameters or reinstalling input driver layers readily restores full cursor control.

Understanding Linux Touchpad Architecture

Under Ubuntu (utilising either Wayland or Xorg display servers), hardware input signals travel from physical trackpad sensors through kernel device drivers (like i2c_hid, psmouse, or elan_i2c) into the evdev kernel input subsystem. From there, the generic libinput library translates raw touch coordinates, multi-finger clicks, and edge gestures into window management events. If an ACPI DSDT firmware table error prevents the kernel from attaching to the I2C bus, the device defaults to a dead state.

Common causes of touchpad failure in Ubuntu include:

  • I2C / ACPI Controller Lockups: Modern Intel/AMD laptop motherboards failing to initialise the touchpad without specific kernel boot parameters. For Bluetooth issues, see our guide on fixing Bluetooth not working in Ubuntu.
  • Missing or Corrupted libinput Packages: Accidental removal of the xserver-xorg-input-libinput driver stack during desktop environment maintenance. For package manager repairs, see our guide on fixing dpkg parsing errors in Ubuntu.
  • GNOME Touchpad Software Toggle Disabled: Desktop dconf schemas holding a disabled state for touchpad tap-to-click or mouse tracking.
  • Hardware Function Key Lock: Physical keyboard hotkey toggles (such as Fn + F7 or Fn + F9) having disabled the sensor at the hardware EC level.
Layer / Component Diagnostic Command Healthy Indicator
Kernel Input Event Devices cat /proc/bus/input/devices | grep -i touchpad Identifies Touchpad device node (eventX)
X11 / Wayland Input Core xinput list (on Xorg) Touchpad listed under Virtual core pointer
Input Translation Library sudo libinput list-devices Reports capabilities (tap, gestures, scroll)
GNOME Desktop Settings gsettings get org.gnome.desktop.peripherals.touchpad send-events Returns 'enabled'

Method 1: Check Physical Hotkeys and GNOME dconf Settings

Many laptop keyboards include a physical function hotkey (often displaying a trackpad icon with a slash) that hardware-disables the pointer.

  1. Inspect your keyboard top row (F1 through F12). Locate any key displaying a touchpad graphic.
  2. Press the key, or combine it with the Fn key (e.g. Fn + F7 or Fn + F9), to verify whether the hardware toggle was active.
  3. Open a terminal (Ctrl + Alt + T) and execute the following command to ensure the GNOME desktop environment has not disabled input events:
    gsettings set org.gnome.desktop.peripherals.touchpad send-events 'enabled'
  4. Enable tap-to-click functionality directly via gsettings:
    gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true

Method 2: Install and Reconfigure the libinput Driver Stack

If user-space input drivers were corrupted, reinstalling the official libinput stack restores device communication across both X11 and Wayland sessions.

  1. Connect a standard USB mouse to navigate the system, or use keyboard shortcuts.
  2. Open your terminal and refresh package repositories:
    sudo apt update
  3. Reinstall the comprehensive input libraries:
    sudo apt install --reinstall xserver-xorg-input-libinput libinput-tools
  4. Restart the display manager to apply changes immediately:
    sudo systemctl restart gdm3
    (Note: If running Kubuntu or Xubuntu, replace gdm3 with sddm or lightdm).

Method 3: Configure GRUB Kernel Parameters (i8042 and psmouse)

The most frequent fix for modern laptops (such as Lenovo IdeaPad, Acer Aspire, ASUS ZenBook, and HP Pavilion) involves adding kernel boot parameters to handle I2C / PS/2 bus negotiation.

  1. Open the GRUB default configuration file in a text editor:
    sudo nano /etc/default/grub
  2. Locate the line beginning with:
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
  3. Append the parameter i8042.nopnp=1 inside the quotation marks:
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i8042.nopnp=1"
  4. (Optional: If this parameter does not work on your specific motherboard, alternative proven parameters include i8042.reset=1 or pci=nocrs).
  5. Press Ctrl + O and Enter to save the file, then press Ctrl + X to exit the editor.
  6. Update your GRUB bootloader to apply the kernel flags:
    sudo update-grub
  7. Reboot your laptop:
    sudo reboot

Method 4: Force Reload the psmouse Driver Module

If the touchpad stops responding intermittently following laptop suspend or lid-close cycles, forcing the kernel module to reload reinitialises the hardware bus.

  1. Unload the psmouse kernel driver:
    sudo modprobe -r psmouse
  2. Wait three seconds, then reload the driver in generic Synaptics emulation mode:
    sudo modprobe psmouse proto=imps
  3. Test your touchpad pointer. If cursor movement resumes, make the parameter permanent across system reboots:
    echo "options psmouse proto=imps" | sudo tee /etc/modprobe.d/psmouse.conf

Method 5: Switch Display Server Protocol (Wayland vs Xorg)

Certain proprietary trackpad drivers experience compatibility issues under Wayland display servers that do not manifest under classic Xorg (or vice versa).

  1. Save your open work and log out of your current desktop session.
  2. On the login screen, click your user profile name.
  3. Before entering your password, click the small gear / settings icon located in the lower-right corner of the display.
  4. Select Ubuntu on Xorg (or Ubuntu if currently on Xorg).
  5. Enter your password and log in. Test gestures and tracking responsiveness.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.