aufmacher.png

Im Tiefschlaf

Software Suspend

01.11.2004
Zwar sollte sich das Powermanagement des Mainboards darum kümmern, dass der Rechner in den stromsparenden Suspend-Modus schaltet, in der Praxis funktioniert das aber leider nicht immer. Abhilfe schafft Linux per Software.

Die Theorie von Software Suspend leuchtet ein: Linux schreibt den Inhalt des Arbeitsspeichers und sonstiger Zwischenspeicher, wie dem der Grafikkarte, auf die Swap-Partition und schaltet dann den Computer aus. Beim anschliessenden Start erkennt Linux am Zustand der Auslagerungspartition, dass das Betriebssystem den Computer nicht normal heruntergefahren, sondern stattdessen mit Software Suspend gestoppt hat und stellt daraufhin den Arbeitsspeicher aus den vorliegenden Daten wieder her. Das BIOS und sein Powermanagement-System übergeht es dabei weitgehend; so haben dort eventuell vorhandene Fehler keine Auswirkungen. Dadurch haben Sie Erfolgsaussichten auch mit Geräten, bei denen die eingebauten Suspend-Funktionen per APM oder ACPI nicht funktionieren (S. 63).

Die Wirklichkeit sieht leider oft nicht ganz so rosig aus: Auf die größte Hürde stößt das laufende Betriebssystem beim Auslesen der Daten aus dem Arbeitsspeicher. Denn dazu startet es neue Prozesse, die den Speicherinhalt wiederum verändern. Das System muss also in einem möglichst stabilen Zustand einfrieren. Einige Treiber spielen dabei jedoch nicht immer mit, Sorgenkinder sind beispielsweise die Grafikkartentreiber von NVidia und ATI.

Drei verschiedene Systeme

Derzeit gibt es nicht nur eine Suspend-Software-Lösung sondern drei. Sie alle stammen ursprünglich aus demselbem Projekt und basieren auf dem gleichen Konzept.

Software Suspend (swsusp), das Original, ist im Kernel 2.6 enthalten und deshalb ohne aufwändige Nachinstallation benutzbar. Es benötigt allerdings ein ACPI-fähiges BIOS.

Das Projekt PMDisk hat sich von Swsusp abgespalten, um einige Verbesserungen einzubauen. Kernel 2.6 enthält auch dieses System. Der Vorteil daran ist, dass es auch ohne ACPI funktioniert. Ziel des Kernel-Teams ist es, die Fortschritte beider Projekte möglichst bald wieder unter dem Namen swsusp zu vereinen [1].

Software Suspend 2 (swsusp2) [2] ist ebenfalls eine Weiterentwicklung von Swsusp. Es funktioniert wie PMDisk unabhängig vom Powermanagement-System des BIOS und enthält zusätzliche Features. So spart es Platz, indem es die abzuspeichernden Daten komprimiert. Optional verwendet es statt einer Auslagerungsdatei eine Auslagerungsdatei auf einer Datenpartition. Zudem kommt es auch mit Systemen mit mehreren Prozessoren zurecht. Allerdings ist es noch kein Bestandteil des Standard-Kernels und erfordert deshalb manuelles Patchen und Neukompilieren des Kernels [3].

Es stellt sich nun also die Frage, welches der drei Software-Suspend-Systeme Sie benutzen sollten. Am einfachsten ist es natürlich, eines der beiden bereits im Kernel integrierten Verfahren zu benutzen, um sich das Patchen und Kernel-Bauen zu ersparen. Da allerdings alle drei Systeme noch nicht ausgereift sind, funktionieren nicht alle mit jeder Hardware, so dass sich ein Durchprobieren häufig nicht umgehen lässt.

Alle Software-Suspend-Systeme setzen eine ausreichend große Swap-Partition voraus: Die doppelte Größe des Arbeitsspeichers sorgt üblicherweise für Sicherheit. Platzmangel mündet dabei glücklicherweise nicht in einem Absturz, sondern bricht lediglich den Suspend-Vorgang ab.

Software Suspend, das Original

Der Kernel 2.6 enthält swsusp zwar in der Standardausführung, leider schalten aber nicht alle Distributoren diese Option in ihren ausgelieferten Kerneln ein. Bei Suse und Mandrake ist sie aktiv, Debian- und Fedora-Nutzer müssen für diese Funktion zum Compiler greifen. Aktivieren Sie die Option CONFIG_SOFTWARE_SUSPEND unter Power management options (ACPI, APM) und kompilieren Sie einen neuen Kernel. Beachten Sie hierbei außerdem, dass swsusp ACPI benötigt.

Weiterhin statten Sie Ihren Bootloader zunächst mit entsprechenden Parametern aus. Wenn Sie, wie bei Suse und den meisten anderen Distributionen inzwischen üblich, Grub [4] benutzen, passen Sie dazu die Datei /boot/grub/menu.lst mit einem Texteditor an: An die kernel-Zeile Ihres üblicherweise verwendeten Kernels hängen Sie den Parameter resume=/dev/hdaX an, wobei Sie /dev/hdaX durch Ihre Swap-Partition ersetzen, beispielsweise /dev/hda6. Mit dem Befehl fdisk -l /dev/hda | grep swap erfahren Sie, welcher Wert auf Ihrem System zutrifft.

