通过 polkit 启用后,13.10 中的菜单中仍然缺少休眠。如何启用?

Liv*_*eBT 53 indicator hibernate power-management 13.10

我知道从 12.04 开始,我们需要添加一个 policykit 规则来启用休眠(请参阅问题如何启用休眠?官方文档)。

我可以使用sudo pm-hibernate或成功地使我的笔记本电脑进入休眠模式sudo s2disk,因此规则已就位并有效,但菜单中仍然缺少休眠条目。

通过查看指标会话包的源代码(但不了解整个代码),我可以看出代码中仍然有一个休眠菜单条目,并且应该在系统能够休眠时显示。如果你对此感到愤怒,请冷静下来。这不太可能是阴谋,而是更深层次的错误/回归,当您移动或替换代码时可能会发生这种情况。

问: 13.10需要做什么才能正确判断indicator-session系统可以休眠?


可能的重复:休眠仍然不可用- 没有活动,因为当时正在开发 saucy,所以超出了 AskUbuntu 的范围。

相关错误报告:https : //bugs.launchpad.net/ubuntu/+source/indicator-session/+bug/1232814

Liv*_*eBT 63

14.04 及以后

Mitch 在他对 14.04 和 16.04 的回答中指出,您应该10-vendor.d/com.ubuntu.desktop.pkla在修改任何内容之前进行检查。还要检查您是否禁用了安全启动,以及是否会返回菜单选项。

重新启用菜单中的休眠选项

要重新启用菜单中的休眠选项,您/etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla应该在 saucy (13.10) 中修改为如下所示:

[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate
ResultActive=yes
Run Code Online (Sandbox Code Playgroud)

然后重新启动或killall indicator-session-service在您的会话中运行,您应该恢复休眠功能/菜单选项。如果文件不存在,则创建该文件。

来自错误报告的调查

引用 Jeffery To 在 Launchpad错误报告 #1232814 上的帖子

对于 Saucy,指标会话已更新为使用 logind (org.freedesktop.login1) 而不是 upower。

如果您检查 /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla,您会看到默认情况下在 upower 和 logind 中都禁用了休眠。

因此,重新启用 Hibernate 选项的第一步是将 /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla 编辑为以下内容:

[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate
ResultActive=yes
Run Code Online (Sandbox Code Playgroud)

重新启动后,登录屏幕会话菜单应该有一个休眠选项。

[...]

所有的感谢和信用都归功于杰弗里!

为什么休眠被禁用?

启动板上有一个错误报告,建议禁用挂起/休眠,而不是跟踪哪个硬件“认证”了哪种电源模式。据称它是一种更具可扩展性的方法。

另一件事要提到的是,使用 UEFI 安全启动和休眠似乎是可能的,但可能存在规避前者的风险。( 1 , 2 ) 提醒一下,当您使用休眠时,您会将 RAM 中的所有内容都存储到磁盘而不加密,这包括加密文件系统和容器的密码。

在 16.04 的某个时候,我不得不禁用安全启动才能使我的笔记本电脑休眠。就我而言,我使用了 uswsusp 并使用 s2disk 进行测试返回以下消息。这可能会给您一个提示,即您的问题(尽管其他一切都已就绪但您无法休眠)与安全启动有关:

s2disk: Could not open the snapshot device. Reason: Operation not permitted 
Run Code Online (Sandbox Code Playgroud)

但是,请理解这不是抱怨的地方,请保持友善。

相关问题

  • 感谢您提供的方法,但在重新启动和“killall indicator-session-service”之后我仍然没有成功。不过,您确实提到了“或在重新启动后进行其他故障排除”,所以我想我属于该类别。在这个操作系统经过如此多的迭代之后,发现如此重要的行为*仍然*不受支持,这很奇怪,但这就是我目前所有的咆哮。我现在只是交叉手指并坚持使用 sudo pm-hibernate 。 (3认同)
  • 几个问题:为什么在世界上会禁用休眠?在电源设置中执行上述操作是否有效休眠选项?我不需要在齿轮菜单中休眠,但我的笔记本电脑需要在临界电池电量时休眠。谢谢你的回答! (3认同)