В началоУправление питанием компьютера → Состояния спячки: sleep, standby, suspend to disk
Gentoo-doc HOME Пред.: Управление питанием других устройствВ началоУровень выше: Управление питанием компьютераСлед.: Устранение неполадок

7. Состояния спячки: sleep, standby, suspend to disk

Примечание переводчика: данный раздел существенно устарел. Более свежую информацию можно найти на gentoo-wiki.com (EN). Также в русской есть короткий пересказ: gentoo-wiki.com.

ACPI определяет несколько состояний спячки. Основные три из них:

  1. S1 aka Standby

  2. S3 aka Suspend to RAM aka Sleep

  3. S4 aka Suspend to Disk aka Hibernate

Они могут вызываться в моменты, когда компьютер не используется, но выключение не желательно из-за долгой загрузки

7.1. Sleep (S3)

Поддержка 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. Для начала его надо установить.

Листинг 35. Установка hibernate-script

# emerge hibernate-script


Необходимо некоторые настройки в /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, чтобы вернутся из спячки.

Листинг 36. Засыпание

# hibernate-ram


Если вы всё ещё читаете, то, видимо, всё работает. Вы можете таким же образом настроить standby (S1), подредактировав sysfs-ram.conf и изменив UseSysfsPowerState mem на UseSysfsPowerState standby. Режимы S3 и S4 более интересны, поскольку сохраняют больше энергии.

7.2. Hibernate (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 во время загрузки.

Листинг 38. Чистка образов swsusp во время загрузки

# rc-update add hibernate-cleanup boot


Для активации 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 во время загрузки.

Листинг 40. Чистка образов TuxOnIce во время загрузки

# rc-update add hibernate-cleanup boot


Теперь, отредактируйте /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. Вы теперь можете попробовать холостой прогон, чтоб убедиться, что всё работает правильно.

Листинг 45. Тестовый запус fbsplash hibernation

# tuxoniceui_fbsplash -t


Наконец, откройте /etc/hibernate/common.conf и включите поддержку fbsplash. Запустите hibernate и наслаждайтесь!

Пред.: Управление питанием других устройствВ началоУровень выше: Управление питанием компьютераСлед.: Устранение неполадок
В началоУправление питанием компьютера → Состояния спячки: sleep, standby, suspend to disk