Только сегодня узнал, что, оказывается, Ubuntu можно заставить уходить в спящий режим с помощью
Был сильно удивлён, так как у меня из всех возможных в Linux вариантов спящего режима всё это время работал только hibernate-disk (естественно, с запуском через консоль). Если у вас похожая ситуация, то следующее решение вам, как и мне, должно помочь.
1. Ставим пакет uswsusp:
sudo aptitude install uswsusp
2. Открываем файл /etc/pm/config.d/00sleep_module (или создаём, если его не существует):
sudo gedit /etc/pm/config.d/00sleep_module
3. Пишем в файл строку:
SLEEP_MODULE="uswsusp"
4. Сохраняем и закрываем файл.
Вуаля, спящий режим наконец-то работает. Если вы спросите: «А какая разница, как уводить в спящий режим, через консоль или по кнопке», то я отвечу, - если переводить Ubuntu в спящий режим так, как было задумано разработчиками, то при просыпании ОС будет работать блокировка экрана (если она у вас есть). Что в моём случае безусловный плюс.
За решение спасибо
amlaml.
Кстати, на днях подставил в ноутбук второй HDD и столкнулся с проблемой теперь уже выхода из спящего режима. Выглядит это как бесконечно долгая загрузка Ubuntu. Однако если на экране загрузки нажать Esc, то мы увидим её причину - ошибку
resume: libgcrypt version: 1.4.4
resume: Could not stat the resume device file '/dev/sda2'
Please type in the full path name to try again or press ENTER to boot the system
У меня эта ошибка появилась, повторюсь, сразу после установки второго винчестера и связана, насколько я понял, с тем, что на этапе «просыпания» система инициализирует диски иначе (видимо, в другом порядке), чем при обычной загрузке. По крайней мере мне помогла смена классического идентификатора вида /dev/sda1 на UUID этого диска.
Сохраню инструкцию на память.
1. Для начала нужно открыть файл /etc/uswsusp.conf. Он должен выглядеть примерно так:
# /etc/uswsusp.conf(8) -- Configuration file for s2disk/s2both
resume device = /dev/sda2
splash = y
compress = y
early writeout = y
image size = 1850350632
RSA key file = /etc/uswsusp.key
shutdown method = platform
Задача - поменять значение параметра resume device на уникальный идентификатор диска (UUID). Для этого нужно выполнить команду
blkid
И скопировать значение UUID из строки, которая заканчивается на TYPE="swap". Это значение нужно скопировать в наш файл /etc/uswsusp.conf:
# /etc/uswsusp.conf(8) -- Configuration file for s2disk/s2both
resume device = /dev/disk/by-uuid/sd5a81c3-4fe1-d401-0766-3d813edab623
splash = y
compress = y
early writeout = y
image size = 1850350632
RSA key file = /etc/uswsusp.key
shutdown method = platform
2. Затем в файле /etc/initramfs-tools/conf.d/resume заменить
RESUME=UUID=sd5a81c3-4fe1-d401-0766-3d813edab623
на
RESUME=/dev/disk/by-uuid/sd5a81c3-4fe1-d401-0766-3d813edab623
3. Также некоторые советуют указать устройство в конфиге /etc/defaults/grub с помощью строки
GRUB_CMDLINE_LINUX="resume=/dev/disk/by-uuid/sd5a81c3-4fe1-d401-0766-3d813edab623"
Хотя у меня проблема решилась и без этого. Естественно, вместо sd5a81c3-4fe1-d401-0766-3d813edab623 нужно везде указывать свой UUID.
4. Последний шаг. Нужно выполнить
update-initramfs -u
update-grub
После этого просыпание Ubuntu должно происходить без проблем.
И за это решение большое спасибо
mintuser.