Aus Linux-Magazin 11/2007

Aktueller Überblick über freie Software und ihre Macher

Abbildung 2: Vor dem Suspend schaltet das System alle Geräte nacheinander ab, beim Aufwachen wieder an. Die Reihenfolge kann dabei von entscheidender Bedeutung sein.

Der Klimabericht der Vereinten Nationen mahnt zum Stromsparen – angesichts ihres stetig wachsenden Verbrauchs gilt dies auch für die IT. Über Funktionsweise, Probleme und Zukunftspläne mit Stromsparmodi unter Linux berichtet ein neuer Statusbericht zu Suspend und Hibernate.

    Abbildung 1: Computer beschäftigen weltweit an die 15 Großkraftwerke. Energiesparmodi entlasten den Stromzähler.    (Bild: © scx.hu)

Abbildung 1: Computer beschäftigen weltweit an die 15 Großkraftwerke. Energiesparmodi entlasten den Stromzähler. (Bild: © scx.hu)

Gigantische Popkonzerte auf der ganzen Welt, ein besorgter Ex-Vizepräsident der USA, der Klimabericht der Vereinten Nationen – alle mahnen zum Umweltschutz. Dazu zählt auch das Energiesparen. Für Computerbesitzer gibt es viele Argumente, Strom zu sparen: Umweltbewusstsein, monetäre Sparsamkeit oder dass der Laptop unterwegs möglichst lange einsatzbereit bleiben soll. Linux gilt in puncto Energieverwaltung leider nicht gerade als vorbildlich. Neben zu hohem Verbrauch im laufenden Betrieb funktionieren auch die Standby-Funktionen nicht immer perfekt.

Energie erhalten

Im Linux-Kernel kümmert sich Rafael J. Wysocki maßgeblich um die Weiterentwicklung des Subsystems Swsusp, das für die Ruhezustände mit den Bezeichnungen Suspend und Hibernate verantwortlich zeichnet. Er hat jetzt einen Bericht verfasst, um die Benutzergemeinde über die Funktionsweise dieser Kernelteile und die Entwicklungspläne für die Zukunft auf den aktuellen Stand zu bringen [1].

Schon vor einem Jahr schrieb Wysocki einen ähnlichen Report [2]. Von seiner Absicht, drei bis vier Monate später den vorliegenden Bericht nur zu akutalisieren, rückte er ab, weil das Swsusp-Subsystem zu tief greifende Änderungen erfahren hat.

Seit einigen Jahren kümmert sich bei praktisch allen PCs die zunächst betriebssystemunabhängige ACPI-Schnittstelle ([3], Advanced Configuration and Power Interface) unter anderem um die Energiesparfunktionen. Zu den Aufgaben des von den Firmen Hewlett-Packard, Intel, Microsoft, Phoenix und Toshiba entwickelten Standards zählen außerdem die Konfiguration angeschlossener Hardware sowie die Kontrolle der Systemtemperatur und zugehöriger Komponenten wie Ventilatoren.

Es gibt verschiedene Ruhezustände, die einzelne Systeme wiederum unterschiedlich verwirklichen. Im als Suspend to RAM bezeichneten Modus schalten sich alle Komponenten des Computers mit Ausnahme des Arbeitsspeichers ab, denn darin landen die Inhalte der Prozessorregister und der zum Wiederanlauf nötigen Statusinformationen.

Allerdings benötigt der Speicher dazu naturgemäß weiterhin Strom, trotzdem fällt der Verbrauch im Vergleich zu einem vollständig laufenden System deutlich geringer aus. Eine Variante dieses Rechnerzustands ist das so genannte Stopgrant, bei dem der Prozessor eingeschaltet bleibt und somit die Daten seiner Register erhält, aber keine Instruktionen mehr entgegennimmt.

