[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: