Отладка ACPI спящего режима
Материал из openSUSE.
Отладка ACPI спящего режима
Эта статья о "подробной" настройке функции ACPI-suspend(засыпание диска и памяти). Начиная с SUSE 9.3 спящий режим диска должен работать на большинстве машин без проблем. Известные проблемы есть с SATA- и SCSI-дисками и закрытыми X-драйверами, преимущественно с ATI fglrx.
Эти советы в основном верны для организации suspend режима, хотя надеемся что они вам не потребуются.
Спящий режим памяти немного более сложнее в настройке. Хотя это работает на многих ноутбуках ( и на нескольких десктопах), оно редко работает прямо из коробки. Проблемы на многих машинах в том, что как правило графические карты некорректно выполняют возврат из режима засыпания, это приводит к тому что экран так и остается отключенным. Множество советов вы можете найти в документации пакета powersave по этому пути /usr/share/doc/packages/powersave/ и в документации к ядру ( пакет kernel-source) в файле /usr/src/linux/Documentation/power/video.txt.
Для первой попытки настроить «suspend to RAM» (если это не работает из коробки) удобно начать с минимальной системы и двигаться шаг за шагом к полнофункциональной системе. Эта и описано здесь. Изменим параметр vga=... в строке GRUB (ядро принимает только первый по счету параметр) для этого сместим этот параметр в файле /boot/grub/menu.lst за ключевое слово "showopts", так удобнее будет видеть и редактировать при каждой загрузке. Соответствующий блок конфига должен выглядеть примерно так(пример):
###Don't change this comment - YaST2 identifier: Original name: linux###
title SUSE LINUX 9.3
kernel (hd0,4)/vmlinuz root=/dev/hda7 selinux=0 splash=silent sysrq=yes resume=/dev/hda6 showopts vga=0x342
initrd (hd0,4)/initrd
Запустимся с минимальным конфигом добавив в строку GRUB'а kernel "init=/bin/bash". После этого система загрузится напрямую в командный интерпретатор без запуска стартовых скриптов. (Прим.переводчика: Таким образом возможно сменить и пароль рута!). Сейчас попробуем активировать suspend режим в ручном режиме.
# mount /proc and /sys:
mount /proc
mount /sys
# for suspend to disk, activate swap here. Not necessary for suspend to RAM:
# swapon -a
# invoke suspend to RAM ("disk" for suspend to disk):
echo mem > /sys/power/state
Машина должна перейти в спящий режим (обычно мерцает светодиод питания). Разбудите (зависит от компьютера) нажав кнопку питания, закрыв/открыв крышку или нажав на Fn клавишу (светодиод питания должен загореться). Лампочка жесткого диска возможно немного помигает, но должна потухнуть. Если дисплей включился и мы видим тоже что и было на экране до этого значит наш эксперимент завершен. Все работает. Если экран остался темным мы продолжаем.
Во-первых проверим, просто не включился монитор или же машина полностью повисла. Введите вслепую:
find /
Если лампочка жесткого диска светится значит система все-таки работает, просто надо немного повозиться с видеокартой. Команду find нельзя прервать в ограниченном режиме (init=/bin/bash), поэтому вы должны перезагрузить или выключить компьютер.
Для инициализации графической карты передадим параметр ядру "acpi_sleep=s3_bios" чаще всего этого достаточно. Этот параметр использует функции BIOS'а для инициализации карты в момент пробуждения. Это возможно не сработает, но очень часто этого хватает.
Если вы видите только "Linu" в левом верхнем углу, значит карта инициализировалась, но в текстовом режиме. Для исправления этого используйте параметр "acpi_sleep=s3_mode". Если раньше вы уже использовали s3_bios, то результирующая строка такая "acpi_sleep=s3_bios,s3_mode". Если ничего не помогло и компьютер по-прежнему не включается, тогда воспользуйтесь vbetool, которые возможно будет темой другой статьи. Эта статья пока не полная, но в любом случае ее можно использовать как «первую помощь».

