Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
Editor - einen Editor öffnen
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 gab es auch beim älteren Industriestandard Advanced Power Management (APM). Dieser wurde mittlerweile vollständig durch ACPI abgelöst.
Nur bei sehr alten Rechnern kann im BIOS noch zwischen ACPI und APM gewählt werden. 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 vollständig verdrängt hat. Die Bedienungsanleitung des Mainboards liefert ggf. weitere hilfreiche Informationen.
In diesem Artikel werden insbesondere die ACPI-Schlafmodi:
Suspend To RAM (STR) oder "Stand By Suspend"
Suspend To Disk (STD) oder "Hibernate"
behandelt.
Suspend To RAM wird manchmal auch als Suspend To Memory (STM) bezeichnet. In den unterschiedlichen Desktopumgebungen, sogar in unterschiedlichen Versionen derselben Desktop-Umgebung, 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 - das Gerät wird komplett ausgeschaltet
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 Desktop-Umgebung.
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 ( =suspend) | Ruhezustand ( Hibernate) | |||
KDE (Kubuntu) | Ruhezustand (im Speicher) | Ruhezustand (auf Festplatte) / Tiefschlaf | |||
XFCE (Xubuntu) | Standby / Ruhezustand | Ruhezustand / Tiefschlaf | |||
MATE (Ubuntu MATE) | Bereitschaft ( =suspend) | Ruhezustand ( Hibernate) | |||
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 Stromverbrauch2, kein Datenverlust bei Stromunterbrechung | |||
Nachteile | höherer Stromverbrauch1, 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 optimierten Desktop-Rechnern kann der Verbrauch unter 10 W liegen.
2 Ein ATX-Netzteil verbraucht immer etwas (Praxisbeispiel: 1,5 W), solange der Netzteilschalter auf der Rückseite eines Desktoprechners eingeschaltet ist.
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 vor allem bei Laptops häufig verwendet. |
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 laufende 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 dann 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.ä. bei uswsusp) kann das Wiederaufwecken aus STD (fast) länger dauern, als das System komplett zu booten. Dies ist u.a. abhängig von 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 Tastatur, USB-Geräte oder per "Wake-up-on-LAN" wieder aufgeweckt werden kann. |
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-Image wiederhergestellt.
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 vorher u.a. Sicherungskopien angelegt und Skripte angepasst werden. Fragen hierzu bitte ggf. im Forum posten.
Weitere Details hierzu findet man ggf. in den Artikeln uswsusp und pm-utils.
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"
Bezüglich der Einstellung von Kernelparametern sei auf den ausführlichen Artikel Bootoptionen verwiesen.
Auf manchen Systemen ist der Kernelparameter acpi=off
gesetzt. Mit dieser Einstellung ist es jedoch sehr schwierig bzw. unmöglich, ACPI-Energiesparmodi zu nutzen. Welche ACPI-Kernelparameter konfiguriert sind bzw. alle Kernelparameter, die beim letzten Bootvorgang gesetzt wurden, kann man mit folgenden Befehlen in Erfahrung bringen:
Aktuelle Kernelparameter anzeigen:
cat /proc/cmdline
Einstellungen für GRUB 2 anzeigen:
grep -i acpi /etc/default/grub
Einstellungen für GRUB anzeigen (ältere Ubuntu-Versionen vor 9.10 oder Systeme, bei denen GRUB 2 durch GRUB ersetzt wurde:
grep -i acpi /boot/grub/menu.lst
Falls tatsächlich acpi=off
gesetzt ist, kann man die Energiesparmodi evtl. aktivieren, in dem man diese Bootoption einfach entfernt. Denn evtl. funktioniert das Booten mit dem aktuellen Kernel inzwischen mit ACPI und ggf. nicht ganz so radikalen Bootoptionen.
Bei einiger Hardware lässt sich der Wechsel von Energiesparmodi nicht immer fehlerfrei vom Linux-Kernel direkt steuern, der Wechsel funktioniert aber problemlos bei Verwendung der entsprechenden BIOS-Funktionen (sofern die Hardware noch über ein BIOS verfügt). Die Verwendung der BIOS-Funktionen kann mit folgenden Kernelparametern bzw. Bootoptionen aktiviert werden:
acpi_sleep=nonvs
- Einige Einstellungen nicht vom Kernel speichern und wiederherstellen lassen.
acpi_sleep=s3_bios,s3_mode
- Explizit BIOS-Funktionen für S3 nutzen. Mit der zweiten Option hinter dem Komma wird auch der Video-Modus über das BIOS initialisiert (nicht immer erforderlich).
An dieser Stelle nur ein kurzer Überblick. Weitere Details sind den genannten Artikeln zu entnehmen.
die pm-utils sind der "neue" Standard für das Power-Management unter Linux. Das Paket pm-utils beinhaltet (hauptsächlich) Skripte, die die eigentlichen SUSPEND- und RESUME-Vorgänge ausführen. Dabei können diese Skripte direkt oder indirekt aufgerufen werden. Die Skripte greifen ggf. auf uswsusp (siehe nächster Punkt) zurück, sofern uswsusp installiert ist und nicht explizit auf Kernelfunktionen zurückgegriffen werden soll.
uswsusp steht für User-SoftWare-Suspend und ist eine Suspend-Implementierung für UserSpace-Applikationen des Linux-Kernels ab Version 2.6.17 (funktioniert also ohne Root-Rechte). Auf manchen Systemen kann der Einsatz von uswsusp zum Erfolg führen, wenn Energiesparmodi über Kernelfunktionen nicht funktionieren.
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 8.04 und beim Betreten von Energiesparmodi aus den Menüs heraus) keine Auswirkung, da stattdessen standardmäßig Skripte von pm-utils aufgerufen werden. Eine Ausnahme liegt vor, wenn man die bei Ubuntu 12.04 noch vorhandenen Skripte /etc/acpi/sleep.sh oder /etc/acpi/hibernate.sh manuell aufruft (in neueren Ubuntu-Versionen sind diese nicht mehr enthalten).
STD (Hibernate) ist per Voreinstellung ab Ubuntu 11.10 nicht mehr aktiv. Das Computer-Modell muss inzwischen von Canonical zertifiziert oder validiert (siehe UbuntuFriendly) sein. Ist er das nicht, wird der Ruhezustand nicht unterstützt. Hintergründe dazu sind unter Disable hibernate option by default und auch Power zu finden.
Um diese Sperre zu umgehen, muss man mit Root-Rechten [1] die Datei /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla anlegen, mit einen Editor (wieder mit Root-Rechten) öffnen [2] und den nachfolgenden Inhalt einfügen:
# This file is intended to overwrite default entries from # /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla [Re-enable hibernate] 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. In Kubuntu sollte im Kickoff-Menü unter "Verlassen" der Tiefschlaf-Button vorhanden sein. Bei dieser Methode wird standardmäßig die Swap-Partition als Speicher für das RAM-Abbild benutzt. Wenn dort nicht genug Platz ist, bricht der Vorgang ab und der Rechner wacht sofort wieder auf. Wenn man den Ruhezustand nutzen will, benötigt man für die Swap-Partition 5% mehr als der Arbeitsspeicher groß ist.
Ab 13.10 wurde der indicator-session von upower auf logind umgestellt, deshalb muss man in /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla folgendes eintragen:
# This file is intended to overwrite default entries from # /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla [Re-enable hibernate in upower] Identity=unix-user:* Action=org.freedesktop.upower.hibernate ResultActive=yes [Re-enable hibernate in logind] Identity=unix-user:* Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions ResultActive=yes
Damit die Option erscheint, muss man unter Umständen noch folgendes im Terminal eingeben:
killall indicator-session-service
Es wurden weitere Aktionen nötig.
# This file is intended to overwrite default entries from # /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla [Re-enable hibernate in upower] Identity=unix-user:* Action=org.freedesktop.upower.hibernate ResultActive=yes [Re-enable hibernate in logind] Identity=unix-user:* Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit ResultActive=yes
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 Kernelfunktionen nicht wie gewünscht erfolgen und aus diesem Grund auf Userspace-Programme ausgewichen werden muss, macht man bei uswsusp weiter.
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 oder (oft ältere) Hardware, deren Energiesparmodi nur über ein (gepatchtes) BIOS korrekt umgeschaltet werden können (kein entsprechender Patch im Linux-Kernel).
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 bleibt). Je nach BIOS bleibt manchmal sogar der CPU-Lüfter aktiv. Manchmal kommt es stattdessen vor, dass das System zwar in den STR-Modus S3 wechselt, das Wiederaufwachen aber nicht funktioniert (der Bildschirm bliebt dunkel). An dieser Stelle muss man sich entscheiden, was man tun will:
Sofern der Computer noch ein BIOS besitzt, den Linux-Kernel anweisen, BIOS-Funktionen zu nutzen (siehe ACPI-Kernelparameter)
Die pm-utils nutzen, um die Energiesparmodi zu aktivieren. Dabei können folgende Maßnahmen helfen:
Module vor SUSPEND entladen und beim RESUME neu laden
Dienste vor SUSPEND beenden und beim RESUME neu starten
Variablen in den entsprechenden Konfigurationsdateien setzen
Proprietäre Treiber deaktivieren/deinstallieren
Kontrollieren, ob die Ursache eine fehlerhafte BIOS-Implementierung sein kann
Statt Kernelfunktionen Userspace-Programme nutzen, z.B. uswsusp
Alternativen wie z.B. TuxOnIce nutzen community/PowerManagement/Hibernate
Aus Sicherheitsgründen ist S4 nicht verfügbar, wenn Secure Boot aktiv ist. Secure Boot muss daher abgeschaltet werden, damit dieser Modus vom Kernel angeboten wird.
Diese Revision wurde am 20. Juli 2016 19:59 von noisefloor erstellt.