Спящий режим по-прежнему отсутствует в меню в 13.10 после включения через polkit. Как включить?

Я знаю, что с 12.04 нам нужно добавить правило policykit для включения гибернации (см. Вопрос " Как включить гибернацию?" И " Официальная документация").

Я могу успешно перевести свой ноутбук в режим гибернации с sudo pm-hibernate или же sudo s2disk, так что правило на месте и работает, но запись спящего режима все еще отсутствует в меню.

Посмотрев исходный код пакета сеанса индикатора (но не понимая весь код), я могу сказать, что в коде все еще есть пункт меню гибернации, и он должен отображаться, когда система способна к гибернации. Пожалуйста, успокойся, если тебя это бесит. Очень маловероятно, что это будет заговор, а скорее ошибка / регрессия на более глубоком уровне, которая может произойти, когда вы перемещаете код или заменяете его.

Вопрос: Что нужно сделать в 13.10, чтобы правильно сказать indicator-session что система может переходить в спящий режим?


Возможный дубликат: Гибернация по-прежнему недоступна - Нет активности, потому что в то время была дерзкая разработка, так что она выходит за рамки AskUbuntu.

Связанный отчет об ошибке: https://bugs.launchpad.net/ubuntu/+source/indicator-session/+bug/1232814

4 ответа

Решение

14.04 и выше

Митч отмечает в своем ответе за 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 в вашем сеансе, и у вас должна быть возможность возврата в спящий режим. Создайте файл, если он еще не существует.

Расследование из сообщения об ошибке

Цитата из сообщения Джеффри То в сообщении об ошибке Launchpad # 1232814:

Для Saucy индикатор-сессия была обновлена, чтобы использовать logind (org.freedesktop.login1) вместо upower.

Если вы проверите /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla, вы увидите, что hibernate по умолчанию отключен как в 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

После перезагрузки в меню сеанса экрана входа в систему должна быть опция Hibernate.

[...]

Все спасибо и благодарность Джеффри!

Почему гибернация отключена?

На панели запуска существует отчет об ошибках, в котором предлагается отключить режим приостановки / гибернации вместо отслеживания того, какое оборудование "сертифицирует" для каких режимов питания. Утверждается, что это более масштабируемый подход.

Следует также упомянуть, что использование UEFI Secure Boot и гибернации возможно, но может обойтись без него. ( 1, 2) Напоминаем, что при использовании режима гибернации вы храните все данные в ОЗУ на диске без шифрования, включая пароли для зашифрованных файловых систем и контейнеров.

В какой-то момент с 16.04 мне пришлось отключить безопасную загрузку, чтобы иметь возможность переводить компьютер в спящий режим. В моем случае я использовал uswsusp, а тестирование с s2disk вернуло сообщение ниже. Это может дать вам подсказку, что ваша проблема, почему вы не можете перейти в спящий режим, хотя все остальное на месте, связана с безопасной загрузкой:

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

However, please understand that this is not a place to complain and please be nice.

Смежные вопросы

Если у вас все еще есть проблемы с работой hibernate, проверьте комментарий № 58 к этому сообщению об ошибке:

Я нашел обходной путь в Ubuntu GNOME 13.10: просто установите Hibernate:

sudo apt-get install hibernate

Единственная проблема заключается в том, что apport выдаст три ошибки при запуске после обычного отключения питания. Для этого вы можете отключить приложение:

sudo -H gedit /etc/default/apport

Тогда поменяй enabled=0,

Чтобы изменить настройки из спящего режима, отредактируйте файлы в /etc/hibernate,

Установка пакета hibernate, кажется, делает правильные изменения, и он работал очень хорошо для меня в Ubuntu GNOME 13.10 x64

Если вы выполнили предыдущие шаги и это все еще не работает, я предлагаю вам изменить /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

Одна вещь, которую я хотел бы добавить здесь, что AFAICR, это размонтированный раздел подкачки. Если раздел подкачки не смонтирован, опция гибернации не будет отображаться / включаться независимо от конфигурации гибернации.

И если раздел подкачки не будет автоматически смонтирован, то сеанс гибернации будет потерян.

Другие вопросы по тегам