Введение

Данная статья является подразделом статьи "Спящий режим".

Если спящий режим с помощью pm-hibernate и s2disk работает некорректно (к примеру, у меня с Ubuntu 14.04 так и происходит: pm-hibernate не работает вообще, а s2disk после загрузки в Windows 7 ругается на поврежденный образ), следует воспользоваться третьей реализацией - TuxOnIce.

Установка

Для работы TuxOnIce нам нужно пропатченное ядро, которое для Ubuntu доступно прямо из репозиториев:

sudo add-apt-repository ppa:tuxonice/ppa
sudo apt update
sudo apt install linux-generic-tuxonice tuxonice-userui

Официальный мануал заявляет нам, что все должно работать без правки конфигов, однако в случае со свопфайлом это не так: TuxOnIce формат записи UUID+offset понимать отказывается. Поэтому поступаем следующим образом:

cat /sys/power/tuxonice/swap/headerlocations

Получаем оттуда подобную строку:

For swapfile `/swapfile`, use resume=swap:/dev/sda2:0x2110000.

и записываем информацию о начале свопфайла на нашем разделе в данном формате в конфиг TuxOnIce:

sudo nano /etc/hibernate/tuxonice.conf

Добавляем (или раскомментируем) строку

SuspendDevice swap:/dev/sda2:0x2110000

Теперь Initramfs и Grub:

echo "resume=swap:/dev/sda2:0x2110000" | sudo tee /etc/initramfs-tools/conf.d/resume
sudo nano /etc/default/grub

В строке GRUB_CMDLINE_LINUX_DEFAULT заменяем предыдущую запись с resume и resume_offset на

resume=swap:/dev/sda2:0x2110000

Не забываем удалить старые ядра и метапакеты, тянущие за собой обновление «родного» ядра (если этого не сделать, то при получении нового ядра и перезагрузке с ним вы не сможете использовать tuxonice):

sudo apt-get purge linux-signed-generic linux-generic linux-signed-image-generic linux-image-generic linux-headers-generic

Обновляем настройки GRUB и генерируем новый initramfs:

sudo update-grub
sudo update-initramfs -u

Указываем в качестве средства гибернации tuxonice:

echo "SLEEP_MODULE=tuxonice" | sudo tee -a /etc/pm/config.d/module

Горячие клавиши

Tuxonice в момент ухода в спящий режим позволяет задействовать некоторые горячие клавиши (в частности, отменить уход в спящий режим по Esc или перезагрузиться после гибернации по R). Если у вас USB-клавиатура, то использование горячих клавиш по умолчанию будет недоступно, поскольку соответствующие модули («Note that network cards and USB controllers will automatically be unloaded unless they're listed in MODULES_WHITELIST») будут выгружены. Поэтому добавляем их в белый лист:

sudo nano /etc/default/acpi-support

Находим строку MODULES_WHITELIST и добавляем туда модули usbhid и hid. Строка примет следующий вид:

MODULES_WHITELIST="usbhid hid"

Если после этой операции у вас возникнут проблемы с уходом в спящий режим, попробуйте удалить эти модули из белого листа.

Остается сохранить файл, перезагрузиться и проверить работу TuxOnIce с помощью

sudo pm-hibernate

или кнопки «Спящий режим» в меню.

Примечания

После обновлении ядра уйти в спящий режим вы не сможете, вам потребуется перезагрузка.

Если вы сможете это исправить, дополните данную статью.

Ссылки