В начало → Управление питанием компьютера → Состояния спячки: sleep, standby, suspend to disk |
Примечание переводчика: данный раздел существенно устарел. Более свежую информацию можно найти на gentoo-wiki.com (EN). Также в русской есть короткий пересказ: gentoo-wiki.com.
ACPI определяет несколько состояний спячки. Основные три из них:
S1 aka Standby
S3 aka Suspend to RAM aka Sleep
S4 aka Suspend to Disk aka Hibernate
Они могут вызываться в моменты, когда компьютер не используется, но выключение не желательно из-за долгой загрузки
Поддержка ACPI для этих состояний спячки помечена экспериментальной, и для этого есть достаточно оснований. Возможно, состояния спячки в APM (Advanced Power Management) несколько более стабильны, но использовать APM и ACPI одновременно нельзя.
Листинг 34. Конфигурация ядра для включений состояний спички
Power Management Options ---> [*] Power Management support ACPI (Advanced Configuration and Power Interface) Support ---> [*] ACPI Support [*] Sleep States
Когда ядро настроено, вы можете воспользоваться скриптом hibernate-script, чтобы активировать suspend или sleep. Для начала его надо установить.
Необходимо некоторые настройки в /etc/hibernate. По умолчанию пакет предоставляет несколько конфигурационных файлов для каждого состояния спячки. Общие настройки помещены в common.conf; убедитесь, что этот файл правильно сконфигурирован для вашей системы.
Чтобы настроить sleep, отредактируйте sysfs-ram.conf в /etc/hibernate. Опция UseSysfsPowerState mem уже выставлена правильно, но если вы хотите произвести дальнейшие настройки в этом или любом другом состоянии спячки, то не забудьте добавить их в /etc/hibernate/hibernate.conf. Комментарии и названия опций помогут вам разобраться. Если вы используете nfs или сетевые ресурсы самбы (samba shares over the network), то необходимо завершать соответствующие скрипты инициализации, чтобы избежать тайм аутов (timeouts).
Дополнительную информацию о состояниях спячки см. в man hibernate.conf
Готовы? У вас остался последний шанс сделать backup данных прежде, чем запустить следующую команду. Обратите внимание, что вам возможно потребуется нажать специальную клавишу такую, как Fn, чтобы вернутся из спячки.
Если вы всё ещё читаете, то, видимо, всё работает. Вы можете таким же образом настроить standby (S1), подредактировав sysfs-ram.conf и изменив UseSysfsPowerState mem на UseSysfsPowerState standby. Режимы S3 и S4 более интересны, поскольку сохраняют больше энергии.
Эта секция посвящена hibernation. В этом режиме снимок (snapshot) работающей системы записывается на диск, перед выключением. При включении, снимок загружается и вы можете продолжать работы с момент выключения.
Предупреждение: Не заменяйте устройства не поддерживающие горячую замены во время остановки. Не пытайтесь загрузить снимок на другой машине. Отключите все сетевые ФС и клиенты/серверы самбы перед засыпанием.
Существуют две различных реализации S4. Оригинальная – swsusp, и более новая tuxonice с более приятным интерфейсом (с поддержкой fbsplash). Сравнение их возможностей вы можете найти на домашней странице tuxonice. There used to be Suspend-to-Disk (pmdisk), a fork of swsusp, but it has been merged back.
TuxOnIce пока не включен в основную ветку ядра (mainline kernel), поэтому вам либо надо пропатчить ядро (патчи можно найти на tuxonice.net), либо использовать sys-kernel/tuxonice-sources.
Настройки ядра и для swsusp и для TuxOnIce следующие:
Листинг 37. Настройки ядра для hibernate
Power Management Options ---> (hibernate with swsusp) [*] Software Suspend (replace /dev/SWAP with your swap partition) (/dev/SWAP) Default resume partition (hibernate with TuxOnIce) Enhanced Hibernation (TuxOnIce) --- Image Storage (you need at least one writer) [*] File Writer [*] Swap Writer --- General Options [*] LZF image compression (replace /dev/SWAP with your swap partition) (swap:/dev/SWAP) Default resume device name [ ] Allow Keep Image Mode
Настройка swsusp много проще. Если вы не вписали имя своп-раздела в настройках ядра, вы должны передать его как параметр в директиве resume=/dev/SWAP. Если загрузка невозможна из-за сломанного образа, воспользуйтесь параметром noresume. Скрипт инициализации hibernate-cleanup чистит (invalidates) образы swsusp во время загрузки.
Для активации swsusp, используйте hibernate script, установив UseSysfsPowerState disk в /etc/hibernate/sysfs-disk
.
Предупреждение: Сделайте резервную копию данных перед остановкой. Запустите sync, чтобы записать на диск всю кэшированную информацию. Вначале, попробуйте сделать это без иксов, потом в иксах, но не логинясь.
Если вы наталкиваетесь на панику ядра (kernel panic) из-за uhci или подобного, попробуйте скомпилировать поддержку usb модулем и выгрузить модули из памяти перед остановкой. Соответствующая опция есть в common.conf.
Листинг 39. Засыпание посредством swsusp
#
nano -w /etc/hibernate/common.conf
(Час X – вы сделали резерную копию?)#
hibernate
В следующей секции обсуждается установка TunOnIce, включая поддержку fbsplash для симпатичного графического индикатора прогресса во время засыпания и просыпания.
Первая часть конфигурации похожа на настройку swsusp. Если вы не вписали имя своп-раздела в настройках ядра, вы должны передать
его как параметр в директиве resume=swap:/dev/SWAP
. Если загрузка невозможна из-за сломанного образа, воспользуйтесь параметром noresume. Скрипт инициализации hibernate-cleanup
чистит (invalidates) образы TuxOnIce во время загрузки.
Теперь, отредактируйте /etc/hibernate/suspend2.conf, включите опцию TuxOnIce. Не включайте fbsplash в common.conf пока.
Листинг 41. Засыпание посредством TuxOnIce
#
nano -w /etc/hibernate/suspend2.conf
(Час X – вы сделали резерную копию?)#
hibernate
Настройте fbsplash, если вы не сделали этого ранее. Чтобы задействовать поддержку fbsplash во время засыпания, необходимо поставить пакет sys-apps/tuxonice-userui. Также, вам необхожимо утсановить USE-флаг fbsplash.
Листинг 42. Установка tuxonice-userui
#
echo "sys-apps/tuxonice-userui fbsplash" >> /etc/portage/package.use
(It may be marked ~arch, so first it must be keyworded)#
echo "sys-apps/tuxonice-userui" >> /etc/portage/package.keywords
#
emerge tuxonice-userui
Ебилд попросит вас создать символическую ссылку на тему, которю вы хотите использовать. Например, чтобы использовать тему livecd-2005.1, выполните следующую команду:
Листинг 43. Использование темы livecd-2005.1 во время засыпания
#
ln -sfn /etc/splash/livecd-2005.1 /etc/splash/suspend2
Если вы не хотите видеть чёрный экран в первой части процесса пробуждения, добавьте tuxoniceui_fbsplash в ваш образ initrd. Если ваш образ initrd называется splash_geninitramfs и он сохранён в /boot/fbsplash-emergence-1024x768, то вам необходимо сделать буквально следующее:
Листинг 44. Добавление tuxoniceui_fbsplash в образ initrd
#
mount /boot
#
mkdir ~/initrd.d
#
cp /boot/fbsplash-emergence-1024x768 ~/initrd.d/
#
cd ~/initrd.d
#
gunzip -c fbsplash-emergence-1024x768 | cpio -idm --quiet -H newc
#
rm fbsplash-emergence-1024x768
#
cp /usr/sbin/tuxoniceui_fbsplash sbin/
#
find . | cpio --quiet --dereference -o -H newc | gzip -9 > /boot/fbsplash-tuxonice-emergence-1024x768
Далее, отрихтуйте ваш grub.conf
(или lilo.conf
), чтоб при загрузке вашего ядра грузился образ /boot/fbsplash-tuxonice-emergence-1024x768
. Вы теперь можете попробовать холостой прогон, чтоб убедиться, что всё работает правильно.
Наконец, откройте /etc/hibernate/common.conf
и включите поддержку fbsplash. Запустите hibernate и наслаждайтесь!
В начало → Управление питанием компьютера → Состояния спячки: sleep, standby, suspend to disk |