在 Linux 上打开盖子时防止笔记本电脑唤醒

在 Linux 上打开盖子时防止笔记本电脑唤醒

我的笔记本电脑坏了,盖子无法锁定。所以我希望它在盖子打开时不会唤醒。我使用 ubuntu,但 gnome-power-preferences 没有这样的选项(只能关闭盖子)。

有什么办法吗?我担心下次打开时它会被烧毁。

答案1

找到了方法经过更聪明的谷歌搜索后(很难找到正确的搜索键)。

简而言之,文件/proc/acpi/wakeup有一行LID已启用。

$ cat /proc/acpi/wakeup 
Device  S-state   Status   Sysfs node
PCIB      S4     disabled  pci:0000:00:1e.0
USB1      S3     disabled  pci:0000:00:1d.0
USB2      S3     disabled  pci:0000:00:1d.1
USB3      S3     disabled  pci:0000:00:1d.2
USB4      S3     disabled  pci:0000:00:1d.3
USB7      S3     disabled  pci:0000:00:1d.7
MODM      S3     disabled  
HDEF      S3     disabled  pci:0000:00:1b.0
PXS1      S4     disabled  pci:0000:02:00.0
LID       S4    *enabled   

如果这样,echo " LID" > /proc/acpi/wakeup它将变为禁用,并且计算机将不会在盖子打开时唤醒。

按照上述链接中的说明将其永久设置为您的计算机。

答案2

我查看了计算机的 BIOS 参数,没有找到要配置的“盖子打开时事件”。使用 Debian 上的 KDE,我在主配置窗口中也没有找到这样的参数。而且,我的/proc/acpi/wakeup文件不包含任何LID行。因此,前面的答案并不适用于所有系统。

尽管如此,根据这个建议(尤其是其更正的内容) 可能可以解决任何 Linux 系统的问题。

我只是建议输入以下行root,然后在进入挂起模式后尝试关闭/打开盖子,只是为了在实际设置文件之前检查该解决方案是否适用于您的系统:

echo disabled | sudo tee /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/power/wakeup

答案3

通常情况下,一旦打开盖子,唤醒功能就不会触发。如果打开盖子后系统就开始运行,则您的系统可能没有处于 S3 睡眠状态(它本应处于该状态)。可能是有什么东西阻止了完全睡眠。

此外,您还可以在 BIOS 中查找唤醒事件并关闭那些您不想要的事件(也许其中包括盖子唤醒)。

答案4

以 root身份运行echo " LID" > /proc/acpi/wakeup将禁用它,但是为了使其永久生效,您必须创建一个服务,因此首先 cd 到/etc/systemd/system/ 然后创建文件,your-service-name.service
然后您的文件应该是这样的:

[Unit]
Description=no wakeup when lid is open

[Service]
ExecStart=/bin/bash -c '[ "$(cat /proc/acpi/wakeup |grep -P -o "LID.*\*\K\w+")" == "enabled" ] && echo "LID" > /proc/acpi/wakeup'

[Install]
WantedBy=multi-user.target
 

然后重新加载服务文件以包含新服务:

sudo systemctl daemon-reload

开始您的服务:

sudo systemctl start your-service-name.service

每次重启时启用您的服务:

sudo systemctl enable example.service

相关内容