在我的 Compaq Presario CQ62 笔记本电脑上,Ubuntu 14.04 会在盖子关闭时暂停。但全新安装的 16.04 会忽略盖子操作。根据使用 ubuntu-16-04 笔记本电脑在盖子关闭时不会暂停(我无法发布)4.4.8 版修复了一个内核错误,而 16.04 刚刚发布了 4.4.0。其他一切都正常,所以我决定尝试用现有内核修复它。按照笔记本电脑盖子关闭时不会暂停很有用,但已过时,导致 wifi 在恢复时无法重新连接。使盖子关闭事件进入挂起模式的最佳方法是什么?
答案1
要让 ACPI 执行暂停,请创建 /etc/acpi/events/lidbtn 和 /etc/acpi/lidbtn.sh,如下所示。
sudo sh
cat <<. >/etc/acpi/lidbtn.sh
#!/bin/sh
# Initiate suspend mode when the lid has been closed.
# Only act on a lid close event
if grep -q open /proc/acpi/button/lid/LID0/state
then
dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 "org.freedesktop.login1.Manager.Suspend" boolean:true
fi
.
cat <<. >/etc/acpi/events/lidbtn
# Laptop lid event triggered. Call /etc/acpi/lidbtn.sh
event=button[ /]lid
action=/etc/acpi/lidbtn.sh
.
exit
我还尝试了/usr/sbin/pm-suspend
和sudo /lib/systemd/systemd-sleep suspend
作为该dbus-send
线路的替代方案,但这些导致 wifi 在恢复后无法可靠地进行身份验证。我发现/etc/default/acpi-support
有用的背景阅读,指出acpi-support
已弃用,dbus-pm、dbus-hal 或 pm-utils 是当前的方法。
其他参考链接:电动盖,使用 dbus 时暂停之前运行脚本,优力