Linux - статьи

Переход в спящий режим / Пробуждение


Энтузиастами Linux community - Найджелом Каннингэмом (Nigel Cunningham), Флоурентом Чейбодом (Florent Chabaud), Павелом Мэйчиком (Pavel Machek) и Гэйбоуром Кьюти (Gabor Kuti) - разработано средство, функциональное назначение которого эквивалентно sleep/wake Windows-систем: выключение машины с сохранением текущего состояния основной памяти на диске и его восстановление при последующей перезагрузке. Как результат: не требуется ни повторного открытия документов, ни перезагрузки приложений. Очевидно, что такой процесс намного быстрее "нормального" выключения и загрузки ОС - это еще не считая времени, затрачиваемого на… вспоминание характера выполняемой работы и используемого ПО, а также его загрузку.

Имя этому средству - Software Suspend for Linux, или swsusp.

Software Suspend for Linux хранит дамп в разделе подкачки - следовательно, последний должен иметь достаточный объем. Кроме того, для корректного использования средства требуется добавить дополнительный параметр в файл lilo.conf (или эквивалентный ему): например: append="resume=/dev/hda1"

Строка эта сообщит программе о том, что /dev/hda1 является swap-разделом и ей придется использовать swap-сигнатуру этого раздела как указатель на данные при приостановке системы. Данный раздел - не обязательно тот, на котором действительно находится информация, это должен быть какой-либо swap-раздел (Sic!).

Пока что swsusp не входит в дерево 2.4.X, посему потребуется загрузить исходный код ядра и воспользоваться последним доступным патчем. Сделав это, следует активизировать соответствующие опции в конфигурационном файле /usr/src/linux/.config, собрать и установить patched-ядро, скорректировать lilo.conf и перезапустить lilo. Теперь остается выполнить перезагрузку, с тем чтобы получить готовую, наиболее элементарную часть Software Suspend.

Что же касается 2.5.X, то swsusp, начиная с 2.5.18, непосредственно включается в основное дерево разработки этого ядра; из-за отличной драйверной модели большая часть функциональности версии 2.4 отсутствует в 2.5, вновь - пока.

Удобным способом использования swsusp является сценарий bash suspend.sh, исполнив который с опцией --install, вы получите пару файлов: сценарий перехода в спящий режим hibernate и его конфигурацию suspend.conf. Размещение их зависит, как известно, от предпочитаемого/используемого вами дистрибутива Linux; в большинстве случаев они должны находится в /usr/local/sbin/hibernate и /etc/suspend.conf.

Алгоритм тестирования новообретенного свойства таков (приведены этапы для Red Hat или Mandrake):

  1. Переключение на консоль с помощью сочетания клавиш <Ctrl+Alt+F1>.
  2. Получение прав root (Hi, this is Ken. What's the root password?).
  3. Останов X-сервера посредством команды init 3.
  4. Запуск hibernate.

После этих действий должно произойти "залегание" машины "в спячку". Включив в следующий раз питание компьютера, вы тем самым восстановите предыдущий сеанс работы в той же консоли. Для возвращения в графический режим следует ввести init 5 и залогиниться в X.

Вместе с Software Suspend распространяются опциональные патчи, расширяющие его возможности в плане взаимодействия с другими патчами:

  • acpi-option - для инициирования перехода ко сну с помощью команды вида
echo 4 > /proc/acpi/sleep
  • laptop-option - swsusp-совместимый вариант патча работы в лептоповом режиме Джэнс Эйксбо (Jens Axboe); увеличивает время работы от аккумулятора посредством задержки операций записи на диск, пока не окончено чтение,- и тем самым предотвращает необязательные дисковращения;
  • win4lin-option - предоставляет возможность sleep/wake во время работы ПО Win4Lin;
  • bootsplash-option - для использования прогресс-полосы bootsplash вместо обычного текстового экрана;
  • swsusp-*-xfs-option - поддержка XFS-демонов.

Применять эти патчи следует с соблюдением строгого порядка (не требуемые игнорируются):

  1. acpi, preempt, Win4lin, bootsplash, kdb, XFS ипр.
  2. xfs-option.
  3. Software Suspend.
  4. Прочие опциональные патчи.

Последнюю стабильную версию Software Suspend (коей на момент написания статьи является 1.0 и иже с ней опции), а также сценарий suspend.sh можно скачать по адресу: prdownloads.sourceforge.net/swsusp/swsusp-1.0-2.4.21.tar.gz? download.



Содержание раздела