ubuntuusers.de

Hinweis: Dies ist ein statischer Snapshot unseres Wikis vom 25. März 2013 und kann daher nicht bearbeitet werden. Der aktuelle Artikel ist unter wiki.ubuntuusers.de zu finden.

Energiesparmodi mit ACPI

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Editor - einen Editor öffnen

./power.png In diesem Artikel werden Energiesparmodi behandelt, die zum Advanced Configuration and Power Management Interface (siehe ACPI und ACPI) gehören. Die Energiesparmodi werden oft als "Schlafmodi" bezeichnet. Energiesparmodi gibt es auch bei dem älteren Industriestandard Advanced Power Management. APM wurde mittlerweile fast vollständig von ACPI abgelöst.

Im BIOS kann bei älteren Rechnern zwischen unterschiedlichen ACPI- und APM-Einstellungen gewählt werden, die sich auf ACPI-Energiesparmodi auswirken (können). An dieser Stelle kann nicht auf BIOS-Einzelheiten eingegangen werden. Als Faustregel gilt, dass die Standard-BIOS-Einstellungen auf aktueller Hardware i.d.R. korrekt gesetzt sind, weil ACPI das ältere APM nahezu vollständig verdrängt hat. Die Bedienungsanleitung des Mainboards liefert ggf. weitere hilfreiche Informationen.

ACPI-SUSPEND-Modi allgemein

In diesem Artikel werden insbesondere die ACPI-Schlafmodi

  • Suspend To RAM (STR) und

  • Suspend To Disk (STD)

behandelt.

Begriffsklärung: STR, STD, ...

Suspend To RAM wird manchmal auch als Suspend To Memory (STM) bezeichnet. In den unterschiedlichen Desktopumgebungen, sogar in unterschiedlichen Versionen derselben Desktopumgebung, werden unterschiedliche Begriffe für STR und STD verwendet. Dazu nachfolgend eine Übersicht aller verwendeten Begriffe, die zeigen sollte, dass ein und derselbe Begriff zwei unterschiedliche Energieschlafmodi bezeichnet. Daher muss man genau hinschauen und im Zweifelsfall die folgende Faustregel anwenden:

  • der "ruhigere" der beiden Energieschlafmodi ist STD

  • der "flüchtigere" der beiden ist STR

Was damit genau gemeint ist, wird klar, wenn man die Tabelle weiter unten anschaut. Falls mehrere Bezeichnungen eines und desselben ACPI-Schlafmodus in unterschiedlichen Versionen derselben (Desktop-)Umgebung verwendet werden, so sind diese so angeordnet, dass links die "aktuellere" bzw. die "aktuellste" Bezeichnung ist. Weiter rechts findet man ggf. die Bezeichnung(en) aus früheren Versionen dieser Desktopumgebung.

Die folgende Tabelle fasst die aktuellen Bezeichnungen in der jeweiligen Desktopumgebung und die wichtigsten Eigenschaften der beiden Schlafmodi STR und STD zusammen. Zum Vergleich sind auch die aus der Windows-Welt geläufigen sowie weiteren Bezeichnungen enthalten:

Energiesparmodi
Technische Bezeichnung S3 = Suspend-To-RAM (STR) S4 = Suspend-To-Disk (STD)
GNOME (Ubuntu) Bereitschaft ( {en} =suspend) Ruhezustand ( Hibernate)
KDE (Kubuntu) Ruhezustand (im Speicher) Ruhezustand (auf Festplatte) / Tiefschlaf
XFCE (Xubuntu) Standby / Ruhezustand Ruhezustand / Tiefschlaf
Shell Skripte und Konfigurationsdateien STANDBY HIBERNATE, HIBERNATION
Windows Standbymodus Ruhezustand
Weitere Begriffe Bereitschaftsmodus, Schlafmodus, Suspend-To-Memory (STM) Hibernation
Vorteile Computer erwacht schneller niedrigerer bzw. kein*2 Stromverbrauch, kein Datenverlust bei Stromunterbrechung
Nachteile höherer Stromverbrauch *1, Datenverlust bei Stromunterbrechung Computer erwacht langsamer
Grund Computer bleibt eingeschaltet, Daten sind noch im Arbeitsspeicher Computer wird ausgeschaltet, Daten werden vorher aus dem Arbeitsspeicher auf die Festplatte gesichert

*1 Notebooks sind generell sparsam in Standby, aber auch bei Desktop-Rechnern kann der Verbrauch sehr wohl unter 3 W liegen.

