Re: suspend, acpi, kernel 2.6.8
On Sun, 5 Sep 2004, Dmitry E. Oboukhov wrote:
> играюсь с засыпанием на ноуте thinkpad А31
>
> значит так:
>
> в lilo.conf
> append "resume=/dev/hda3"
>
> кернел Дебиановский включил SOFTWARE_SUSPEND
>
> есho 1 > /proc/acpi/sleep
>
> экран гаснет на 1 секунду
> и потом сразу просыпается
>
> echo 2
> говорит операция записи не поддерживается
>
> echo 3
> все останавливается, ноут засыпает, но экран не гаснет
>
> echo 4
> начинает сохранять на диск, но потом говорит нет места для сохранения -
> кернел паник
>
> свап размером 2 Гига, ОЗУ - 512
>
> сколько нужно свап чтобы места хватило?
>
> при этом он пишет "буду сохранять чуть больше 12000 страниц"
> страница это сколько? 4К? тогда вообще непонятно - место должно быть...
>
>
>
> и еще, можно погасить экран в echo 3?
>
> пробовал включить/выключить Suspend-to-Disk Support и прописать
> pmdisk=/dev/hda3
> результаты строго те же
>
> у кого работает засыпание без патчей suspend2 поделитесь конфигами lilo
> и кернела в этой области плз
>
IMHO лучше использовать software suspend 2.0:
http://softwaresuspend.berlios.de/
Правда для этого прийдется патчить ядро, но ведь
для ACPI всё равно прийдется это делать.
Для начала, прочитайте FAQ:
http://tldp.org/HOWTO/ACPI-HOWTO/index.html
Я делал всё это на ядре 2.6.7-3 debian, но не думаю,
что будут сильные отличия.
Сначало вытаскивается ACPI патч из:
ftp://ftp.kernel.org/pub/linux/kernel/people/lenb/acpi/patches/release/26-stable-release/
и устанавливается
$ cd /usr/src/linux/
$ patch -Np1 < acpi-20040715-2.6.8.diff.gz
Затем вытаскиваются swsusp патчи из:
http://developer.berlios.de/project/showfiles.php?group_id=1412
(Для Вас это видимо будет software-suspend-2.0.0.105-for-2.6.8.1.tar.bz2)
и hibernate скрипт.
Патчи развёртываются в отдельную директорию и делается что-то типа:
cd /usr/src/linux/
for p in /location-of-swsusp-patch/*
do patch -Np1 < $i
done
Тут возможен сбой если дебиановские патчи конфликтуют с swsusp.
Тогда либо снять все дебиановские патчи, либо искать, что
случилось. :)
Потом ядро собирается:
$ make menuconfig
Loadable module support --->
[*] Enable loadable module support
[*] Module unloading
Power management options (ACPI. APM) --->
[*] Power Management support
[ ] Software Sspend (EXPERIMENTAL)
Software Suspend 2 --->
--- Image Storage (you need at least one writer)
[*] Swap Writer
[ ] Null Writer
--- Page Transformers
[*] LZF image compression
[ ] GZIP image compression
[ ] Null Page Transformer (For debugging)
--- General Options
[ ] Compile in debugging output
[ ] Variation Analysis
[ ] Metadata dump
[ ] Allow keep Image Mode
[*] Relaxed /proc/swsusp permissions
() Default resume device name
[ ] Suspend-to-Disk Support
Перед тем как перебучиваться надо в lilo.conf
добавить append="resume2=swap:/dev/hda2"( вместо /dev/hda2 - положение
своп раздела ).
Затем устанавливается скрипт:
$sh suspend.sh --install
и правится /etc/suspend.conf.
Дальше перезагрузка, dmsg | less на предмет, что swsusp
и acpi говорят. Потом вызывается /usr/local/sbin/hibernate
и возможно, что Вам повезет.
Мне не повезло, но у меня и лептоп другой.
Мне еще пришлось заводить sysfs (2.6 я первый раз пробовал)
Надо добавить в /etc/fstab
sysfs /sys sysfs defaults 0 0
Потом пришлось долго и вдумчиво править suspend.conf,
некоторые модули вешали ядро и их надо "вручную"
выгружать до засыпания (поэтому и нужен скрипт).
Затем, когда решил добавить ipw2100 модуль (wlan),
пришлось лезть в код модуля, иначе он с swsusp конфликтовал.
Но в результате все замечательно работает :)
Успехов,
Юра.
p.s. А вот suspend to RAM так и не заработал (ASUS M2400),
а жаль... Собственно поэтому swsusp и поставил, работает
довольно шустро.
Reply to: