Das powersave
-Paket enthält alle zuvor erwähnten Stromsparfunktionen. Aufgrund der allgemein wachsenden Forderung nach geringerem Energieverbrauch sind einige der enthaltenen Funktionen auch auf Arbeitsstationen und Servern wichtig. Beispielsweise der Suspend- oder Standby-Modus oder die CPU-Frequenzskalierung.
Dieses Paket enthält alle Energieverwaltungsfunktionen für Ihren Computer. Es unterstützt Hardware, die ACPI, APM, IDE-Festplatten und PowerNow!- oder SpeedStep-Technologien verwendet. Die Funktionen der Pakete apmd
, acpid
, ospmd
und cpufreqd
(jetzt cpuspeed
) wurden im powersave
-Paket zusammengeführt. Die Daemons aus diesen Paketen (mit Ausnahme von acpid, der als Multiplexer für acpi-Ereignisse fungiert) sollten nicht gleichzeitig mit dem powersave-Daemon ausgeführt werden.
Selbst wenn Ihr System nicht alle oben aufgeführten Hardware-Elemente beinhaltet, sollten Sie den powersave-Daemon zur Steuerung der Energiesparfunktion verwenden. Da sich ACPI und APM gegenseitig ausschließen, können Sie nur eines dieser Systeme auf Ihrem Computer verwenden. Der Daemon erkennt automatisch etwaige Änderungen in der Hardware-Konfiguration.
Die Konfiguration von powersave wird an mehrere Dateien verteilt: Jede hier aufgelistete Konfigurationsoption enthält eine zusätzliche Dokumentation zur eigenen Funktionalität.
/etc/sysconfig/powersave/common
Diese Datei enthält allgemeine Einstellungen für den powersave-Daemon. Der Umfang der Fehlersuchmeldungen in /var/log/messages
lässt sich beispielsweise durch Heraufsetzen des Werts der Variablen DEBUG
erhöhen.
/etc/sysconfig/powersave/events
Der powersave-Daemon benötigt diese Datei zur Verarbeitung von Systemereignissen. Einem Ereignis können externe Aktionen oder vom Daemon selbst ausgeführte Aktionen zugewiesen werden. Bei externen Aktionen versucht der Daemon eine ausführbare Datei (normalerweise ein Bash-Skript) in/usr/lib/powersave/scripts/
auszuführen. Vordefinierte interne Aktionen:
ignore
throttle
dethrottle
suspend_to_disk
suspend_to_ram
standby
do_suspend_to_disk
do_suspend_to_ram
do_standby
notify
screen_saver
reread_cpu_capabilities
throttle
verlangsamt den Prozessor um den in MAX_THROTTLING
festgelegten Wert. Dieser Wert hängt vom aktuellen Schema ab. dethrottle
setzt den Prozessor auf volle Leistung. suspend_to_disk
, suspend_to_ram
und standby
lösen das Systemereignis für einen Energiesparmodus aus. Diese drei Aktionen sind in der Regel für die Auslösung des Energiesparmodus zuständig, sie sollten jedoch stets mit bestimmten Systemereignissen verknüpft sein.
Das Verzeichnis /usr/lib/powersave/scripts
enthält Skripts zum Verarbeiten von Ereignissen:
Hilfreich, wenn der Bildschirm nach einem Suspend- oder Stand-by-Vorgang verschoben ist.
Speichert die Einstellungen und Protokolle aus GNOME, KDE oder anderen Fenstermanagern.
Speichert die GNOME- bzw. KDE-Einstellungen und fährt das System herunter.
Führt die in /etc/sysconfig/powersave/disk
vorgenommenen Datenträgereinstellungen aus.
Bei Festlegung der Variablen EVENT_GLOBAL_SUSPEND2DISK="prepare_suspend_to_disk do_suspend_to_disk"
beispielsweise werden die beiden Skripts bzw. Aktionen in der angegebenen Reihenfolge verarbeitet, sobald der Benutzer powersaved den Befehl für den Energiesparmodus Suspend to Disk
erteilt. Der Daemon führt das externe Skript /usr/lib/powersave/scripts/prepare_suspend_to_disk
aus. Nach der erfolgreichen Verarbeitung dieses Skripts führt der Daemon die interne Aktion do_suspend_to_disk
aus und versetzt den Computer in den Energiesparmodus, nachdem kritische Module mithilfe des Skripts entladen und Dienste gestoppt wurden.
Die Aktionen für das durch einen Energiespar-Schalter ausgelöste Ereignis können wie in EVENT_BUTTON_SLEEP="notify suspend_to_disk"
geändert werden. In diesem Fall wird der Benutzer durch ein Popup-Fenster in X oder eine Meldung auf der Konsole über den Suspend-Vorgang informiert. Anschließend wird das Ereignis EVENT_GLOBAL_SUSPEND2DISK
generiert, was zur Ausführung der erwähnten Aktionen und einem sicheren Suspend-Modus für das System führt. Die interne Aktion notify
kann mithilfe der Variablen NOTIFY_METHOD
in /etc/sysconfig/powersave/common
angepasst werden.
/etc/sysconfig/powersave/cpufreq
Enthält Variablen für die Optimierung der dynamischen CPU-Frequenzeinstellungen und bestimmt, ob die userspace- oder die Kernel-Implementierung verwendet werden soll.
/etc/sysconfig/powersave/battery
Enthält Grenzwerte für den Akku und andere akkuspezifische Einstellungen.
/etc/sysconfig/powersave/sleep
In dieser Datei können Sie die Energiesparmodi aktivieren und festlegen, welche kritischen Module vor einem Suspend- oder Stand-by-Ereignis entladen und welche Dienste angehalten werden sollen. Wenn der Betrieb des Systems wieder aufgenommen wird, werden diese Module erneut geladen und die Dienste werden neu gestartet. Es ist sogar möglich, einen ausgelösten Energiesparmodus zu verzögern, beispielsweise um Dateien zu speichern. Die Standardeinstellungen betreffen vor allem USB- und PCMCIA-Module. Fehler bei Suspend oder Stand-by werden normalerweise von bestimmten Modulen verursacht. Weitere Informationen zur Ermittlung des Fehlers finden Sie in Abschnitt 33.5.4, „Fehlerbehebung“.
/etc/sysconfig/powersave/thermal
Aktiviert Kühlung und Wärmesteuerung. Einzelheiten zu diesem Thema finden Sie in der Datei /usr/share/doc/packages/powersave/README.thermal
.
/etc/sysconfig/powersave/disk
Diese Konfigurationsdatei steuert die Aktionen und Einstellungen, die in Bezug auf die Festplatte vorgenommen werden sollen.
/etc/sysconfig/powersave/scheme_*
Dies sind die verschiedenen Schemata, die den Energieverbrauch an bestimmte Bereitstellungsszenarien anpassen. Eine Anzahl von Schemata werden vorkonfiguriert und können unverändert verwendet werden. Außerdem können hier benutzerdefinierte Schemata gespeichert werden.
Es gibt drei grundlegende ACPI-Energiesparmodi und zwei APM-Energiesparmodi:
Speichert den gesamten Inhalt des Arbeitsspeichers auf die Festplatte. Der Computer wird vollständig ausgeschaltet und verbraucht keinerlei Energie. Dieser Energiesparmodus ist standardmäßig aktiviert und sollte auf allen System funktionieren.
Speichert die Zustände aller Geräte im Hauptspeicher. Nur der Hauptspeicher verbraucht weiterhin Energie. Dieser Energiesparmodus ist standardmäßig deaktiviert, da er nach wie vor Probleme auf einigen Systemen verursacht. Die Unterstützung wurde jedoch enorm erweitert.
Schaltet einige Geräte aus (herstellerabhängig).
Stellen Sie sicher, dass folgende Standardoptionen in der Datei /etc/sysconfig/powersave/events
festgelegt sind, um die ordnungsgemäße Verarbeitung von Suspend, Stand-by und Resume zu gewährleisten (Standardeinstellungen nach der Installation von SUSE Linux):
EVENT_GLOBAL_SUSPEND2DISK= "prepare_suspend_to_disk screen_saver do_suspend_to_disk" EVENT_GLOBAL_SUSPEND2RAM= "prepare_suspend_to_ram screen_saver do_suspend_to_ram" EVENT_GLOBAL_STANDBY= "prepare_standby screen_saver do_standby" EVENT_GLOBAL_RESUME_SUSPEND2DISK= "restore_after_suspend_to_disk" EVENT_GLOBAL_RESUME_SUSPEND2RAM= "restore_after_suspend_to_ram" EVENT_GLOBAL_RESUME_STANDBY= "restore_after_standby"
In der Datei /etc/sysconfig/powersave/battery
können Sie drei Akku-Ladezustände (in Prozent) definieren, bei deren Erreichen Systemwarnungen oder bestimmte Aktionen ausgelöst werden.
BATTERY_WARNING=12 BATTERY_LOW=7 BATTERY_CRITICAL=2
Die Aktionen bzw. Skripts, die ausgeführt werden sollen, wenn der Ladezustand unter die angegebenen Grenzwerte fällt, werden in der Konfigurationsdatei /etc/sysconfig/powersave/events
festgelegt. Die Standardaktionen für Schaltflächen können wie in Abschnitt 33.5.1, „Konfigurieren des powersave-Pakets“ beschrieben geändert werden.
EVENT_BATTERY_NORMAL=„ignore“ EVENT_BATTERY_WARNING="notify" EVENT_BATTERY_LOW="notify" EVENT_BATTERY_CRITICAL=„wm_shutdown“
Das Systemverhalten kann an die Art der Stromversorgung angepasst werden. Der Energieverbrauch des Systems sollte reduziert werden, wenn das System vom Stromnetz getrennt und mit dem Akku betrieben wird. Ebenso sollte die Leistung automatisch zunehmen, sobald das System an das Stromnetz angeschlossen wird. Die CPU-Frequenz, die Energiesparfunktion von IDE und eine Reihe anderer Parameter können geändert werden.
Die Aktionen, die ausgeführt werden sollen, wenn der Computer vom Stromnetz getrennt bzw. wieder daran angeschlossen wird, werden in /etc/sysconfig/powersave/events
festgelegt. Die zu verwendenden Schemata können in /etc/sysconfig/powersave/common
ausgewählt werden:
AC_SCHEME="performance" BATTERY_SCHEME="powersave"
Die Schemata werden in Dateien im Verzeichnis /etc/sysconfig/powersave
gespeichert. Für die Dateinamen wird das Formatschema_name-des-schemas
verwendet. Das Beispiel bezieht sich auf zwei Schemata: scheme_performance
und scheme_powersave
. performance
, powersave
, presentation
und acoustic
sind vorkonfiguriert. Mithilfe des in Abschnitt 33.6, „Das YaST Energieverwaltungsmodul“ beschriebenen YaST-Modul für die Energieverwaltung können bestehende Schemata bearbeitet, erstellt, gelöscht oder mit verschiedenen Energieversorgungszuständen verknüpft werden.
Bei Verwendung von ACPI können Sie festlegen, wie Ihr System auf ACPI-Schalter (Ein/Aus, Energiesparen, Deckel offen, Deckel geschlossen) reagieren soll. Die Ausführung der Aktionen wird in /etc/sysconfig/powersave/events
konfiguriert. In dieser Konfigurationsdatei finden Sie auch eine Erklärung der einzelnen Optionen.
EVENT_BUTTON_POWER=„wm_shutdown“ Wenn der Netzschalter gedrückt wird, reagiert das System mit Herunterfahren des jeweiligen Fenstermanagers (KDE, GNOME, fvwm usw.).
Wenn der Energiespar-Schalter gedrückt wird, wird das System in den Modus „Suspend to Disk“ versetzt.
Das Öffnen des Deckels hat keine Wirkung.
Beim Schließen des Deckels wird der Bildschirmschoner aktiviert.
Dieses Ereignis tritt ein, wenn ein unbekanntes Ereignis vom Daemon erkannt wird. Unbekannte Ereignisse sind beispielsweise ACPI-Tastenkombinationen auf einigen Computern.
Eine weitere Drosselung der CPU-Leistung ist möglich, wenn die CPU-Last über einen bestimmten Zeitraum einen angegebenen Wert nicht übersteigt. Geben Sie die Lastgrenze in PROCESSOR_IDLE_LIMIT
und den Wert für die Zeitüberschreitung in CPU_IDLE_TIMEOUT
an. Wenn die CPU-Last länger als unterhalb des Grenzwerts bleibt, als für die Zeitüberschreitung festgelegt, wird das in EVENT_PROCESSOR_IDLE
konfigurierte Ereignis aktiviert. Wenn die CPU erneut belegt ist, wird EVENT_PROCESSOR_BUSY
ausgeführt.
Alle Fehler- und Alarmmeldungen werden in der Datei /var/log/messages
protokolliert. Wenn Sie die benötigten Informationen nicht finden können, erhöhen Sie die Ausführlichkeit der powersave-Meldungen mithilfe von DEBUG
in der Datei /etc/sysconfig/powersave/common
. Erhöhen Sie den Wert der Variablen auf 7
oder sogar 15
und starten Sie den Daemon erneut. Mithilfe der detaillierteren Fehlermeldungen in /var/log/messages
sollten Sie den Fehler leicht finden können. In folgenden Abschnitten werden die häufigsten Probleme mit powersave behandelt.
Bei Problemen mit ACPI können Sie mit dem Befehl dmesg|grep -i acpi
die Ausgabe von dmesg nach ACPI-spezifischen Meldungen durchsuchen. Zur Behebung des Problems kann eine BIOS-Aktualisierung erforderlich sein. Rufen Sie die Homepage Ihres Notebookherstellers auf, suchen Sie nach einer aktualisierten BIOS-Version und installieren Sie sie. Bitten Sie den Hersteller, die aktuellsten ACPI-Spezifikationen einzuhalten. Wenn der Fehler auch nach der BIOS-Aktualisierung noch besteht, gehen Sie wie folgt vor, um die fehlerhafte DSDT-Tabelle im BIOS mit einer aktualisierten DSDT zu ersetzen:
Laden Sie die DSDT für Ihr System von der Seite http://acpi.sourceforge.net/dsdt/tables herunter. Prüfen Sie, ob die Datei dekomprimiert und kompiliert ist. Dies wird durch die Dateierweiterung .aml
(ACPI machine language) angezeigt. Wenn dies der Fall ist, fahren Sie mit Schritt 3 fort.
Wenn die Dateierweiterung der heruntergeladenen Tabelle .asl
(ACPI Source Language) lautet, kompilieren Sie sie mit iasl (Paket pmtools
). Geben Sie den Befehl iasl -sa file.asl
ein. Die aktuellste Version von asl (Intel ACPI Compiler) ist unter http://developer.intel.com/technology/iapc/acpi/downloads.htm verfügbar.
Kopieren Sie die Datei DSDT.aml
an einen beliebigen Speicherort (/etc/DSDT.aml
wird empfohlen). Bearbeiten Sie /etc/sysconfig/kernel
und passen Sie den Pfad zur DSDT-Datei entsprechend an. Starten Sie mkinitrd (Paket mkinitrd
). Immer wenn Sie den Kernel installieren und mkinitrd verwenden, um initrd
zu erstellen, wird die bearbeitete DSDT beim Booten des Systems integriert und geladen.
Rufen Sie die Kernel-Quelle (kernel-source
) 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. Diese Informationen erhalten Sie unter /usr/src/linux/Documentation/cpu-freq/*
. Wenn ein spezielles Modul bzw. eine spezielle Moduloption erforderlich ist, konfigurieren Sie diese(s) in der Datei /etc/sysconfig/powersave/cpufreq
mithilfe der Variablen CPUFREQD_MODULE
und CPUFREQD_MODULE_OPTS
.
Es gibt mehrere Kernel-bezogene Probleme, die die Verwendung der Suspend- und Stand-by-Ereignisse auf ACPI-Systemen verhindern:
Zurzeit unterstützen Systeme mit mehr als 1 GB RAM keine Suspend-Ereignisse.
Zurzeit unterstützen Multiprozessorsysteme und Systeme mit einem P4-Prozessor (mit Hyperthreading) keine Suspend-Ereignisse.
Der Fehler kann auch durch eine fehlerhafte DSDT-Implementierung (BIOS) verursacht worden sein. In diesem Fall müssen Sie eine neue DSDT installieren.
Bei ACPI- und APM-Systemen gilt Folgendes: Beim Versuch fehlerhafte Module zu entladen, reagiert das System nicht mehr oder das Suspend-Ereignis wird nicht ausgelöst. Dies kann auch dann passieren, wenn Sie keine Module entladen oder Dienste stoppen, die ein erfolgreiches Suspend-Ereignis verhindern. In beiden Fällen müssen Sie versuchen, das fehlerhafte Modul zu ermitteln, das den Energiesparmodus verhindert hat. Die vom powersave-Daemon in /var/log/suspend2ram.log
und /var/log/suspend2disk.log
erstellten Protokolldateien stellen hierfür eine große Hilfe dar. Wenn der Computer nicht in den Energiesparmodus eintritt, liegt die Ursache im zuletzt entladenen Modul. Bearbeiten Sie die folgenden Einstellungen in /etc/sysconfig/powersave/sleep
, um problematische Module vor einem Suspend- oder Stand-by-Ereignis zu entladen.
UNLOAD_MODULES_BEFORE_SUSPEND2DISK="" UNLOAD_MODULES_BEFORE_SUSPEND2RAM="" UNLOAD_MODULES_BEFORE_STANDBY="" SUSPEND2DISK_RESTART_SERVICES="" SUSPEND2RAM_RESTART_SERVICES="" STANDBY_RESTART_SERVICES=""
Wenn Sie Suspend- oder Stand-by-Ereignisse in veränderlichen Netzwerkumgebungen oder in Verbindung mit entfernt eingehängten Dateisystemen, wie Samba und NIS, verwenden, sollten Sie diese mithilfe von automounter einhängen oder die entsprechenden Dienste, beispielsweise smbfs
oder nfs
in der oben angegebenen Variablen ergänzen. Wenn eine Anwendung vor einem Suspend- oder Stand-by-Ereignis auf das entfernt eingehängte Dateisystem zugreift, kann der Dienst nicht richtig gestoppt und kein ordnungsgemäßes Aushängen des Dateisystems durchgeführt werden. Wenn der Betrieb des Systems wieder aufgenommen wird, kann das Dateisystem beschädigt und ein erneutes Einhängen erforderlich sein.
/usr/share/doc/packages/powersave
– Lokale Dokumentation zum Powersave-Daemon
http://powersave.sourceforge.net – Aktuelle Dokumentation zum Powersave-Daemon
http://www.opensuse.org/Projects_Powersave – Projektseite in der openSUSE-Wiki