*2 Das Netzteil verbraucht aber immer etwas (Praxisbeispiel: 1,5 W) solange der Netzteilschalter auf der Rückseite eines Desktoprechners eingeschaltet ist.

ACPI-SUSPEND-Modi: S0 S1 S2 S3 S4 S5

Laut ACPI-Standard existieren 6 Energiesparmodi.

Modus Beschreibung
S0 Das System ist zu 100% einsatzbereit.
S1 "Power On Suspend" – Der „hungrigste“ Energiesparmodus. Die CPU ist angehalten. Die CPU und RAM stehen unter Spannung. Diesen Energiesparmodus unterstützen nahezu alle Maschinen.
S2 "Stand By" – Die CPU ist ausgeschaltet. Der Arbeitsspeicher steht unter Spannung. Dieser Energiesparmodus wird selten verwendet.
S3 "Stand By Suspend" (Suspend To RAM, STR) – Der Arbeitsspeicher ist nahezu die einzige Komponente, die mit Spannung versorgt wird. Der aktuelle Zustand des Systems wird im Arbeitsspeicher aufrecht erhalten. Der RAM-Inhalt bleibt erhalten, solange das System unter Spannung (Laptop: Akku oder Netz; Desktop: Netz) steht. Das System kann aus STR sehr schnell (im Sekundenbereich) wieder aufgeweckt werden. Nach dem Wiederaufwecken wird der gespeicherte Zustand des Betriebssystems, aller Applikationen und geöffneter Dokumente wiederhergestellt, sodass die Arbeit an exakt derselben Stelle nahezu unmittelbar fortgesetzt werden kann.
Dieser Energiesparmodus wird v.a. bei Laptops häufig verwendet.
Noch mehr Details zu diesem Thema sind unter S2ram {de} oder S2ram {en} nachzulesen.
S4 "Hibernate" (Suspend To Disk, STD) – der „Aktuelle Gesamtzustand des Systems“ bleibt erhalten. Der gesamte Inhalt des Arbeitsspeichers wird auf nicht flüchtigen Speichermedien (i.d.R. auf einer Festplatte) gespeichert. Das System kann aus STD i.d.R. schneller wieder aufgeweckt werden, als das System zum vollständigen Neustart benötigt. Dieser Vorteil wird (noch) deutlicher, wenn die laufenden Applikationen vor dem Übergang zu STD nicht beendet werden. Ähnlich zu S3 wird nach dem Wiederaufwecken des Rechners der gespeicherte Zustand des Betriebssystems, aller Applikationen und geöffneter Dokumente wiederhergestellt, sodass die Arbeit an exakt derselben Stelle fortgesetzt werden kann. Der Unterschied zu S3 besteht darin, dass dies eben NICHT "nahezu unmittelbar" sondern mit einer etwas größeren Verzögerung erreicht wird. Diesem Nachteil steht der Vorteil gegenüber, dass ein Spannungsverlust (zum Beispiel wenn der Laptop-Akku leer läuft oder wenn das Gerät vom Netz getrennt wird) kein Problem darstellt.
Unter Linux wird standardmäßig das "Suspend To Disk-Image" auf die SWAP-Partition geschrieben. Allerdings kann man auch eine separate Partition hierfür verwenden. Nachteilig dabei ist der Umstand, dass diese Partition nur für STD verwendet werden kann. Verwendet man, so wie vorgesehen, die SWAP-Partition für STD, so wird kein Plattenplatz "verschwendet".
Auf Systemen mit (sehr) viel RAM und abhängig von der STD-Konfiguration (COMPRESS_IMAGE=Y|N o.ä. unter uswsusp) kann das Wiederaufwecken aus STD (fast) länger dauern, als das System komplett zu booten. Dies ist u.a. abhängig von den Diensten, die beim Booten gestartet werden. Aus diesem Grund wird STD vorwiegend auf Systemen mit wenig RAM oder langsamen CPUs, sowie häufiger auf Desktop-PCs als auf Notebooks verwendet.
S5 "Soft Off" – manche Komponenten bleiben unter Spannung, sodass der Rechner zum Beispiel über Tatstatur, USB-Geräte oder per "Wake-up-on-LAN" wieder aufgeweckt werden kann.

Sonderfall: SUSPEND to BOTH