Als dritte Alternative ist Suspend to Disk zu nennen. Dabei landen alle Daten auf der Festplatte und der Computer schaltet sich vollständig aus. Beim erneuten Anschalten liest das System das Image ein, um seinen vorherigen Zustand wiederherzustellen.

Fachvokabular

Der ACPI-Standard definiert die beschriebenen Ruhemodi als durchnummerierte Schlafzustände. Suspend to RAM trägt die Ziffer 4 (S4 für State 4), Suspend to Disk die 3 (S3 für State 3), Stopgrant firmiert unter 1. Die Namen für diese Zustände variieren jedoch. Die Windows-Oberfläche nennt Suspend to Disk auf Deutsch Ruhezustand und in der englischen Version Hibernation, der Standby-Modus der Windows-Welt entspricht je nach Bios-Konfiguration entweder Suspend to RAM oder Stopgrant.

Bei einem Linux-Desktop gibt es naturgemäß je nach verwendeter Desktopumgebung unterschiedliche Bezeichnungen. Im Kernel-Vokabular entspricht S1 der Bezeichnung Standby, S3 heißt Suspend und S4 Hibernation.

Stolpersteine

Eigentlich sollte ACPI alles ganz einfach machen, indem es dem Betriebssystem den größten Teil der Arbeit abnimmt. In der Idealvorstellung nehmen alle mit ACPI ausgestatteten Systeme unabhängig dieselben Instruktionen entgegen und versetzen die einzelnen Komponenten daraufhin in den vom Benutzer gewünschten Zustand. Dabei spielt es keine Rolle, welches Betriebssystem die Anweisungen übermittelt.

In der Praxis verhindern jedoch verschiedene Unwägbarkeiten, dass das Stromsparen reibungslos abläuft. Ein Problem besteht in Mainboards, deren Bios das ACPI nicht korrekt umsetzt. Offenbar genügt vielen Herstellern, dass es unter Windows funktioniert. In einigen Fällen nehmen eigene Treiber eine Übersetzerrolle ein, damit das Betriebssystem trotz fehlerhafter ACPI-Implementation Schlafmodi auslösen kann.

Für Linux gibt es natürlich keine entsprechenden Treiber; das Konzept, eine mangelhafte Implementation durch weitere Software zu korrigieren, kann Open-Source-Entwickler und -Benutzer ohnehin schwer überzeugen. Die Kernelentwickler haben daher mit Software Suspend ein eigenes Verfahren für das Einfrieren des Systems entworfen, das größtenteils unabhängig von ACPI und Motherboard arbeitet: Bei Software Suspend bleibt es den Kernelmodulen überlassen, die von ihnen verwalteten Geräte beim Aufwachen wieder in den vorigen Zustand zu versetzen.

Allerdings geht das Problem insbesondere im Falle von Suspend to RAM weit über das Mainboard selbst hinaus. Das Betriebssystem muss dabei den Zustand aller Komponenten inklusive Prozessor, Grafikkarte, USB- und anderer Hardware sowie seinen eigenen, den der Gerätetreiber und des Bios ermitteln, damit ein Abbild des Systemzustands für die spätere Wiederherstellung im Arbeitsspeicher verbleibt. Nur wenn alle Gerätetreiber das Einschlafen und Aufwecken der jeweiligen Hardware fehlerlos umsetzen (Abbildung 2), gelingt die Wiederbelebung des Systems.

Abbildung 2: Vor dem Suspend schaltet das System alle Geräte nacheinander ab, beim Aufwachen wieder an. Die Reihenfolge kann dabei von entscheidender Bedeutung sein.

Abbildung 2: Vor dem Suspend schaltet das System alle Geräte nacheinander ab, beim Aufwachen wieder an. Die Reihenfolge kann dabei von entscheidender Bedeutung sein.

