Suspend
Inhaltsverzeichnis |
Allgemeines
Suspesion und Hibernatíon stellen Möglichkeiten dar, den aktuellen Stand einer Session "einzufrieren".
Suspesion
Unter Suspension versteht man, das Speichern der aktuellen Session im RAM und das anschliessende Herunterfahren der Workstation in den Standby Mode. Dies entspricht "suspend to ram" oder "suspend to memory"
Hibernatíon
Hibernation entspricht im Grundsatz Suspend nur, daß die aktuelle Session auf Festplatte in einer Swap Partition gespeichert wird. Dies geht weniger zu Lasten der Batterie. Dies entspricht "suspend to disk"
Vorbereitung
Unter Linux sind diverse Vorbereitungen zu treffen
Kerneloptionen
Unter ""Power management and ACPI options"" werden benötigt
[*] Suspend to RAM and standby [*] Hibernation (aka 'suspend to disk') () Default resume partition
Systemvorbereitungen
Für Hibernation muss eine Swap-Partition angelegt sein. Unter Kernelversionen kleiner 3.0 war es nötig, daß diese Swap-Partition einer Harddisk Partition entspricht, also nicht unter LVM verwaltet wird. Dies ist zwar für den Betrieb als Swap Partition selbst kein Problem, jedoch findet der Kernel diese Partition nicht wenn es darum geht, die Session wieder herzustellen. Das Betriebssystem ist zu diesem Zeitpunkt noch nicht so weit hoch gefahren, daß auf LVM zugegriffen werden kann. Ohne es getestet zu haben gehe ich davon aus, daß das auch zum gegenwärtigen Zeitpunkt (Kernel 3.0.4) nach wie vor so ist.
Beispiel:
01:10:53 root@skywalker:~ # fdisk -l /dev/sda [...] /dev/sda14 30153 30401 2000061 82 Linux Swap / Solaris 01:10:53 root@skywalker:~ # grep swap /etc/fstab /dev/sda14 swap swap defaults 0 0
Diese Swap-Partition kann man im Kernel zur Compilezeit unter ""Default resume partition"" mitteilen.
Alternativ kann die Information dem gerade bootende Kernel auch als Kernelparameter übergeben werden
z.B. können in /etc/lilo.conf in der Zeile AddAppend die Einträge acpi_osi=Linux resume=/dev/sda14 vorgenommen werden.
Beispiel:
image = /boot/bzImage-3.0.4 root = /dev/sda3 AddAppend = "reboot=warm idebus=66 acpi_osi=Linux resume=/dev/sda14 i915.modeset=1" label = 3.0.4
Wechsel in den Standby-Modus
Während bei Kernelversion < 3.0 noch der Umweg über das Programm acpitool notwendig war (Hibernate mit Option -S, Suspend mit Option -s) ist dies mittlerweile (Kernelversion 3.0.4) über das SYS-Filesystem möglich.
Dazu existiert ein File /sys/power/state. Beim Auslesen gibt es die vorhandenen Möglichkeiten entsprechend der Kerneloptionen aus.
Beispiel:
01:20:34 root@skywalker:~ # cat /sys/power/state mem disk
In diesem Fall ist Suspension (to memory) und Hibernation (to disk) möglich.
Suspend
Um einen Suspend durchzuführen, muss das Wort "mem" nach /sys/power/state geschrieben werden.
Beispiel:
01:20:34 root@skywalker:~ # echo "mem" >/sys/power/state
Das System sollte nun den Suspend durchführen
Hibernate
Um einen Hibernate durchzuführen, muss das Wort "disk" nach /sys/power/state geschrieben werden.
Beispiel:
01:20:34 root@skywalker:~ # echo "disk" >/sys/power/state
Das System sollte nun den Hibernate durchführen
Wakeup aus dem Standby Modus
Beim den Wechsel aus dem Standby Modus zum Betrieb sollte die Session zum Stand des "Einfrierens" rekonstruiert werden.
Suspend
Beim Suspend to memory genügt ein Tastendruck, um aus dem Standby-Modus heraus zu kommen.
Hibernate
Um nach einem Hibernate die Session wieder zu erhalten, ist ein normaler Bootvorgang nötig. Der Kernel erkennt, daß eine Session per Hibernate gespeichert wurde und stellt diese während des Bootvorgangs wieder her.
--- Michael Freitag