Первую заметку нового года я хотел бы посвятить главной линукс-победе года уходящего: своему долгожданному успеху в настройке поддержки ждущего (suspend to ram) и спящего (suspend to disk, hibernation) режимов. Сразу замечу, что "из коробки" они у меня не заработали ни в Squeeze, ни когда-то в Lenny.
Про эти два режима
написано в интернете немало, и я не вижу смысла подробно их освещать, лишь кратко опишу, как это выглядит в Debian.
Suspend-to-ram: информация о состоянии системы записывается в оперативную память, при отключении питания она, естественно, теряется. Индикатором ждущего режима традиционно является мигающая лампочка на системном блоке. При нажатии на кнопку включения весьма быстро загружается ОС в том виде, как была оставлена перед активацией режима - со всеми запущенными приложениями, открытыми окнами и т.д.
Suspend-to-disk: информация о состоянии системы записывается в swap-раздел жесткого диска, при отключении питания она не теряется. Компьютер, фактически, выключается. При нажатии на кнопку включения проходятся все этапы загрузки: BIOS, grub, Debian; но по завершении операционная система, опять же, предстанет в том виде, в каком была оставлена перед активацией режима.
Проблема состояла в следующем: при попытке войти в ждущий/спящий режимы компьютер как положено "затухал", но после этого уже не включался. В спящем режиме был просто чёрный экран, а в ждущем появлялся мигающий курсор...и тишина. В обоих случаях помогала только физическая перезагрузка. Хотя решение я собирал как мозаику, долго и по кусочкам, излагать буду по порядку, поднимаясь "снизу вверх".
1) Настройки BIOS
В BIOS должна быть включена поддержка ACPI.
Power Management -> ACPI 2.0 Support -> Enabled
И соседние опции, если они есть, так как набор настроек несколько варьируется в зависимости от версии BIOS.
2) SWAP-раздел
Он должен присутствовать, и размер его должен быть не меньше объема оперативной памяти, иначе вы не сможете
стабильно использовать спящий режим.
3) Настройки ядра
В ядре должна быть включена поддержка
ACPI и сопутствующих опций. Здесь я должен отметить, что у меня не ноутбук, а стационарный PC, и поэтому все специфические для лаптопов настройки отключены. Вам всё равно точно потребуется нижеперечисленное, плюс, возможно, что-то ещё (читайте описания настроек, особенно посвященных продукции вашей фирмы-производителя). Для удобства выкладываю скриншот своей конфигурации.
Обратите внимание на выделенную строку (справа)- в ней следует указать путь к swap-разделу, который будет использоваться при возобновлении из спящего режима. Если swap-разделов у вас почему-то несколько, то лучше указывать первый. Если вы не знаете, на каком разделе расположена подкачка, это можно посмотреть в
/etc/fstab, по команде
blkid от суперпользователя или в программах для работы с дисками (например, gparted).
На скриншоте выше конфигурация ACPI, владельцам ноутбуков обязательно понадобятся отключенные у меня
Battery и
AC Adapter.
В целях энергосбережения есть смысл также сконфигурировать управление частотой процессора (CPU Frequency scaling) в следующей секции (потребуется также пакет
cpufrequtils).
4) Системные пакеты
Наконец, кое-что должно присутствовать и в самой системе. Список пакетов взят
отсюда, большинство пакетов уже наверняка стоит:
hal, hal-info, pm-utils, powermgmt-base, acpid
Вроде всё. ;-) Для входа в ждущий режим я использую меню графической среды, консольные команды не искал.