20.04 LTS 由于从 19.10 笔记本电脑的升级在盖子关闭后不再暂停

Maa*_*ten 6 acpi suspend lid power-management 20.04

当我在 Ubuntu 19.10 上合上盖子时,我的联想 P50 笔记本电脑曾经很好地暂停。升级后,这不再起作用了。当我执行该命令时sudo systemctl suspend,笔记本电脑仍会进入非常快速的全功能挂起状态。因此,在处理来自 acpi 的盖子关闭事件时似乎出现了问题。

我正在使用 gnome-tweak-tools 并且它具有切换以按预期启用盖子关闭时暂停。

我还检查了 /etc/systemd/logind.conf 中的配置,它看起来很完美:

HandleLidSwitch=suspend
HandleLidSwitchExternalPower=suspend
HandleLidSwitchDocked=suspend
LidSwitchIgnoreInhibited=yes
Run Code Online (Sandbox Code Playgroud)

我在 /var/log/syslog 中没有发现任何值得注意的东西。

我发现的解决方法如下:

创建一个包含/etc/acpi/events/laptop-lid-close以下内容的文件:

event=button/lid LID close
action=/etc/acpi/laptop-lid-close.sh
Run Code Online (Sandbox Code Playgroud)

并创建一个/etc/acpi/laptop-lid-close.sh包含以下内容的文件并赋予它执行权限 ( chmod +x /etc/acpi/laptop-lid-close.sh):

#!/bin/sh

systemctl suspend
Run Code Online (Sandbox Code Playgroud)

如果不需要这种解决方法当然会更好

Acpi 似乎会触发“盖子关闭”事件,否则该解决方法将不起作用。出于同样的原因,暂停本身也必须在我的笔记本电脑上运行。

关于如何了解为什么这不能开箱即用的任何线索?

小智 3

我在新安装的 UbuntuDDE 上也有类似的情况。我在各种来源中找到了答案(这可能是最相关的Ubuntu 18.04 - Dell XPS13 9370 不再在合上盖子时暂停)。问题是笔记本电脑没有进入“深度”睡眠。运行这个命令

cat /sys/power/mem_sleep
Run Code Online (Sandbox Code Playgroud)

如果你得到下面的结果,那么这就是问题所在。

[s2idle] deep
Run Code Online (Sandbox Code Playgroud)

要更改它,请编辑 grub 文件(位置:/etc/default/grub)将此文本添加到 GRUB_CMDLINE_LINUX_DEFAULT 行

mem_sleep_default=deep
Run Code Online (Sandbox Code Playgroud)

然后更新grub

sudo update-grub
Run Code Online (Sandbox Code Playgroud)

并重新启动。重新启动后,再次运行此命令

cat /sys/power/mem_sleep
Run Code Online (Sandbox Code Playgroud)

现在确认您的结果是

s2idle [deep]
Run Code Online (Sandbox Code Playgroud)

那么你应该可以走了。

  • 也许您可以明确提及 grub 文件的位置:/etc/default/grub (3认同)
  • 很好的补充,很适合你,但就我而言,在我更改任何内容之前它已经报告了``s2idle [deep]``` (2认同)
  • 您的意思是说“如果您*没有*得到下面的结果,那么这就是问题所在”? (2认同)