Ноутбук не спит, когда я закрываю крышку в Ubuntu 14.04
Хорошо, я знаю, что уже есть несколько вопросов, связанных с этим. Я перепробовал много решений безрезультатно. Я собираюсь подробно описать, что я сделал и как мои конфигурационные файлы в надежде, что хорошая душа укажет на то, что я пропустил.
Некоторая начальная информация:
- Я установил Ubuntu 14 из 14.01 .iso, и он стал 14.04, потому что, я думаю, я установил опцию автоматического обновления во время установки.
- У меня подключен внешний монитор. Это кажется актуальным в некоторых случаях.
- Как объясняется здесь, в настройках питания Ubuntu 14 нет возможности перевести компьютер в спящий режим. Только приостанавливать и ничего не делать.
pm-hibernate
работает отлично.- Мой своп немного больше моего RAM
1. У меня был Mint (14, если я не ошибаюсь), где закрытие крышки не переходило в спящий режим, пока я не добавил некоторые сценарии. В Ubuntu 14 нет /etc/acpi/lid.sh
что я могу редактировать, как я сделал в Монетном дворе. Я попытался создать один со следующим содержанием:
echo 'ok' > ok
grep -q closed /proc/acpi/button/lid/*/state
if [ $? = 0 ]
then
su - gabriel -c 'dconf read /org/gnome/settings-daemon/plugins/power/lid-close-ac-action' | grep hibernate
if [ $? = 0 ]
then
pm-hibernate
fi
fi
Файл ok
не создается, когда я закрываю крышку, это означает, что скрипт никогда не вызывается.
Я пытался переместить lid.sh в events/
,
Как предложено здесь, я попытался переименовать его в lid.sh.post
и переместить его в /etc/acpi/local/
и другие несколько комбинаций каталогов и имен (с / без .post
, в /etc/acpi/
, local/
, events/
...)
2. Я сделал как сказано здесь и установил gnome-tweak-tool
чтобы я мог установить действие на закрытой крышке в спящий режим. После того, как я это сделал, выпадающие списки на панели управления / электропитания были пустыми (не приостанавливать и не "ничего не делать"), но теперь они снова показывают "ничего не делать", я не знаю, что я сделал, чтобы это изменить. И работает
su - gabriel -c 'dconf read /org/gnome/settings-daemon/plugins/power/lid-close-ac-action'
по-прежнему возвращает "ничего", что ставит под угрозу мой (в любом случае бесполезный) сценарий.
3. Я сделал как сказано здесь: отредактировано /etc/systemd/logind.conf
и установить HandleLidSwitch
переходить в спящий режим:
cat /etc/systemd/logind.conf | grep -i lid
#HandleLidSwitch=hibernate
#LidSwitchIgnoreInhibited=yes
Я тоже пробовал с
#LidSwitchIgnoreInhibited=no
4. Как объяснено здесь и здесь, я отредактировал /var/lib/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
:
root@gabriel-linux:/var/lib/polkit-1/localauthority/50-local.d# cat 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
2 ответа
Для моего сценария (lid.sh
) быть вызванным в /etc/acpi/
Я должен был создать правильный файл в /etc/acpi/events/
,
Файл должен быть вызван lm_lid
и содержание выглядит следующим образом:
event=button/lid.*
action=/etc/acpi/lid.sh
Перезагрузите систему, чтобы это вступило в силу.
Примечание: я вернулся к Linux Mint (сейчас 17), прежде чем я все понял, и теперь это, с правильным файлом, работает. Я хотел бы услышать от пользователей Ubuntu, хотя.
У меня была похожая проблема в Linux Mint 17.3. Он исчез, когда я установил видеодрайвер nvidia вместо стандартного с открытым исходным кодом. (Администрирование->Driver Manager-> Выбрать рекомендуемый драйвер nvidia)