36 Energieverwaltung #
Die Energieverwaltung ist insbesondere bei Notebook-Computern von großer Wichtigkeit, sie ist jedoch auch für andere Systeme sinnvoll. ACPI (Advanced Configuration & Power Interface) ist auf allen modernen Computern (Laptops, Desktops, Server) verfügbar. Für Energieverwaltungstechnologien sind geeignete Hardware- und BIOS-Routinen erforderlich. Die meisten Notebooks und modernen Desktops und Server erfüllen diese Anforderungen. Es ist außerdem möglich, die CPU-Frequenzskalierung zu steuern, um Energie zu sparen oder den Geräuschpegel zu senken.
36.1 Energiesparfunktionen #
Energiesparfunktionen sind nicht nur für die mobile Verwendung von Notebooks von Bedeutung, sondern auch für Desktop-Systeme. Die Hauptfunktionen und ihre Verwendung im ACPI sind:
- Standby
Nicht unterstützt.
- Suspend (in Arbeitsspeicher)
In diesem Modus wird der gesamte Systemstatus in den RAM geschrieben. Anschließend wird das gesamte System mit Ausnahme des RAM in den Ruhezustand versetzt. In diesem Zustand verbraucht der Computer sehr wenig Energie. Der Vorteil dieses Zustands besteht darin, dass innerhalb weniger Sekunden die Arbeit nahtlos wieder aufgenommen werden kann, ohne dass ein Booten des Systems oder ein Neustart der Anwendungen erforderlich ist. Diese Funktion entspricht ACPI-Zustand
S3
.- Tiefschlaf (Suspend to Disk)
In diesem Betriebsmodus wird der gesamte Systemstatus auf die Festplatte geschrieben und das System wird von der Energieversorgung getrennt. Es muss eine Swap-Partition vorhanden sein, die mindestens die Größe des RAM hat, damit alle aktiven Daten geschrieben werden können. Die Reaktivierung von diesem Zustand dauert ungefähr 30 bis 90 Sekunden. Der Zustand vor dem Suspend-Vorgang wird wiederhergestellt. Einige Hersteller bieten Hybridvarianten dieses Modus an, beispielsweise RediSafe bei IBM Thinkpads. Der entsprechende ACPI-Zustand ist
S4
. In Linux wird „suspend to disk“ über Kernel-Routinen durchgeführt, die von ACPI unabhängig sind.Anmerkung: Geänderte UUID für Swap-Partitionen bei Formatierung übermkswap
Falls möglich, sollten bestehende Swap-Partitionen nicht mit
mkswap
neu formatiert werden. Durch die Neuformatierung mitmkswap
ändert sich der UUID-Wert der Swap-Partition. Führen Sie die Neuformatierung entweder über YaST aus (/etc/fstab
wird dabei aktualisiert) oder passen Sie/etc/fstab
manuell an.- Akkuüberwachung
ACPI überprüft den Akkuladestatus und stellt entsprechende Informationen bereit. Außerdem koordiniert es die Aktionen, die beim Erreichen eines kritischen Ladestatus durchzuführen sind.
- Automatisches Ausschalten
Nach dem Herunterfahren wird der Computer ausgeschaltet. Dies ist besonders wichtig, wenn der Computer automatisch heruntergefahren wird, kurz bevor der Akku leer ist.
- Steuerung der Prozessorgeschwindigkeit
In Verbindung mit der CPU gibt es drei Möglichkeiten, Energie zu sparen: Frequenz- und Spannungsskalierung (auch PowerNow! oder Speedstep), Drosselung und Versetzen des Prozessors in den Ruhezustand (C-Status). Je nach Betriebsmodus des Computers können diese Methoden auch kombiniert werden.
36.2 Advanced Configuration & Power Interface (ACPI) #
Die ACPI (erweiterte Konfigurations- und Energieschnittstelle) wurde entwickelt, um dem Betriebssystem die Einrichtung und Steuerung der einzelnen Hardware-Komponenten zu ermöglichen. ACPI löst sowohl Power-Management Plug and Play (PnP) als auch Advanced Power Management (APM) ab. Diese Schnittstelle bietet Informationen zu Akku, Netzteil, Temperatur, Ventilator und Systemereignissen wie „Deckel schließen“ oder „Akku-Ladezustand niedrig“.
Das BIOS bietet Tabellen mit Informationen zu den einzelnen Komponenten und Hardware-Zugriffsmethoden. Das Betriebssystem verwendet diese Informationen für Aufgaben wie das Zuweisen von Interrupts oder das Aktivieren bzw. Deaktivieren von Komponenten. Da das Betriebssystem die in BIOS gespeicherten Befehle ausführt, hängt die Funktionalität von der BIOS-Implementierung ab. Die Tabellen, die ACPI erkennen und laden kann, werden in journald gemeldet. Weitere Informationen zum Abrufen der Protokollmeldungen im Journal finden Sie unter Kapitel 21, journalctl
: Abfragen des systemd
-Journals. Weitere Informationen zur Fehlersuche bei ACPI-Problemen finden Sie in Abschnitt 36.2.2, „Fehlersuche“.
36.2.1 Steuern der CPU-Leistung #
Mit der CPU sind Energieeinsparungen auf drei verschiedene Weisen möglich:
Frequenz- und Spannungsskalierung
Drosseln der Taktfrequenz (T-Status)
Versetzen des Prozessors in den Ruhezustand (C-Status)
Je nach Betriebsmodus des Computers können diese Methoden auch kombiniert werden. Energiesparen bedeutet auch, dass sich das System weniger erhitzt und die Ventilatoren seltener in Betrieb sind.
Frequenzskalierung und Drosselung sind nur relevant, wenn der Prozessor belegt ist, da der sparsamste C-Zustand ohnehin gilt, wenn sich der Prozessor im Wartezustand befindet. Wenn die CPU belegt ist, ist die Frequenzskalierung die empfohlene Energiesparmethode. Häufig arbeitet der Prozessor nur im Teillast-Betrieb. In diesem Fall kann er mit einer niedrigeren Frequenz betrieben werden. Es empfiehlt sich, die dynamische Frequenzskalierung mit Steuerung durch den On-Demand-Governor im Kernel zu verwenden.
Drosselung sollte nur als letzter Ausweg verwendet werden, um die Betriebsdauer des Akkus trotz hoher Systemlast zu verlängern. Bestimmte Systeme arbeiten bei zu hoher Drosselung jedoch nicht reibungslos. Außerdem hat die CPU-Drosselung keinen Sinn, wenn die CPU kaum ausgelastet ist.
Detaillierte Informationen hierzu finden Sie im Chapter 12, Power management.
36.2.2 Fehlersuche #
Es gibt zwei verschiedene Arten von Problemen. Einerseits kann der ACPI-Code des Kernel Fehler enthalten, die nicht rechtzeitig erkannt wurden. In diesem Fall wird eine Lösung zum Herunterladen bereitgestellt. Häufiger werden die Probleme vom BIOS verursacht. Manchmal werden Abweichungen von der ACPI-Spezifikation absichtlich in das BIOS integriert, um Fehler in der ACPI-Implementierung in anderen weit verbreiteten Betriebssystemen zu umgehen. Hardware-Komponenten, die ernsthafte Fehler in der ACPI-Implementierung aufweisen, sind in einer Sperrliste festgehalten, die verhindert, dass der Linux-Kernel ACPI für die betreffenden Komponenten verwendet.
Der erste Schritt, der bei Problemen unternommen werden sollte, ist die Aktualisierung des BIOS. Wenn der Computer sich nicht booten lässt, kann eventuell einer der folgenden Bootparameter Abhilfe schaffen:
- pci=noacpi
ACPI nicht zum Konfigurieren der PCI-Geräte verwenden.
- acpi=ht
Nur eine einfache Ressourcenkonfiguration durchführen. ACPI nicht für andere Zwecke verwenden.
- acpi=off
ACPI deaktivieren.
Einige neuere Computer (insbesondere SMP- und AMD64-Systeme) benötigen ACPI zur korrekten Konfiguration der Hardware. Bei diesen Computern kann die Deaktivierung von ACPI zu Problemen führen.
Manchmal ist der Computer durch Hardware gestört, die über USB oder FireWire angeschlossen ist. Wenn ein Computer nicht hochfährt, stecken Sie nicht benötigte Hardware aus und versuchen Sie es erneut.
Überwachen Sie nach dem Booten die Bootmeldungen des Systems mit dem Kommando dmesg
-T
| grep -2i acpi
(oder überwachen Sie alle Meldungen, da das Problem möglicherweise nicht durch ACPI verursacht wurde). Wenn bei der Analyse einer ACPI-Tabelle ein Fehler auftritt, kann die wichtigste Tabelle – die DSDT (Differentiated System Description Table) – durch eine verbesserte Version ersetzt werden. In diesem Fall wird die fehlerhafte DSDT des BIOS ignoriert. Das Verfahren wird in Abschnitt 36.4, „Fehlersuche“ erläutert.
In der Kernel-Konfiguration gibt es einen Schalter zur Aktivierung der ACPI-Fehlersuchmeldungen. Wenn ein Kernel mit ACPI-Fehlersuche kompiliert und installiert ist, werden detaillierte Informationen angezeigt.
Wenn Sie Probleme mit dem BIOS oder der Hardware feststellen, sollten Sie stets Kontakt mit den betreffenden Herstellern aufweisen. Insbesondere Hersteller, die nicht immer Hilfe für Linux anbieten, sollten mit den Problemen konfrontiert werden. Die Hersteller nehmen das Problem nur dann ernst, wenn sie feststellen, dass eine nennenswerte Zahl ihrer Kunden Linux verwendet.
36.2.2.1 Weitere Informationen #
https://tldp.org/HOWTO/ACPI-HOWTO/ (detailliertes ACPI HOWTO, enthält DSDT-Patches)
https://uefi.org/specifications (technische Daten zur Advanced Configuration & Power Interface)
36.3 Ruhezustand für Festplatte #
In Linux kann die Festplatte vollständig ausgeschaltet werden, wenn sie nicht benötigt wird, oder sie kann in einem energiesparenderen oder ruhigeren Modus betrieben werden. Bei modernen Notebooks müssen die Festplatten nicht manuell ausgeschaltet werden, da sie automatisch in einen Sparbetriebsmodus geschaltet werden, wenn sie nicht benötigt werden. Um die Energieeinsparungen zu maximieren, sollten Sie jedoch die folgenden Verfahren mit dem Kommando hdparm
ausprobieren.
Hiermit können verschiedene Festplatteneinstellungen bearbeitet werden. Die Option -y
schaltet die Festplatte sofort in den Stand-by-Modus. -Y
versetzt sie in den Ruhezustand. hdparm
-S
X führt dazu, dass die Festplatte nach einem bestimmten Inaktivitätszeitraum abgeschaltet wird. Ersetzen Sie X wie folgt: 0
deaktiviert diesen Mechanismus, sodass die Festplatte kontinuierlich ausgeführt wird. Werte von 1
bis 240
werden mit 5 Sekunden multipliziert. Werte von 241
bis 251
entsprechen 1- bis 11-mal 30 Minuten.
Die internen Energiesparoptionen der Festplatte lassen sich über die Option -B
steuern. Wählen Sie einen Wert 0
(maximale Energieeinsparung) bis 255
(maximaler Durchsatz). Das Ergebnis hängt von der verwendeten Festplatte ab und ist schwer einzuschätzen. Die Geräuschentwicklung einer Festplatte können Sie mit der Option -M
reduzieren. Wählen Sie einen Wert von 128
(ruhig) bis 254
(schnell).
Häufig ist es nicht so einfach, die Festplatte in den Ruhezustand zu versetzen. Bei Linux führen zahlreiche Prozesse Schreibvorgänge auf der Festplatte durch, wodurch diese wiederholt aus dem Ruhezustand reaktiviert wird. Daher sollten Sie unbedingt verstehen, wie Linux mit Daten umgeht, die auf die Festplatte geschrieben werden müssen. Zunächst werden alle Daten im RAM-Puffer gespeichert. Dieser Puffer wird vom pdflush
-Daemon überwacht. Wenn die Daten ein bestimmtes Alter erreichen oder wenn der Puffer bis zu einem bestimmten Grad gefüllt ist, wird der Pufferinhalt auf die Festplatte übertragen. Die Puffergröße ist dynamisch und hängt von der Größe des Arbeitsspeichers und von der Systemlast ab. Standardmäßig werden für pdflush kurze Intervalle festgelegt, um maximale Datenintegrität zu erreichen. Das Programm überprüft den Puffer alle fünf Sekunden und schreibt die Daten auf die Festplatte. Die folgenden Variablen sind interessant:
/proc/sys/vm/dirty_writeback_centisecs
Enthält die Verzögerung bis zur Reaktivierung eines pdflush-Threads (in Hundertstelsekunden).
/proc/sys/vm/dirty_expire_centisecs
Definiert, nach welchem Zeitabschnitt eine schlechte Seite spätestens geschrieben werden sollte. Der Standardwert ist
3000
, was 30 Sekunden bedeutet./proc/sys/vm/dirty_background_ratio
Maximaler Prozentsatz an schlechten Seiten, bis pdflush damit beginnt, sie zu schreiben. Der Standardwert ist
5
%./proc/sys/vm/dirty_ratio
Wenn die schlechten Seiten diesen Prozentsatz des gesamten Arbeitsspeichers überschreiten, werden Prozesse gezwungen, während ihres Zeitabschnitts Puffer mit schlechten Seiten anstelle von weiteren Daten zu schreiben.
Änderungen an den Einstellungen für den pdflush
-Aktualisierungs-Daemon können die Datenintegrität beeinträchtigen.
Abgesehen von diesen Prozessen schreiben protokollierende Journaling-Dateisysteme wie Btrfs
, Ext3
, Ext4
und andere ihre Metadaten unabhängig von pdflush
, was ebenfalls das Abschalten der Festplatte verhindert. Um dies zu vermeiden, wurde eine spezielle Kernel-Erweiterung für mobile Geräte entwickelt. Installieren Sie das laptop-mode-tools
-Paket und beachten Sie die Angaben in der Datei /usr/src/linux/Documentation/laptops/laptop-mode.txt
.
Ein weiterer wichtiger Faktor ist die Art und Weise, wie sich die Programme verhalten. Gute Editoren beispielsweise schreiben regelmäßig verborgene Sicherungskopien der aktuell bearbeiteten Datei auf die Festplatte, wodurch die Festplatte wieder aktiviert wird. Derartige Funktionen können auf Kosten der Datenintegrität deaktiviert werden.
In dieser Verbindung verwendet der Mail-Daemon postfix die Variable POSTFIX_LAPTOP
. Wenn diese Variable auf yes
(ja) gesetzt wird, greift postfix wesentlich seltener auf die Festplatte zu.
In SUSE Linux Enterprise Desktop werden diese Technologien von laptop-mode-tools
gesteuert.
36.4 Fehlersuche #
Alle Fehler- und Alarmmeldungen werden im Systemjournal gespeichert, das Sie mit dem Kommando journalctl
abrufen können (weitere Informationen siehe Kapitel 21, journalctl
: Abfragen des systemd
-Journals). In den folgenden Abschnitten werden die häufigsten Probleme behandelt.
36.4.1 CPU-Frequenzsteuerung funktioniert nicht #
Rufen Sie die Kernel-Quellen auf, um festzustellen, ob der verwendete Prozessor unterstützt wird. Möglicherweise ist ein spezielles Kernel-Modul bzw. eine Moduloption erforderlich, um die CPU-Frequenzsteuerung zu aktivieren. Wenn das kernel-source
-Paket installiert ist, finden Sie diese Informationen unter /usr/src/linux/Documentation/cpu-freq/*
.