Das powersave Paket ist hauptsächlich für die Anwendung in Laptops ausgelegt, wo es für die Stromsparfunktion beim Batteriebetrieb zuständig ist. Manche seiner Features sind aber auch für normale Arbeitsplatzrechner und Server interessant (z.B. Suspend/Standby, ACPI-Button-Funktionalität und Abstellen von IDE-Festplatten).
In diesem Paket sind alle Powermanagementfunktionen Ihres Rechners zusammengefasst. Es unterstützt Hardware, die ACPI, APM, IDE-Platten und PowerNow!- bzw. SpeedStep-Technologien nutzt. Die Funktionalitäten aus den Paketen apmd, acpid, ospmd und cpufreqd (mittlerweile cpuspeed) wird im Paket powersave zusammengefasst. Aus diesem Grund sollten Daemonen aus diesen Paketen nicht parallel zum powersave-Daemon betrieben werden.
Selbst wenn Ihr System nicht alle der oben genannten Hardwareelemente enthält (APM und ACPI schließen sich gegenseitig aus), sollten Sie den powersave Daemon zur Regelung der Stromsparfunktion nutzen. Eventuelle Änderungen der Hardwarekonfiguration erkennt der Daemon automatisch.
![]() | Informationen zu powersave |
|---|---|
Neben diesem Kapitel sind aktuelle Informationen zum powersave Paket auch unter /usr/share/doc/packages/powersave/README_POWERSAVE verfügbar. | |
Generell ist die Konfiguration von powersave über mehrere Dateien verteilt:
Diese Datei wird vom powersave-Daemon benötigt, um die Bearbeitung auftretender Systemereignisse (Events) an den powersave_proxy zu delegieren. Darüber hinaus werden hier benutzerdefinierte Einstellungen zum genauen Verhalten des Daemons vorgenommen.
Diese Datei dient der allgemeinen Konfiguration des Startupskripts (rcpowersave) und des Proxies. Die Voreinstellungen können meistens unverändert übernommen werden.
Dies sind die verschiedenen Schemes oder auch Profile, die die Anpassung des Stromverbrauchs an bestimmte Einsatzszenarien regeln. Einige sind vorkonfiguriert und ohne weitere Änderungen einsatzbereit. Sie können allerdings auch eigene Profile hier ablegen.
In der Datei /etc/sysconfig/powersave/common legen Sie fest, welche kritischen Module und Dienste vor einem Suspend- oder Standby-Ereignis entladen bzw. gestoppt werden sollen. Wird das System später wieder hochgefahren, werden diese wieder geladen bzw. gestartet. Die Voreinstellungen betreffen in der Hauptsache USB- und PCMCIA-Module.
Listen Sie hier die nach einem Suspend neu zu startenden Dienste auf.
Listen Sie hier die nach einem Standby neu zu startenden Dienste auf.
Listen Sie die vor einem Suspend zu entladenden Module auf.
Listen Sie die vor einem Standby zu entladenden Module auf.
Ausserdem stellen Sie sicher, dass die folgenden Standardoptionen zur korrekten Verarbeitung von Suspend/Standby, Occurrence/Resume gesetzt sind (dies sind normalerweise die Voreinstellungen nach der Installation von SUSE LINUX):
POWERSAVE_EVENT_GLOBAL_SUSPEND="prepare_suspend" POWERSAVE_EVENT_GLOBAL_STANDBY="prepare_standby" POWERSAVE_EVENT_GLOBAL_RESUME_SUSPEND="restore_after_suspend" POWERSAVE_EVENT_GLOBAL_RESUME_STANDBY="restore_after_standby"
In der Konfigurationsdatei des powersave Daemons unter /etc/powersave.conf werden diese Ereignisse dem powersave_proxy-Skript zugeordnet, das ausgeführt wird, sobald diese Ereignisse eintreten (Voreinstellung nach der Installation):
global.suspend=/usr/sbin/powersave_proxy global.standby=/usr/sbin/powersave_proxy global.resume.suspend=/usr/sbin/powersave_proxy global.resume.standby=/usr/sbin/powersave_proxy
Sie können in der Datei /etc/powersave.conf drei Ladezustände der Batterie (in Prozent) festlegen, bei deren Erreichen das System warnt bzw. bestimmte Aktionen ausführt.
POWERSAVED_BATTERY_WARNING=20 POWERSAVED_BATTERY_LOW=10 POWERSAVED_BATTERY_CRITICAL=5
Welche Aktionen/Skripte ausgeführt werden, sobald bestimmte Ladezustände unterschritten werden, ist in der Konfigurationsdatei des powersave-Daemons festgelegt (/etc/powersave.conf). Der Typ dieser Aktionen ist in /etc/sysconfig/powersave/common konfiguriert:
POWERSAVE_EVENT_BATTERY_NORMAL="ignore" POWERSAVE_EVENT_BATTERY_WARNING="notify" POWERSAVE_EVENT_BATTERY_LOW="notify" POWERSAVE_EVENT_BATTERY_CRITICAL="suspend"
Weitere Optionen lesen Sie direkt in dieser Konfigurationsdatei nach.
Sie können das Verhalten des Systems von der Art seiner Stromversorgung abhängig machen. So sollte der Stromverbrauch des Systems vermindert werden, wenn das System vom Netz getrennt und per Batterie betrieben wird. Umgekehrt sollte die Performance des Systems automatisch wieder steigen, sobald es sich wieder am Netz befindet. Konkret beeinflussbar sind die CPU-Frequenz, die Stromsparfunktion von IDE-Platten und einige andere Parameter mehr.
In /etc/powersave.conf ist die Ausführung bestimmter Aktionen bei Trennung/Anbindung vom Stromnetz an den powersave_proxy delegiert. In /etc/sysconfig/powersave/common wählen Sie die zu verwendenden Szenarien (genannt „Schemes“ oder „Profile“) fest:
POWERSAVE_AC_SCHEME="performance" POWERSAVE_BATTERY_SCHEME="powersave"
Die „Schemes“ sind in entsprechenden Dateien unter /etc/sysconfig/powersave abgelegt. Ihr Name setzt sich zusammen aus: scheme_<Name des Schemas>. Im Beispiel werden zwei Schemes referenziert: scheme_performance und scheme_powersave. Vorkonfiguriert werden performance, powersave und acoustic ausgeliefert. Sie können mittels des YaST Powermanagement-Moduls jederzeit existierende Schemata bearbeiten, neue anlegen, bestehende löschen oder deren Zuordnungen zum Stromversorgungszustand ändern.
Sollten Sie ACPI verwenden, können Sie die Reaktion Ihres Systems auf die so genannten „ACPI-Buttons“ (Power, Sleep und „Deckel offen“, „Deckel geschlossen“) steuern. In /etc/powersave.conf ist die Ausführung der entprechenden Aktionen an den powersave_proxy delegiert. Die eigentliche Aktion selbst legen Sie in der Datei /etc/sysconfig/powersave/common fest. Nähere Erläuterungen zu den einzelnen Optionen entnehmen Sie bitte dieser Konfigurationsdatei.
Wird der Power-Button gedrückt, reagiert das System mit dem Herunterfahren des jeweiligen Windowmanagers (KDE, GNOME, fvwm...).
Wird der Sleep-Button gedrückt, fällt das System in den Suspend-Modus.
Beim Öffnen des Deckels passiert nichts.
Wird der Deckel geschlossen, aktiviert sich der Bildschirmschoner.
Wird der Prozessor für eine bestimmte Zeit nicht über ein festgelegtes Maß hinaus beansprucht, können Sie seine Leistung zusätzlich drosseln. Legen Sie mit POWERSAVED_CPU_LOW_LIMIT den Level fest, bei dessen dauerhafter Unterschreitung — die Zeitspanne legen Sie in POWERSAVED_CPU_IDLE_TIMEOUT fest — die CPU heruntergeregelt wird.
Die folgenden Fragen und Antworten decken die häufigsten Probleme mit powersave ab.
Es gibt ein Problem, ich kann es aber nicht lokalisieren…
Sehen Sie sich /var/log/messages an. Sämtliche Fehler- und Warnmeldungen werden hier protokolliert. Ergibt sich hier auf den ersten Blick kein Hinweis, weisen Sie powersave in der Datei /etc/sysconfig/powersave/common über die Variable DEBUG an, seine Meldungen etwas detaillierter und ausführlicher zu halten. Erhöhen Sie den Variablenwert hierzu auf 7 oder gar 15 und starten Sie den Daemon neu. Mithilfe der jetzt ausführlicheren Fehlermeldungen in /var/log/messages sollten Sie in der Lage sein, den Fehler einzugrenzen.
Ich habe ACPI aktiviert, aber die Batteriezustände und Buttons funktionieren nicht so wie konfiguriert…
Sollten Sie mit ACPI Probleme bekommen, durchsuchen Sie mit folgendem Befehl die Ausgabe von dmesg nach ACPI-spezifischen Meldungen: dmesg|grep -i acpi.
Um den Fehler zu beheben, kann ein BIOS-Update notwendig werden. Besuchen Sie daher die Homepage Ihres Laptopherstellers, suchen Sie nach einer aktuelleren BIOS-Version und spielen Sie diese ein. Geben Sie an den Hersteller Ihres Systems weiter, dass er sich an die aktuellste ACPI-Spezifikation halten soll.
Treten die Fehler nach dem BIOS-Update immer noch auf, suchen Sie auf den folgenden Webseiten nach einer aktuelleren DSDT für Ihr System, um die fehlerhafte DSDT-Tabelle in Ihrem BIOS zu ersetzen:
Laden Sie die für Ihr System passende DSDT von http://acpi.sourceforge.net/dsdt/tables herunter. Stellen Sie sicher, dass die Datei entzippt und kompiliert ist (zu erkennen an der Dateiendung .aml (ACPI Machine Language)). Ist dies der Fall, fahren Sie mit Punkt 3 fort.
Ist die Dateiendung der heruntergeladenen Tabelle .asl (ACPI Source Language), muss sie mit Hilfe von iasl aus dem Paket pmtools kompiliert werden. Rufen Sie hierzu iasl -sa <Datei>.asl. Die aktuellste Version von iasl (Intel ACPI Compiler) finden Sie ausserdem unter http://developer.intel.com/technology/iapc/acpi/downloads.htm.
Kopieren Sie die Datei DSDT.aml an eine beliebige Stelle (wir empfehlen /etc/DSDT.aml). Editieren Sie /etc/sysconfig/kernel und passen Sie den Pfad zur DSDT-Datei entsprechend an. Starten Sie mkinitrd (Paket mkinitrd). Wann immer Sie Ihren Kernel deinstallieren und mkinitrd verwenden, um eine initrd zu erstellen, wird die angepasste DSDT eingebunden und zur Bootzeit geladen.
CPU Frequency funktioniert nicht…
Überprüfen Sie anhand der Kernelquellen (kernel-source), ob Ihr Prozessor unterstützt wird und ob Sie eventuell ein bestimmtes Kernelmodul oder eine bestimmte Moduloption verwenden müssen, um CPU-Frequency zu aktivieren. Diese Informationen finden Sie unter /usr/src/linux/Documentation/cpu-freq/*. Wenn ein bestimmtes Modul oder eine bestimmte Option nötig sind, konfigurieren Sie dies in der Datei /etc/sysconfig/powersave/common über die Variablen CPUFREQD_MODULE und CPUFREQD_MODULE_OPTS.
Suspend/Standby funktioniert nicht…
Es sind mehrere, mit dem Kernel zusammenhängende Probleme bekannt, die auf ACPI Systemen Suspend/Standby verhindern:
Systeme mit mehr als 1 GB RAM unterstützen im Moment (noch) kein Suspend
Multiprozessorsysteme oder Systeme mit einem P4-Prozessor (mit Hyperthreading) unterstützen momentan kein Suspend.
Der Fehler kann auch in einer fehlerhaften Implementierung Ihrer DSDT (BIOS) liegen. In diesem Fall spielen Sie eine neue DSDT wie unter Ich habe ACPI aktiviert, aber die Batteriezustände und Buttons funktionieren nicht so wie konfiguriert… beschrieben ein.
Auf ACPI und APM Systemen:
Sobald Ihr System versucht, fehlerhafte Module zu entladen, hängt sich der Proxy auf und das Suspendereignis wird niemals getriggert. Der umgekehrte Weg ist auch möglich, wenn Sie Module/Dienste nicht entladen oder stoppen, die einen erfolgreichen Suspend verhindern. In beiden Fällen sollten Sie versuchen, durch Manipulation der folgenden Einstellungen unter /etc/sysconfig/powersave/common herauszufinden, welche Module das Problem hervorrufen:
POWERSAVE_UNLOAD_MODULES_BEFORE_SUSPEND="" POWERSAVE_UNLOAD_MODULES_BEFORE_STANDBY="" POWERSAVE_SUSPEND_RESTART_SERVICES="" POWERSAVE_STANDBY_RESTART_SERVICES=""
Bei der Verwendung von ACPI: Der Powersave-Daemon erkennt nicht, wenn ein bestimmtes Batterielimit erreicht wurde…
Unter ACPI kann das Betriebssystem vom BIOS eine Meldung über das Unterschreiten eines bestimmten Ladeniveaus der Batterie anfordern. Der Vorteil dieser Methode ist, dass nicht permanent der Batteriezustand ausgelesen werden muss, was sonst die Performance des Rechners schwächen würde. Trotzdem kann es vorkommen, dass diese Benachrichtigung laut BIOS zwar funktionieren sollte, tatsächlich aber nicht stattfindet, selbst bei Unterschreitung des Limits nicht.
Sollten Sie dies auf Ihrem System beobachten, setzen Sie in der Datei /etc/powersave.conf die Variable POWERSAVED_FORCE_BATTERY_POLLING auf yes, um das Auslesen des Batteriezustands zu erzwingen.