Start/microHowto/Debian Sid Hibernate

Instalacja w Debian "sid" skryptu do usypiania systemu.

Konfiguracja kernela

Aby móc skorzystać z dobrodziejstwa tego skryptu należy najpierw odpowiednio skonfigurować kernel.

Czyli po pierwsze ściągamy sobie łatkę na kernel (w moim przypadku 2.6.9) poleceniem :
(przyjmuję że źródła jądra systemu znajdują się w katalogu /usr/src/linux)

WPROWADZONO POPRAWKI DOT. JĄDRA 2.6.14

cd /usr/src/linux
#wget http://download.berlios.de/softwaresuspend/software-suspend-2.1-for-2.6.9.tar.bz2
wget http://www.suspend2.net/downloads/all/suspend2-2.2-rc10-for-2.6.14.tar.bz2

Teraz rozpakowujemy:

#tar -jxf software-suspend-2.1-for-2.6.9.tar.bz2
tar -jxf suspend2-2.2-rc10-for-2.6.14.tar.bz2

No i na koniec instalacja patcha

#./software-suspend-2.1-for-2.6.9/apply
./suspend2-2.2-rc10-for-2.6.14/apply

Następnie konfigurujemy jądro po swojemu i dodajemy następujące opcje:

Power management options (ACPI, APM)  --->
      * Power Management support
          Software Suspend 2  --->
                   <*> Software Suspend 2
                   <*>    Swap Writer
                   (/dev/hdaX)    Default resume device name

(gdzie /dev/hdaX to partycja wymiany, dodam że powinna być co najmniej o 30% większa od fizycznie posiadanej pamięci)

Warto oczywiście włączyć sobie opcje związane z ACPI np.

ACPI (Advanced Configuration and Power Interface) Support  --->
                        * ACPI Support
                          <*>   AC Adapter
                          <*>   Battery
                          <*>   Button
                          <*>   Fan
                          <*>   Processor
                          <*>     Thermal Zone

ale to już nie jest konieczne :)

Następnie kompilujemy jądro np, tak DebianKernel i oczywiście instalujemy nowe jajko.

Restart systemu i zabieramy się za skrypt.

Hibernate

Instalujemy skrypt:

#apt-get install hibernate
wget http://cp.yi.org/apt/hibernate/hibernate_1.12-1_all.deb
dpkg -i hibernate_1.12-1_all.deb

Konfigurujemy:

Podam zmiany które ja wprowadziłem w standardowym pliku konfiguracyjnym /etc/hibernate/hibernate.conf


# Nic nie zmieniałem
### global settings
Verbosity 0
Logfile /var/log/hibernate.log
Logverbosity 0
# alwaysforce yes
# alwayskill yes
# swsuspvt 15
Distribution debian

# Nie bardzo wiem, ale nie zmieniałem
### clock
Saveclock yes


# Systemy plików które powinniśmy odmontować przed uśpieniem
# czyli np. windows, sieć, systemy szyfrowane
# oraz systemy które mają zostać ponownie zamontowane po restarcie
### filesystems
# Unmount /nfsshare /windows /mnt/sambaserver
# Mount /windows
Unmount /mnt/win
Unmount /home/XXX
Mount /mnt/win

# Ustawienie dla Gruba do poprawnego startu i dodatkowo do dołączenia  w menu
# startowym wyboru startu z pominięciem przywracania systemu z uśpienia
### grub
 Changegrubmenu yes
 Grubmenufile /boot/grub/menu.lst
# Alternategrubmenufile /boot/grub/menu-suspended.lst

# Ustawienie dla LILO - ale ja mam GRUB-A i nie wiem czy to działa
### lilo
# Ensureliloresumes yes

# Tu ustawiamy aby system po obudzeniu zapytał o jakieś hasło (bo w tle może chodzić np. konsola root-a)
### lock (generally you only want one of the following options)
# Lockkde yes
# Lockxscreensaver yes
Lockconsoleas root

#bez komentarza
### misclaunch
Onsuspend 20 echo "No to ide spac!"
Onresume 20 echo "Po co mnie budzisz!"

# Ustawiamy interface sieciowe (zwłaszcza komputery przenośne)
# aby w przypadku podpięcia do innej sieci po obudzeniu ponownie
# ustawił DHCP
### network
Downinterfaces eth0
Upinterfaces auto

# W tym miejscu nic nie zmieniałem gdyż jeśli ustawimy tu jakiś program
# to system sie nie uśpi jeśli ww program będzie działał, lub będzie konieczne
# użycie parametru --force
### programs
# Incompatibleprograms xmms

# Ustawiłem alsasound do wyłączenia (zle znosi w moim przypadku usypianie)
# oraz włączyłem spowrotem aumix (czyli alse :)
### services
# Restartservices postfix
Stopservices alsasound
Startservices aumix

Inne opcje których tu nie znalazłeś nie zostały zmienione.

Po zapisaniu pliku warto przetestować możliwości hibernate. Czyli po pierwsze odłączamy wszystkie istotne systemy plików ręcznie, oczywiście poza podstawowymi ;). Wyłączamy programy (najlepiej zostać na czystej konsoli) i wykonujemy polecenie:

/usr/sbin/hibernate

Jeśli wszystko poszło ok to skrypt wyłączył komputer i po ponownym włączeniu przywróci nam stan poprzedni. Po starcie system zapyta jeszcze o hasło root-a aby zautoryzować dostęp i ma działać.

Jak już sprawdziliśmy, że działa z innymi programami oraz X-ami to spokojnie można pod klawisz sleep podpiąć skrypt wywołujący hibernate i cieszyć się stabilnym usypianiem komputera w Linuxie.

Powodzenia.


Autor: TkGkP.

Wersjia 1.0 2004.10.26


Google Polska Encyklopedia sieciowa
Asterix - Debian Wiki