Hrafn
2009-03-18
Вольный перевод. Кстати, оригинал лежит здесь
Итак:
pm-utils будет новой структурой спящего режима. Обычно используется HAL для выполнения различных хаков в обход багов в драйверах и подсистемах, которые еще не знают про спящий режим.
Хотя pm-utils — структура, которая будет общей среди всех Linux-дситрибутивов в будущем, есть еще некоторые Suse-специфичные особенности и патчи, которые пока неизвестны. Я укажу варианты конфигураций, которые до сих пор относятся только к Suse.
Концепция очень проста: основной скрипт (pm-action, вызываемый через символическую ссылку как pm-suspend или pm-hibernate) выполняет так называемые «крюки», скрипты, расположенные в /etc/pm/hooks в алфавитном порядке, с параметрами suspend (suspend to RAM) или hibernate (suspend to disk). Как только все «крюки» сделаны, компьютер отправляется в «сон». После того, как машина снова пробудилась, все «крюки» выполняются в обратном порядке с параметром resume (resume from RAM) или thaw (resume from disk). «Крюки» делают различные вещи, например, готовят bootloader, останавливают подсистему bluetooth или выгружают критические модули.
Обычно pm-suspend и pm-hibernate вызываются HAL’ом, который в свою очередь вызывается апплетами Рабочего Стола, такими как gnome-power-manager или kpowersave.
Основной файл конфигурации — /etc/pm/config. Дополнительные файлы могут быть расположены в /etc/pm/config.d. Необходимо отметить, что файлы конфигурации и «крюки» должны быть исполняемыми файлами (иметь установленный бит «x»).
HIBERNATE_METHOD={userspace,kernel} # выбирается метод suspend-to-disk. По-умолчанию, userspace.
S2RAM_OPTS= "« # опции, передающиеся s2ram.
Смотрите также s2ram для большей информации.
Я показываю для демонстрации довольно бесполезный „крюк“, который просто поместит некоторую информацию в ваш лог-файл:
#!/bin/sh case $1 in hibernate) echo „Hey guy, we are going to suspend to disk!“ ;; suspend) echo „Oh, this time we’re doing a suspend to RAM. Cool!“ ;; thaw) echo „Oh, suspend to disk is over, we are resuming…“ ;; resume) echo „Hey, the suspend to RAM seems to be over…“ ;; *) echo „somebody is calling me totally wrong.“ ;; esac
Поместите это в /etc/pm/hooks/66dummy, сделайте chmod +x /etc/pm/hooks/66dummy, и оно будет изрыгать некоторые ссобщения в течение работы suspend/resume.
Внимание: Все „крюки“ запускаются от пользователя root. Это означает, что вы должны быть осторожны, создавая временные файлы, проверьте, чтобы переменные PATH были установлены корректно и т.д., чтобы избежать проблем с безопасностью.
Внимание: Это полезно для отладки. И было бы хорошо, если бы вы знали, что делаете, используя это.
S2RAM_OPTS=»-f -a 3″
Это может быть хорошей идеей, чтобы сообщить о вашей машине, как о прописанной в S2RAM-Page, так, чтобы вам не пришлось этого делать в дальнейшем.
chmod -x /etc/pm/hooks/the_hook