在Arch Linux上修复Dell笔记本触摸板休眠错误

问题描述

我的戴尔笔记本在 archlinux 上恢复后,触摸板事件会变得完全无响应或者响应错误。在lts内核和最新的内核上都如此。

排障过程

检查journalctl后,没有发现什么异常。在网上搜索后,发现有人提到了i2c_hid的问题,从这个层面找问题。检查dmseg,发现从休眠恢复之后会出现i2c_hid: i2c_hid_get_input: incomplete report错误。又在网上找到这篇讨论,我才意识到这是什么导致的。

修复方法

之前也是因为系统上休眠出问题(休眠后不会自动断电),所以我在/etc/systemd/sleep.conf里加了一句HibernateMode=shutdown让系统强制以shutdown模式休眠。但是不使用platform会一部分硬件没有正常完成休眠过程,唤醒之后就会寄掉。今天试了试最新的内核似乎已经把我之前遇到的那个休眠不断电的问题问题修复了「2020年的电脑到2022年用最新的内核所有的功能才差不多正常,果然Linux对越老的电脑的支持就越好(笑」,所以我把这句改回原来的HibernateMode=platform shutdown,然后重启,触摸板就恢复正常了。

其他参考

根据man systemd-sleep.conf里面可以看到,修改指定的文件(假设你在用systemd的话)可以让systemd在执行相关操作的时候自动在/sys/power/disk/sys/power/state里面写入你指定的字符串。至于可以往里面写什么字符串,可以在这篇似乎是内核文档里看到。如果你的睡眠和休眠也出现了不可名状的问题,可以以这些文档为依据自己修改一下试试。


在Arch Linux上修复Dell笔记本触摸板休眠错误
https://irr.ink/2022/3P3STYF/
作者
iR
发布于
2022年9月1日
许可协议