Eine Sonderform der Energiesparmodi (unter Linux) besteht aus der Kombination von STR (S3) und STD (S4). Dieser Misch-Energiesparmodus wird Suspend To Both (STB) oder auch SUSPEND-HYBRID genannt. Dabei wird der Inhalt des Arbeitsspeichers zuerst gemäß S4 auf die SUSPEND-Partition geschrieben. Das System betritt daraufhin den Energiesparmodus S3, und der Arbeitsspeicher wird weiterhin mit Spannung versorgt. Nach dem Wiederaufwecken aus S3 ist das System sofort wieder einsatzbereit, das STD-Image wird verworfen. Läuft der Akku leer, oder wird das System vom Netz getrennt, so ist der Inhalt des Arbeitsspeichers verloren. Allerdings wird das System nach dem Neustart erkennen, dass es aus S4 wiederaufgeweckt wurde. Daraufhin wird der Systemzustand aus dem STD-Wiederhergestellt.

Achtung!

Dieser Misch-Energiesparmodus ist noch experimentell und wird aus diesem Grund noch nicht standardmäßig in Menüs angeboten. Testen kann man STB nach einigen vorbereitenden Maßnahmen (Backup, viel Zeit, ...) durch manuelles Aufrufen entsprechender Skripte. Unter Umständen müssen davor Sicherungskopien angelegt und die Skripte angepasst werden, ... Bitte hierzu ggf. im Forum posten.

Weitere Details hierzu findet man ggf. in uswsusp und pm-utils.

S3 im BIOS aktivieren

S4 funktioniert (nahezu) unabhängig von den BIOS-Einstellungen. Bei S3 kann es vorkommen, dass durch fehlerhafte BIOS-Einstellungen S3 nicht möglich ist. Aufgrund der BIOS-Vielfalt kann nur die Faustregel genannt werden, dass die Aktivierung einer BIOS-Option mit folgenden Zeichenketten S3 ermöglichen wird:

  • S3

  • STR

  • Suspend to RAM

  • Suspend to RAM (S3) enabled

S3 wird nicht funktionieren, wenn eine BIOS-Option aktiviert ist, bei der eine der folgenden Zeichenketten vorkommt:

  • S1

  • POS

  • Power On Suspend

  • Suspend to RAM (S3) disabled

ACPI-Kernelparameter

Auf manchen Systemen ist der Kernelparameter acpi=off gesetzt. Mit dieser Einstellung ist es sehr schwierig bzw. unmöglich Energiesparmodi zu nutzen, bzw. es funktioniert nur über steinige Umwege. Ob ACPI-Kernelparameter in der menu.lst gesetzt sind, bzw. beim letzten Bootvorgang gesetzt waren, kann man mit diesen zwei Befehlen in Erfahrung bringen:

grep -i acpi /boot/grub/menu.lst
cat /proc/cmdline 

falls der erste der beiden Befehle nicht funktioniert, muss stattdessen folgender benutzt werden:

grep -i acpi /etc/default/grub 

In diesem Fall muss man die Fehlerursache beheben, damit man ohne acpi=off booten kann.

SUSPEND-Tools (ACPI) unter Ubuntu Linux

An dieser Stelle wird nur ein Überblick gegeben. Die Einrichtung von STR und STD ist unter pm-utils beschrieben, weil pm-utils das Standard-Tool für die Energieverwaltung ist.

pm-utils

pm-utils ist der "neue" Standard für PowerManagement unter Linux und in Ubuntu enthalten. Das Paket pm-utils beinhaltet (hauptsächlich) Skripte, die SUSPEND- und RESUME-Vorgänge im Auftrag von HAL ausführen. Dabei können die pm-utils-Skripte direkt oder indirekt (vom gnome-power-manager unter GNOME, bzw. von kpowersave unter KDE) aufgerufen werden. Die pm-utils-Skripte greifen ggf. auf uswsusp zurück, sofern uswsusp installiert ist und nicht explizit auf Kernel-Methoden zurückgegriffen werden sollte. Weitere Details zu diesem Thema sowie die Einrichtung von SUSPEND & RESUME mit pm-utils sind unter pm-utils nachzulesen.

uswsusp

uswsusp steht für User-SoftWare-Suspend und ist Bestandteil der Ubuntu-Distribution. uswsusp ist eine Suspend-Implementierung für UserSpace-Applikationen im Linux-Kernel ab 2.6.17. Auf manchen Systemen kann der Einsatz von uswsusp zum Erfolg führen, wenn Energiesparmodi über Kernelspace nicht funktionieren. Weitere Details zu diesem Thema sowie die Einrichtung von SUSPEND & RESUME mit uswsusp sind unter uswsusp nachzulesen.

acpi-support

