一、先确认系统是否识别到触摸板
Ubuntu 的输入设备统一由 libinput 管理,判断触摸板是否被系统识别是排查的第一步。打开终端执行 xinput list,输出里会列出 Virtual core pointer、Virtual core keyboard 以及各个物理输入设备。如果能够看到类似 ELAN0676:00 04F3:31F8 Touchpad、Synaptics TM3289-021、PS/2 Generic Mouse 等条目,说明内核已经检测到触摸板硬件,此时问题通常出在驱动配置、设备禁用或电源状态;如果列表中完全没有触摸板相关条目,则需要继续从内核日志和模块加载入手。

接下来用 dmesg 过滤触摸板相关日志,观察内核在启动阶段是否有探测失败记录:
dmesg | grep -i -E "touchpad|elan|synaptics|i2c_hid|psmouse"
如果日志中出现 probe failed、failed to initialize 或 i2c_hid_get_input 等提示,说明内核驱动没有成功接管硬件。此时可以继续查看 /proc/bus/input/devices,确认系统中是否只有键盘而没有指针设备。需要注意的是,不少 Intel 平台笔记本在 BIOS 里将触摸板模式设为 Basic 后,内核可能只会把它识别成普通 PS/2 鼠标,导致双指滚动、手势等功能全部失效,甚至完全无响应。
二、驱动模块与内核参数修复
Ubuntu 触摸板失灵最常见的原因之一是 psmouse 模块加载异常。对于内置 PS/2 触摸板,psmouse 是核心驱动;对于较新的 I2C 触摸板,还需要 i2c_hid 和 hid_multitouch 配合。先检查这些模块是否已经加载:
lsmod | grep -E "psmouse|i2c_hid|hid_multitouch"
如果输出为空,可以先手动加载并观察系统日志是否报错:
sudo modprobe psmouse sudo modprobe i2c_hid dmesg | tail -n 30
有些机型在重启后模块又不会自动加载,原因通常是 /etc/modprobe.d/blacklist.conf 中误加了 blacklist psmouse,或者某些电源管理脚本禁用了对应模块。检查配置目录,确认没有类似下面的内容:
grep -R "psmouse\|i2c_hid" /etc/modprobe.d/
对于联想、华硕、戴尔部分笔记本,仅加载模块还不够,需要给 psmouse 添加 synaptics_intertouch=1 参数,让内核使用 Intertouch 协议处理触摸板,避免 PS/2 兼容模式下的中断丢失。可以临时卸载再加载模块:
sudo modprobe -r psmouse && sudo modprobe psmouse synaptics_intertouch=1
如果这个操作能让触摸板恢复,就把参数写入配置并更新 initramfs:
echo 'options psmouse synaptics_intertouch=1' | sudo tee /etc/modprobe.d/psmouse.conf sudo update-initramfs -u
重启后验证模块参数是否生效:
cat /sys/module/psmouse/parameters/synaptics_intertouch
输出为 Y 即表示成功。如果仍然失灵,可以继续尝试 GRUB 内核参数中的 i8042 相关选项,因为部分笔记本的中断资源分配异常会导致触摸板完全不可用。
三、切换 libinput 与 synaptics 驱动配置
Ubuntu 18.04 以后默认使用 libinput 作为 Xorg 和 Wayland 的输入驱动,但很多旧资料会让用户安装 xserver-xorg-input-synaptics。两个驱动同时存在时可能互相抢占设备,表现为触摸板时好时坏,或者 xinput 中可见但无法点击。先检查当前安装了哪些输入驱动:
dpkg -l | grep -E "xserver-xorg-input-(libinput|synaptics)"
如果两者都已安装,建议只保留一个。libinput 更加现代,对多点触控和高分辨率触摸板支持更好;synaptics 则适合部分老旧设备或需要精细调整惯性滚动、边缘滚动的场景。保留 libinput 的命令如下:
sudo apt install xserver-xorg-input-libinput sudo apt remove xserver-xorg-input-synaptics sudo systemctl restart gdm
重启显示管理器后,再次用 xinput list-props 查看触摸板属性。以设备名称为 ELAN0676:00 04F3:31F8 Touchpad 为例:
xinput list-props "ELAN0676:00 04F3:31F8 Touchpad"
重点检查 Device Enabled 是否为 1,以及 libinput Tapping Enabled 是否满足需求。如果 Device Enabled 为 0,直接执行 xinput enable <id> 即可恢复。这里的 <id> 使用 xinput list 中设备名前面的数字编号,不能照抄设备名称。
在 Wayland 会话下,Xorg 配置目录 /usr/share/X11/xorg.conf.d/ 不会生效,此时应优先检查 GNOME 设置中的鼠标与触摸板选项,确认触摸板没有被设置为禁用。Wayland 的输入配置通常由 libinput 直接处理,如果桌面环境显示触摸板开启但实际无响应,还是需要回到内核模块和 ACPI 层面排查。
四、处理睡眠唤醒后的失灵与电源管理冲突
有一部分 Ubuntu 用户会遇到合盖睡眠再唤醒后触摸板失效的情况,外接鼠标正常,重启后又能恢复。这通常是 ACPI 状态恢复不完整,导致触摸板仍处于挂起状态。快速恢复方法是在唤醒后重新加载 psmouse 或 i2c_hid 模块:
sudo modprobe -r psmouse && sudo modprobe psmouse
如果重载模块有效,可以写一个 systemd 服务在唤醒后自动执行。不过更稳妥的做法是先更新内核和固件,因为很多睡眠唤醒后的触摸板问题来自厂商 ACPI 表缺陷。执行 sudo apt update && sudo apt upgrade 更新系统,同时用 fwupdmgr refresh && fwupdmgr update 检查触摸板或主板固件更新。
对于部分华硕、宏碁机型,还需要在 GRUB 中加入 i8042.nopnp=1 参数,强制 i8042 控制器跳过 PnP 检测,避免触摸板中断被错误分配给其他设备。修改 /etc/default/grub:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i8042.nopnp=1"
保存后更新 GRUB 并重启:
sudo update-grub sudo reboot
注意 i8042.nopnp=1 并不适合所有机型,如果重启后键盘或触摸板变得更不稳定,应立即移除该参数并重新 update-grub。总的来说,Ubuntu 下触摸板失灵虽然表现单一,但成因覆盖驱动丢失、模块参数错误、电源管理异常和固件缺陷。按照识别、模块、驱动配置、ACPI 顺序逐层排查,通常不用重装系统就能恢复。
Ubuntu触摸板修复Linux输入设备xinput修改时间:2026-09-30 16:22:32