我发现我的 Thinkpad 13 2G - i7-7500U 与 Ubuntu 17.4 开箱即可运行,除了睡眠模式:唤醒完成后它会立即冻结。
有人能重现这个问题吗?
答案1
我发现问题是由触摸屏驱动程序引起的。在唤醒期间,模块 i2c_hid 会丢失大量错误,这些错误在内核日志中可见:
Apr 20 20:25:46 domenico-T132G kernel: [ 230.882336] i2c_hid i2c-RAYD0001:00: i2c_hid_get_input: incomplete report (58/16946)
这个问题使内核处于一些奇怪的状态,导致它出现 OOPS。
解决方法是在进入睡眠状态之前卸载模块并在唤醒后重新加载。
我在 /lib/systemd/system-sleep/disabletouch 中创建了一个脚本来执行以下操作:
#!/bin/sh
set -e
if [ "$2" = "suspend" ] || [ "$2" = "hybrid-sleep" ]; then
case "$1" in
pre)
modprobe -r i2c_hid
sleep 1
;;
post)
sleep 1
modprobe i2c_hid
;;
esac
fi
如果有人可以将这个问题发送给内核人员我将非常感激。