среда, 11 ноября 2015 г.

Проблемы с hibernate после обновления ядра без перезагрузки

Достаю утром ноутбук из сумки и понимаю, что он подозрительно теплый. Вспоминаю, что вчера в офисе между делом накатил обновления, среди которых оказалось и обновление ядра. Сразу перезагрузиться не получилось, а потом не до того было. Перед уходом домой включил на ноутбуке ждущий режим (suspend to ram) и закинул его в сумку.

Особенность моего ноутбука в том, что на нем используется набор скриптов из laptop-utils, один из которых спустя несколько часов будит ноутбук и сразу переводит его в спящий режим (suspend to disk). Это сделано для того, чтобы исключить потерю данных, если по какой-то причине ноутбуком не будут пользоваться длительное время. Да и неприятно спустя выходные обнаружить наполовину севшую батарею.

При обновлении ядра в Debian запрещается использование hibernate (файл  /var/run/do-not-hibernate создается хуком /etc/kernel/postinst.d/pm-utils). Если систему не перезагрузить, то при попытке уснуть на диск ничего не выйдет

$ cat /var/log/pm-suspend.log
...
Wed Nov 11 02:51:52 MSK 2015: Running hooks for hibernate.
Running hook /usr/lib/pm-utils/sleep.d/000kernel-change hibernate hibernate:
kernel update inhibits hibernate (/var/run/do-not-hibernate present)
/usr/lib/pm-utils/sleep.d/000kernel-change hibernate hibernate: Returned exit code 1.

Wed Nov 11 02:51:52 MSK 2015: Inhibit found, will not perform hibernate
...

У меня подобная ситуация уже во второй или третий раз и поэтому я добавил отключение функциональности hibernate after suspend в laptop-utils.

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

Комментариев нет:

Отправить комментарий