我知道从 12.04 开始,我们需要添加一个 policykit 规则来启用休眠功能(参见问题如何启用休眠模式?和官方文档)。
sudo pm-hibernate
我可以使用或成功将笔记本电脑置于休眠模式sudo s2disk
,因此规则已到位并有效,但菜单中仍然缺少休眠条目。
通过查看 indicator-session 包的源代码(但不理解整个代码),我可以看出代码中仍然有一个休眠菜单项,当系统能够休眠时应该会显示它。如果您对此感到愤怒,请冷静下来。这不太可能是一个阴谋,而是更深层次的错误/回归,这可能发生在你移动代码或替换代码时。
问题:在 13.10 中需要做什么才能正确告知indicator-session
系统可以休眠?
可能重复:休眠功能仍不可用- 没有活动,因为 saucy 当时正在开发中,所以超出了 AskUbuntu 的范围。
相关错误报告:https://bugs.launchpad.net/ubuntu/+source/indicator-session/+bug/1232814
答案1
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
然后重新启动或运行killall indicator-session-service
您的会话,您的休眠功能/菜单选项应该会恢复。如果文件尚不存在,请创建它。
根据错误报告进行调查
引自 Jeffery To 在 Launchpad 上的帖子错误报告 #1232814:
对于 Saucy,indicator-session 已更新为使用 logind (org.freedesktop.login1) 而不是 upower。
如果您检查 /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla,您会发现在 upower 和 logind 中,hibernate 默认被禁用。
因此,重新启用 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
重新启动后,登录屏幕会话菜单应该有一个休眠选项。
[...]
所有的感谢和荣誉都归功于 Jeffery!
为何禁用休眠功能?
Launchpad 上有一个错误报告,建议禁用挂起/休眠模式,而不是跟踪哪些硬件“认证”了哪些电源模式。据称这是一种更具可扩展性的方法。
另一件需要提及的事情是,使用 UEFI 安全启动和休眠似乎是可行的,但规避前者可能会有风险。(1,2) 提醒一下,当您使用休眠模式时,您会将 RAM 中的所有内容存储到磁盘而不进行加密,这包括加密文件系统和容器的密码。
在 16.04 的某个时候,我不得不禁用安全启动能够使我的笔记本电脑休眠。就我而言,我使用了 uswsusp,并使用 s2disk 进行测试,返回了以下消息。这可能提示您,您的问题(为什么您无法休眠,尽管其他一切都已就绪)与安全启动有关:
s2disk: Could not open the snapshot device. Reason: Operation not permitted
然而,请理解这不是一个抱怨的地方,请保持友善。
相关问题
- 如何让 Ubuntu 在合上笔记本电脑盖时不执行任何操作?(或者告诉 Ubuntu 在关闭笔记本电脑盖时进入休眠状态)
答案2
如果您在使休眠工作时仍然遇到问题,请检查此错误报告的评论 #58:
我在 ubuntu gnome 13.10 上找到了一个解决方法:只需安装 hibernate:
sudo apt-get install hibernate
唯一的问题是,apport 在正常关机后启动时会发出三个错误。为此,您可以禁用 apport:
sudo -H gedit /etc/default/apport
然后改变
enabled=0
。要从休眠编辑文件中更改设置
/etc/hibernate
。
安装 hibernate 包似乎做出了正确的改变,它在 ubuntu gnome 13.10 x64 中对我来说运行得很好
答案3
如果您已经按照前面的步骤操作但仍然没有效果,我建议您将操作更改/etc/pm/sleep.d/20_custom-ehci_hcd
为:
[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
要使其工作,请按照上述步骤启用休眠选项。这对我来说确实有效。
最后,您将有 2 个文件使用“ [Re-enable hibernate ... ]
”编辑。试试这个。如果您使用的是 ubuntu 13.10,它肯定会起作用
答案4
我想在这里补充一点,据我所知,是未安装的交换分区。如果未安装交换分区,则无论休眠配置如何,都不会显示/启用休眠选项。
如果交换分区没有自动挂载,那么休眠会话将会丢失。