Ноутбук не спит, когда я закрываю крышку в 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)

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