Für den derzeitigen Zustand der Energiesparmodi unter Linux sieht die Bilanz nicht allzu positiv aus, obwohl sich in den letzten Jahren viel gebessert hat. Nach wie vor spielen nicht alle Hardwaretreiber mit. Ob alles klappt, hängt in der Praxis also von der jeweiligen Hardware ab. Besonders bei Laptops, bei denen geringer Stromverbrauch besonders wichtig ist, halten sich glücklicherweise viele Hersteller an die Standards, wodurch die Chance, dass die verschiedenen Suspend-Modi funktionieren, recht hoch ist. Suspend to Disk unterstützen ohnehin die meisten Systeme, weil die Anforderungen an die eingebauten Komponenten und ihre Treiber geringer sind.

Zukunft

Wysocki sieht das Hauptproblem des Swsusp-Subsystems im Umgang mit Geräten und ihren Treibern, denn wie beschrieben ist es nicht Aufgabe des Betriebssystems, durch Fehler in der ACPI-Implementation ausgelöste Probleme zu beheben. Als nächsten Schritt zur Verbesserung sieht er es als notwendig an, Hibernation und Suspend, die bisher die gleichen Systemcalls nutzen, voneinander zu entkoppeln.

Außerdem gibt es Probleme beim Einfrieren und Fortführen von bestimmten Tasks. Wenn sie sich nicht stoppen lassen, bricht der Hibernate- oder Suspend-Vorgang ab. Die Alternative wäre, das System trotz der Probleme in den Ruhezustand zu fahren; allerdings brächte dieses Vorgehen das Risiko mit sich, dass Hardwaregeräte nach dem Aufwachen nicht mehr funktionieren, weshalb Wysocki es als kleineres Übel ansieht, den Ruhemodus in solchen Fällen ganz zu verhindern. Eine richtige Lösung ist das offensichtlich nicht, sodass Wysocki hier ebenfalls in absehbarer Zeit ansetzen möchte.

Ein weiteres Projekt namens Tux on Ice [4] unter der Leitung von Nigel Cunningham hat sich derselben Aufgaben verschrieben, gehört allerdings nicht zum offiziellen Linux-Kernel. Das kürzlich von Suspend2 umbenannte Paket enthält einige zusätzliche Features wie das Speichern der Systemzustands-Abbildung in Dateien statt in Swap-Partitionen und das Verschlüsselten der Images.

Geflügelrisotto

Stört bei Computern ein zu großer Energieverbrauch, so geht es bei der Ernährung oft darum, eine zu große Energiezufuhr zu vermeiden. Fettarmes Huhn ist ein guter Kompromiss für jene, die auf überflüssige Kalorien verzichten möchten, aber sich dennoch nicht mit Gemüse zufrieden geben.

Die Zutaten für ein würziges Geflügelrisotto: 200g Hähnchenbrust, eine Dose Erbsen, 100g Parmesankäse, zum Würzen Liebstöckel und Kräuter der Provence, Pfeffer und Salz, eine Zwiebel, eine Knoblauchzehe, 300g Naturreis, 150g Champignons, vier mittelgroße Tomaten, eine gelbe Paprikaschote, ein Liter Gemüsebrühe, Salz, Pfeffer.

Zur Zubereitung Zwiebel und Knoblauch hacken und im Öl glasig dünsten. Reis dazustreuen und unter Rühren kurz anbraten. Die Champignons halbieren, die Tomaten häuten und in Stücke schneiden, die Paprika würfeln. Das Gemüse zum Reis in die Pfanne geben und mit Gemüsebrühe aufgießen. Würzen und zugedeckt 20 Minuten köcheln lassen. Die Hähnchenbrust schneiden und mit den Erbsen nach der Hälfte der Garzeit unter das Risotto mischen. (pkr)

Infos

[1] Statusbericht zu Suspend und Hibernation 2007: [http://article.gmane.org/gmane.linux.power-management.general/7701]

[2] Statusbericht von 2006: [http://lkml.org/lkml/2006/7/25/105]

[3] ACPI: [http://www.acpi.info]

[4] Tux on Ice: [http://www.tuxonice.net]

LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben