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


52

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

我可以使用sudo pm-hibernate或将笔记本电脑成功进入休眠模式sudo s2disk,因此该规则已经制定并且可以使用,但是菜单中仍然缺少休眠项。

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

问题:在13.10中需要做什么才能正确地告诉indicator-session系统可以休眠?


可能的重复项:休眠状态仍然不可用 -没有活动,因为当时开发了安全性,所以超出AskUbuntu的范围。

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


关于同一件事的我的问题:askubuntu.com/questions/361058
Pileofrocks

@pileofrocks抱歉,今天我的Feed阅读器中一定忽略了您的内容。
LiveWireBT

您的措辞虽然更好,但在技术上也更准确(当我还不知道该错误时提出了我的问题),如果应该关闭其他错误,那么应该由我提出。:P
Pileofrocks 13-10-20

Answers:


62

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 Bug Report#1232814的引用

对于Saucy,指示符会话已更新为使用登录(org.freedesktop.login1)而不是上行服务器。

如果您检查/var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla,则会看到默认情况下,上层用户和登录用户均禁用了休眠模式。

因此,重新启用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

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

[...]

感谢和感谢杰弗里!

为什么禁用休眠功能?

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

需要提及的另一件事是,使用UEFI安全启动和休眠似乎是可行的,但可能有规避前者的风险。(12)在此提醒,当您使用您冬眠存储在RAM一切到磁盘不加密,这包括用于加密的文件系统和容器的密码。

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

s2disk: Could not open the snapshot device. Reason: Operation not permitted 

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

相关问题


3
感谢您的方法,但是重新启动后和“ killall indicator-session-service”之后,我仍然没有成功。您确实提到过“或在重启后进行其他故障排除”,所以我想我属于该类别。在经过如此多次的操作系统迭代后,仍然发现如此重要的行为仍然不受支持,这很奇怪,但这就是我目前遇到的所有烦恼。现在,我将用手指交叉并坚持使用sudo pm-hibernate。
cdaddr

3
有两个问题:为什么世界上禁用了休眠功能?在电源设置中执行上述休眠选项是否有用?我不需要在齿轮菜单中休眠,而是让笔记本电脑在关键电池电量水平下休眠。感谢您的回答!
Oxwivi 2013年

1
即使这样,我也无法冬眠!!:(请帮助!休眠在我的机器上工作...但菜单中未显示
。–

1
@constantius是的,您应该创建它。
LiveWireBT

1
@SalmanPK然后您可能会问另一个问题。另外,请确保您有足够的SWAP。
赛斯2014年

2

如果您仍然无法使休眠工作,请在此错误报告中查看注释58

我在ubuntu gnome 13.10上找到了一种解决方法:只需安装休眠模式:

sudo apt-get install hibernate

唯一的问题是,正常关机后启动时,apport会发出三个错误。为此,您可以禁用审批:

sudo -H gedit /etc/default/apport

然后改变enabled=0

要从休眠编辑文件中更改设置/etc/hibernate

安装hibernate软件包似乎已做出正确的更改,并且在ubuntu gnome 13.10 x64中对我来说非常有效


1

如果您已按照前面的步骤进行操作,但仍然无法正常工作,建议您将其更改/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,它将确保工作正常


1

我想在此添加的一件事是未安装的交换分区,即AFAICR。如果未安装交换分区,则无论休眠配置如何,都不会显示/启用休眠选项。

如果交换分区没有自动挂载,则休眠的会话将丢失。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.