Die Einrichtung und Verwendung von SUSPEND/RESUME mit Hilfe von acpi-support ist unter Schlafmodi beschrieben. Das Paket acpi-support installiert u.a. die Datei /etc/default/acpi-support sowie den Ordner /etc/acpi/ samt Inhalt. Die Datei /etc/default/acpi-support hat (zumindest seit Ubuntu Hardy und beim Betreten von Energiesparmodi aus den Menüs heraus) keine Auswirkung, da dabei standardmäßig Skripte aus dem Paket pm-utils aufgerufen werden. Eine Ausnahme liegt vor, wenn man die Skripte /etc/acpi/sleep.sh oder /etc/acpi/hibernate.sh manuell aufruft.

Besonderheiten ab Ubuntu 11.10

STD (Hibernate) ist per Voreinstellung ab Ubuntu 11.10 nicht mehr aktiv. Hintergründe dazu sind unter Disable hibernate option by default und auch Power zu finden.

Der Computer muss von Canonical zertifiziert {en} oder validiert (siehe UbuntuFriendly) sein. Ist er das nicht, wird der Ruhezustand nicht unterstützt.

Um diese Sperre zu umgehen, muss man mit Root-Rechten die Datei /etc/polkit-1/localauthority/50-local.d/com.ubuntu.desktop.pkla anlegen, mit einen Editor mit Root-Rechten öffnen[1] und den nachfolgenden Inhalt einfügen:

[Re-enable hibernate by default]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

Danach startet man den Rechner neu. Nach dem Neustart sollte der Ruhezustand auswählbar sein – was nicht heißt, dass er auch funktionieren muss.

Quelle: How to modify policykit to allow hibernation in upower?

Kubuntu

Auch in Kubuntu ist der Tiefschlaf ist standardmäßig abgeschaltet. Um ihn zu aktivieren, wird die Datei /var/lib/polkit-1/localauthority/50-local.d/hibernate.pkla in einem Editor mit Root-Rechten geöffnet. Darin wird der folgende Text eingefügt, um den Tiefschlaf zu aktivieren:

[Re-enable Hibernate]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

Wenn danach der PC neu gestartet wird, sollte im Kickoff-Menü unter "Verlassen" der Tiefschlaf-Button vorhanden sein.

Einrichtung von SUSPEND & RESUME

  • Woher weiß der Kernel, wohin der Inhalt des RAMs bei STD geschrieben werden sollte?

  • Woher weiß der Kernel, woher der Inhalt gelesen werden sollte, der beim RESUME in den RAM geschrieben werden sollte?

  • Wie richte ich SUSPEND & RESUME ein?

  • Was tun, wenn SUSPEND und/oder RESUME nicht mehr funktionieren?

Die Antworten auf diese Fragen findet man unter pm-utils. Für den Fall, dass SUSPEND & RESUME über Kernelspace nicht funktionieren und aus diesem Grund auf Userspace ausgewichen werden muss, macht man bei uswsusp weiter.

Es klappt nicht immer

Damit die ACPI-Energiesparmodi funktionieren, müssen alle Hardwarebauteile und deren Treiber ACPI-konform und ACPI-fähig sein, sonst funktionieren manche oder gar alle Schlafmodi nicht. Denkbare Ursache hierfür sind schlechte Treiber bzw. fehlerhafte BIOS-Implementierungen. So kann es zum Beispiel passieren, dass S1 auf Anhieb klappt, S3 aber nicht funktionieren will. Infolgedessen läuft immer der Netzteillüfter weiter (weil das Netzteil eingeschaltet bleiben muss). Je nach BIOS bleibt sogar der CPU-Lüfter aktiv. Manchmal kommt es auch vor, dass das System zwar in den STR-Modus S3 wechselt, das Wiederaufwachen aber nicht funktioniert. An dieser Stelle muss man sich entscheiden, was man tun will:

  • Energiesparmodus zum Laufen bringen, indem

    • Module vor SUSPEND entladen und während RESUME geladen werden,

    • Dienste vor SUSPEND beendet und während RESUME gestartet werden,

    • entsprechende Variablen in Konfigurationsdateien gesetzt werden,

    • proprietäre Treiber deaktivieren/entfernen,

    • etc.

  • statt Kernelspace den Userspace nutzen - z.B. über uswsusp

  • Kontrollieren, ob die Ursache in einer fehlerhaften BIOS-Implementierung liegt.

  • ggf. "rechtzeitig" aufgeben und auf APM umstellen, weil es eben manchmal mit ACPI nicht klappt

ubuntuusers.local › WikiEnergiesparmodi mit ACPI