Das powersave-Paket ist für die
Energiesparfunktion bei Notebooks im Akkubetrieb zuständig. Einige seiner
Funktionen sind sowohl für normale Arbeitsplatzrechner als auch für Server
nützlich, wie Suspend, Stand-by, die Funktionen der ACPI-Buttons und das
Versetzen von IDE-Festplatten in den Ruhezustand.
Dieses Paket enthält alle Power-Managementfunktionen 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. Daemons aus
diesen Paketen sollten nicht gleichzeitig mit dem powersave-Daemon ausgeführt
werden.
Selbst wenn Ihr System nicht alle oben aufgeführten Hardwareelemente 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 Hardwarekonfiguration.
Normalerweise wird die Konfiguration von powersave an mehrere Dateien verteilt:
/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 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
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 Skripte zum Verarbeiten von Ereignissen:
Gibt eine Benachrichtigung über ein Ereignis aus (über die Konsole, über X Window oder durch ein akustisches Signal).
Aktiviert den Bildschirmschoner.
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.
Bei Festlegung der Variablen
EVENT_GLOBAL_SUSPEND2DISK="prepare_suspend_to_disk
do_suspend_to_disk" beispielsweise werden die beiden
Skripte 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 eineSleep Taste ausgelöste
Ereignis können wie in EVENT_BUTTON_SLEEP="notify
suspend_to_disk" geändert werden. In diesem Fall wird der
Benutzer durch das externe Skript notify über das
Suspend-Ereignis 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. Das Skript notify kann mithilfe der
Variablen NOTIFY_METHOD in
/etc/sysconfig/powersave/common angepasst werden.
/etc/sysconfig/powersave/cpufreqEnthält Variablen zur Optimierung der dynamischen CPU-Frequenzeinstellungen.
/etc/sysconfig/powersave/batteryEnthält Grenzwerte für den Akku und andere akkuspezifische Einstellungen.
/etc/sysconfig/powersave/sleepIn dieser Datei können Sie die Energiesparmodi aktivieren und festlegen, welche kritischen Module vor einem Suspend- oder Standby-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 Standby werden normalerweise von bestimmten Modulen verursacht. Weitere Informationen zur Ermittlung des Fehlers finden Sie in Abschnitt 21.5.4, „Fehlersuche“.
/etc/sysconfig/powersave/thermal
Aktiviert Kühlung und Temperatursteuerung. Einzelheiten zu diesem Thema
finden Sie in der Datei
/usr/share/doc/packages/powersave/README.thermal.
/etc/sysconfig/powersave/scheme_*Dies sind die verschiedenen Schemata, die den Energieverbrauch an bestimmte Anwendungsszenarien anpassen. Eine Anzahl von Schemata werden vorkonfiguriert und können unverändert verwendet werden. Außerdem können hier benutzerdefinierte Schemata gespeichert werden.
Standardmäßig sind die Energiesparmodi inaktiv, da sie noch immer auf einigen Computern nicht funktionieren. 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 keine Energie.
Speichert die Zustände aller Geräte im Hauptspeicher. Nur der Hauptspeicher verbraucht weiterhin Energie.
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, Standby und Resume zu
gewährleisten (Standardeinstellungen nach der Installation von SUSE Linux):
EVENT_GLOBAL_SUSPEND2DISK= "prepare_suspend_to_disk do_suspend_to_disk" EVENT_GLOBAL_SUSPEND2RAM= "prepare_suspend_to_ram do_suspend_to_ram" EVENT_GLOBAL_STANDBY= "prepare_standby 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=20 BATTERY_LOW=10 BATTERY_CRITICAL=5
Die Aktionen bzw. Skripte, 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 Buttons können wie in Abschnitt 21.5.1, „Konfiguration 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 Format schema_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 21.6, „Das YaST Power-Managementmodul“ beschriebenen YaST-Moduls für
Power-Management 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-Buttons (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.
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.
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 eine
beliebige Stelle (/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.
Kontrollieren Sie über die Kernelquellen (kernel-source), ob Ihr verwendete Prozessor
unterstützt wird. Möglicherweise ist ein spezielles Kernelmodul 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 Standby-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 oder
/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 gemounteten
Dateisystemen, wie Samba und NIS, verwenden, sollten Sie diese mithilfe von
automounter mounten 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 gemountete Dateisystem zugreift, kann
der Dienst nicht richtig gestoppt und kein ordnungsgemäßes Unmounten des
Dateisystems durchgeführt werden. Wenn der Betrieb des Systems wieder
aufgenommen wird, kann das Dateisystem beschädigt und ein erneutes Mounten
erforderlich sein.
Unter ACPI kann das Betriebssystem das BIOS anweisen, eine Meldung
zu senden, wenn der Akkuladezustand unter einen bestimmten
Grenzwert fällt. Der Vorteil dieser Methode besteht darin, dass der
Batteriezustand nicht ständig abgefragt werden muss, was die
Leistungsfähigkeit des Computers beeinträchtigen würde. Es kann jedoch
vorkommen, dass diese Benachrichtigung nicht erfolgt, wenn der Ladezustand
unter den angegebenen Grenzwert fällt, auch wenn das BIOS diese Funktion
unterstützen müsste. Wenn dies bei Ihrem System der Fall ist, setzen Sie
die Variable FORCE_BATTERY_POLLING in der Datei
/etc/sysconfig/powersave/battery auf
yes, um ein Abfragen der Batterie zu erzwingen.