Zur Sicherheit kopieren Sie den kompletten Eintrag und erstellen daraus einen neuen Menüeintrag im Boot-Menü. Diesem geben Sie einen anderen Namen, beispielsweise durch das Anhängsel noresume in der title-Zeile. In der kernel-Zeile des neuen Eintrags löschen Sie den resume-Parameter wieder und fügen stattdessen pmdisk=off noresume noresume2 hinzu. Mit diesem Eintrag booten Sie Ihr System neu, falls es aus dem Suspend-Zustand nicht erfolgreich wieder startet. Die Datei /boot/grub/menu.lst sieht auf unserem Beispielsystem anschließend so aus:

title           SuSE Linux
kernel          (hd0,1)/boot/vmlinuz root=/dev/hda2 vga=791 resume=/dev/hda6
initrd          (hd0,1)/boot/initrd
title           SuSE Linux noresume
kernel          (hd0,1)/boot/vmlinuz root=/dev/hda2 vga=791 pmdisk=off noresume noresume2
initrd          (hd0,1)/boot/initrd

Beim nächsten Neustart dient nun der erste Eintrag, im Beispiel SuSE Linux zum normalen Starten und zum Wiederherstellen nach einem erfolgten Software Suspend. Der zweite Eintrag, hier SuSE Linux noresume dient als Rettungsanker für den Fall, dass das Wiederherstellen nicht funktioniert. Die Parameter pmdisk=off und noresume2 sind für swsusp eigentlich nicht nötig, sie erledigen das Gleiche wie noresume für die beiden anderen Software-Suspend-Systeme.

Unter Suse kümmert sich das Programm powersave um die Energiesparfunktionen, in der Voreinstellung jedoch nicht um swsusp. Um das zu ändern, ändern Sie in der Datei /etc/powersave.conf den Eintrag POWERSAVED_DISABLE_USER_SUSPEND von yes auf no.

Dann beginnt der erste Test. Für den Fall des Nichtgelingens empfiehlt sich zunächst der Single-User-Modus, den Sie über den Befehl init 1 erreichen. Nach Eingabe des root-Passworts versetzen Sie den Rechner in den Suspend-Zustand: Unter Suse starten Sie dazu den Powersave-Daemon mit /etc/init.d/powersaved start und geben anschließend powersave --suspend ein. Bei anderen Distributionen genügt die Befehlszeile sync && echo 4 > /proc/acpi/sleep.

Hat dieser Test funktioniert, tasten Sie sich weiter vor über den Multi-User-Modus zunächst ohne grafische Oberfläche, den Sie mit init 3 erreichen. Unter Debian verwenden Sie stattdessen init 2 und beenden den grafischen Login-Manager manuell mit /etc/init.d/kdm stop im Falle von KDM.

War auch dieser Versuch erfolgreich, probieren Sie es mit grafischer Oberfläche mit dem Befehl init 5, unter Debian starten Sie den Login-Manager wieder mit /etc/init.d/kdm start.

Läuft eine grafische Oberfläche ohne speicherintensive Anwendungen dauert der Wechsel in den Suspend-Modus zwischen 10 und 20 Sekunden, das Aufwachen 30 bis 40 Sekunden. Je nach Geschwindigkeit des Rechners und Auslastung des Arbeitsspeicher variieren diese Zeitrahmen.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Tiefgefroren
    Mit TuxOnIce frieren Sie produktive Sitzungen mit mehreren Anwendungen und geöffneten Dokumenten zuverlässig ein und können sie beim nächsten Rechnerstart im Handumdrehen wieder fortsetzen.
  • Suspend mit APM und ACPI
    Vor allem Laptop-Nutzer kennen das Problem: Um Strom zu sparen, wollen sie den Rechner nicht durchgehend laufen lassen, ihn aber auch nicht ständig ab- und wieder einschalten.
  • Entwickler diskutieren Suspend-Erweiterung für Kernel
    Die Kernel Entwickler diskutieren derzeit darüber, wie sie Linux-Systeme öfter in den Suspend-Schlaf schicken und auch einzelne Geräte in Energiesparmodus versetzen können.
  • Kernel-Updates helfen beim Aufwachen

    Mit Updates der stabilen Linux-Kernel auf 3.0.15 und 3.1.7 soll ein Fehler im Zusammenhang mit dem Suspend-Modus behoben sein.
  • Auf den Zahn gefühlt
    Solange alles funktioniert, sind die genauen Details der Hard- und Software oft nebensächlich. Bei der Analyse von Problemen und der Treibersuche erweisen sich Systeminformationen jedoch als wertvolle Helfer.
Kommentare

Infos zur Publikation

LU 11/2014: VIDEOS BEARBEITEN

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Artikelsuche
Erwin Ruitenberg, 09.10.2014 07:51, 1 Antworten
Ich habe seit einige Jahre ein Dugisub LinuxUser. Dann weiß ich das irgendwann ein bestimmtes Art...
Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 4 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...