Как полностью отключить Hibernate в Kubuntu?

11

Я видел ответ на Как отключить спящий режим? , но у меня нет такого файла. Возможно, потому что это предложение было написано для Ubuntu, а не Kubuntu (KDE, не Gnome).

У меня нет подкачки на моем зашифрованном SSD, моя система зависает (даже не может изменить Caps Lock), если я случайно нажму кнопку «Hibernate» в «Energy management». На моей клавиатуре есть кнопка Hibernate ( Fn+ F4) рядом с кнопками регулировки громкости, и каждый раз, когда я нажимаю неправильную клавишу, система зависает после.

Итак, как правильно его отключить? Если решения не существует, то приветствуется и обходной путь.

Lekensteyn
источник
+1 Это (и отключение режима приостановки) - очень важный вопрос для всех, кто использует накопители OCZ Vertex2 ... режим приостановки / гибернации может мгновенно уничтожить накопитель без надежды на восстановление одного байта. :(
Расс

Ответы:

6

Триггеры для гибернации:

  • Нажмите кнопку Hibernate в Kickoff -> Выйти -> Hibernate
  • Нажмите Hibernate на значке энергии на панели задач.
  • Отправить сигнал dbus: qdbus org.kde.kded /modules/powerdevil suspend 4

Когда спящий режим запускается, это поток выполнения:

  1. /usr/lib/hal/scripts/linux/hal-system-power-hibernate-linux называется
  2. /usr/sbin/pm-hibernate вызывается с некоторыми аргументами
  3. Ведение журнала начинается с /var/log/pm-suspend.log
  4. Крючки выполнены для подготовки к зимней спячке. Эти крючки расположены в /usr/lib/pm-utils/sleep.d/и /etc/pm/sleep.dи отсортированы по имени (сначала номера)
  5. performing hibernate записывается в журнал
  6. Вызывается функция оболочки do_hibernate, инструктирующая систему переходить в спящий режим.
  7. Когда система возобновляет работу, выполняются зацепки для восстановления из спящего режима
  8. Система снова работает

Чтобы отключить гибернацию, создайте /etc/pm/sleep.d/000no-hibernationсо следующим контентом:

#!/bin/sh
# prevents hibernation
. "$PM_FUNCTIONS"
[ "$1" = "hibernate" ] && inhibit || true

Как 000no-hibernationи прежде, чем сценарии 00logging(выводит модули и информацию о памяти в журнале), никакие приложения или модули не прерываются и не выгружаются. Это имя было вдохновлено /usr/lib/pm-utils/sleep.d/000kernel-change. Остерегайтесь ошибки # 665651, из-за которой ненулевые возвращаемые значения хуков не могут отменить приостановку или спящий режим.

Это исправляет проблему гибернации для меня. Хотя экран заблокирован, я могу жить с этим. Это намного лучше по сравнению с аварийной системой.

Lekensteyn
источник
Я добавил, || trueчтобы предотвратить ненулевой код выхода, который предотвращает приостановку. Проверено на работу для приостановки и блокировки спящего режима.
Лекенштейн
Отличный ответ! Очень тщательно .. Спасибо за размещение того, что вы нашли. Расширяя его, этот скрипт (из сообщения об ошибке, который вы связали) чисто останавливает как спящий режим, так и приостановку. Редактирование, чтобы сделать только один из них, также тривиально.
Расс