ArchLinux(树莓派3)系统更新后触摸屏evdev功能异常排查求助
嘿,我之前在树莓派3上折腾Arch的时候也碰到过类似的触摸屏问题,给你梳理几个一步步排查的方向,应该能帮到你:
第一步:先排除硬件/物理层面的问题
别上来就查软件,先把最基础的硬件问题排除:
- 检查触摸屏的排线有没有松脱,树莓派3的排线接口很容易因为插拔、震动变松,重新插紧并固定好试试
- 找个临时系统(比如Raspbian Lite)烧到SD卡上测试触摸屏,确认是不是硬件本身故障——如果别的系统也有问题,那就是硬件的事儿了
第二步:确认evdev驱动的基础状态
evdev是最底层的输入驱动,先从这里入手:
- 先安装
evtest工具:sudo pacman -S evtest - 运行
evtest,它会列出所有输入设备,找到你的触摸屏设备(比如/dev/input/event3),输入对应的序号进入测试模式 - 触摸屏幕顶部区域,看终端有没有事件输出:
- 如果完全没有事件,说明evdev驱动根本没捕获到触摸,大概率是驱动加载异常或者硬件和驱动不兼容,去看内核日志:
dmesg | grep -i touch或者dmesg | grep -i evdev,找有没有“failed to load firmware”“input device not recognized”这类报错 - 如果有事件输出,那问题出在上层的libinput或者Wayland组件
- 如果完全没有事件,说明evdev驱动根本没捕获到触摸,大概率是驱动加载异常或者硬件和驱动不兼容,去看内核日志:
第三步:排查libinput的配置与行为
libinput是Wayland下处理输入的核心组件,更新后很可能是它的规则或者逻辑变了:
- 安装libinput工具集:
sudo pacman -S libinput-tools - 运行
libinput list-devices,找到你的触摸屏设备,查看它的Bounds(屏幕范围)和Calibration(校准)字段,有没有显示异常的区域(比如顶部范围被设成了0) - 运行
libinput debug-events,触摸顶部区域,看libinput有没有捕获到事件:- 如果evtest有事件但libinput没有,可能是libinput的quirk规则把这些事件过滤了——去检查
/etc/libinput/和/usr/share/libinput/下的规则文件,有没有新增针对触摸屏的过滤规则 - 如果有事件但没触发响应,尝试用
libinput-calibrator重新校准触摸屏,Wayland下的校准需要生成对应的udev规则来生效
- 如果evtest有事件但libinput没有,可能是libinput的quirk规则把这些事件过滤了——去检查
第四步:排查Wayland compositor的配置
不同的Wayland桌面(GNOME、KDE Plasma、Sway)对触摸的处理逻辑不同,更新后可能默认配置变了:
- 如果你用GNOME:打开设置→触摸,检查有没有开启“边缘点击”“触摸手势”这类可能屏蔽顶部区域的选项,或者尝试重置GNOME的触摸配置
- 如果你用Sway:查看
~/.config/sway/config里的input type:touchscreen相关配置,有没有map-to-output设置错误,或者限制触摸区域的规则 - 临时切换到Xorg桌面测试,如果Xorg下触摸屏正常,那问题就锁定在Wayland compositor的触摸处理逻辑上了
第五步:回滚可疑的更新包
Arch滚动更新偶尔会引入兼容性问题,回滚是快速定位问题的方法:
- 查看最近的更新日志,找出和输入相关的包:
cat /var/log/pacman.log | grep -E "(evdev|libinput|wayland|weston)" - 用
pacman -U /var/cache/pacman/pkg/<包名>回滚这些可疑包(比如回滚到上一个版本的libinput),看看问题是否消失
内容的提问来源于stack exchange,提问作者MadPapo
相关产品推荐
相关产品推荐

