Содержание
Введение
Данная статья является подразделом статьи "Спящий режим".
Если спящий режим с помощью 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
или кнопки «Спящий режим» в меню.
Примечания
После обновлении ядра уйти в спящий режим вы не сможете, вам потребуется перезагрузка.