Переход в спящий режим / Пробуждение
Энтузиастами 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):
- Переключение на консоль с помощью сочетания клавиш <Ctrl+Alt+F1>.
- Получение прав root (Hi, this is Ken. What's the root password?).
- Останов X-сервера посредством команды init 3.
- Запуск hibernate.
После этих действий должно произойти "залегание" машины "в спячку". Включив в следующий раз питание компьютера, вы тем самым восстановите предыдущий сеанс работы в той же консоли. Для возвращения в графический режим следует ввести init 5 и залогиниться в X.
Вместе с Software Suspend распространяются опциональные патчи, расширяющие его возможности в плане взаимодействия с другими патчами:
- acpi-option - для инициирования перехода ко сну с помощью команды вида
- laptop-option - swsusp-совместимый вариант патча работы в лептоповом режиме Джэнс Эйксбо (Jens Axboe); увеличивает время работы от аккумулятора посредством задержки операций записи на диск, пока не окончено чтение,- и тем самым предотвращает необязательные дисковращения;
- win4lin-option - предоставляет возможность sleep/wake во время работы ПО Win4Lin;
- bootsplash-option - для использования прогресс-полосы bootsplash вместо обычного текстового экрана;
- swsusp-*-xfs-option - поддержка XFS-демонов.
Применять эти патчи следует с соблюдением строгого порядка (не требуемые игнорируются):
- acpi, preempt, Win4lin, bootsplash, kdb, XFS ипр.
- xfs-option.
- Software Suspend.
- Прочие опциональные патчи.
Последнюю стабильную версию Software Suspend (коей на момент написания статьи является 1.0 и иже с ней опции), а также сценарий suspend.sh можно скачать по адресу: prdownloads.sourceforge.net/swsusp/swsusp-1.0-2.4.21.tar.gz? download.