2010-04-04, Rev. 1.46Power Management Anleitung
Der Schlüssel zur Verlängerung der Batterielaufzeit mobiler Endgeräte
(insbesondere Laptops) heißt Power Management. Diese Anleitung hilft bei der
Einrichtung.
Power Management Anleitung
1.
Einführung
In den vergangenen Jahren hat sich sowohl Kapazität als auch Lebenszeit von
Laptopbatterien deutlich verbessert. Auf der anderen Seite verbrauchen moderne
Prozessoren viel mehr Energie als ihre Vorfahren und jede neue
Laptopgeneration bringt neue, energiehungrige Komponenten mit sich. Aus diesem
Grund ist Power Management wichtiger denn je. Man muss nicht unbedingt eine neue
Batterie kaufen, um die Laufzeit eines Laptops zu verlängern. Bereits durch eine
intelligente Einrichtung des Power Managements kann man viel erreichen.
1.2 Kurzübersicht
Es sei darauf hingewiesen, dass diese Anleitung die Einrichtung von Power
Management für Laptops beschreibt. Zwar können manche Teile davon auf
Server übertragen werden, nicht jedoch alle und manche können dort sogar Schaden
anrichten. Bitte versuchen Sie nicht, anhand dieser Anleitung einen Server
einzurichten.
Da diese Anleitung etwas länger geworden ist, gibt es zunächst eine
Kurzübersicht:
Das Kapitel >Voraussetzungen behandelt einige
Voraussetzungen, die erfüllt sein müssen, bevor Sie sich in den nächsten
Kapiteln an die Konfiguration einzelner Geräte machen. Hier sind BIOS
Einstellungen und die Kernelkonfiguration zu überprüfen sowie einige
Vereinfachungen im System vorzunehmen. Die folgenden drei Kapitel konzentrieren
sich auf die drei Komponenten, die normalerweise am meisten Energie verbrauchen:
Prozessor, Bildschirm und Festplatte. Alle können unabhängig voneinander
konfiguriert werden. CPU Power Management zeigt,
wie man die Prozessorgeschwindigkeit dynamisch so einstellt, dass ein Maximum an
Energie eingespart wird, ohne allzu viel Leistung zu verlieren. Mit
verschiedenen Tricks sorgt man beim Fesplatten Power
Management dafür, dass die Festplatte möglichst lange Zeit im
Schlafzustand bleibt - und dämpft als angenehmer Nebeneffekt die
Geräuschentwicklung. Mit einigen Hinweisen zu Grafikkarten, WLAN und USB wird
der Abschnitt über einzelne Geräte in Power Management
für andere Geräte abgeschlossen. Ein weiteres Kapitel ist den (noch recht
experimentellen) Schlafzuständen gewidmet, bevor
zuletzt in Probleme und Lösungen typische
Fallstricke und Stolpersteine behandelt werden.
1.3 Power Budget für jede Komponente
Abbildung 1.1: Power Budget für jede Komponente |
 |
Fast alle Geräte kennen verschiedene Betriebszustände - schlafend, untätig,
aktiv um ein paar zu nennen. In jedem Zustand wird unterschiedlich viel
Energie verbraucht. Absolut gesehen verbrauchen LCD Bildschirm, Prozessor,
Chipsatz und Festplatte am meisten. Ein paar Einstellungen zum Power Management
kann man meistens bereits im BIOS vornehmen, doch mit einer vernünftigen, sich
an verschiedene Situationen anpassenden Einrichtung des Betriebssystems erreicht
man noch viel mehr.
2.
Voraussetzungen
Einige Voraussetzungen wollen erfüllt sein, bevor es an die Einrichtung der
einzelnen Komponenten geht. Nach der Kontrolle der BIOS Einstellungen geht
es an die Konfiguration des Kernels, wo ACPI, Schlafzustände und dynamische
Frequenzänderung des Prozessors aktiviert werden. Da Energiesparen meist mit
weniger Leistung oder schlechteren Reaktionszeiten einhergeht, sollte das
Power Management nur im Batteriemodus aktiviert werden. Hier erweist sich ein
neues Runlevel battery nützlich.
2.2 BIOS Einrichtung
Als erstes überprüfen Sie die Power Management Einstellungen im BIOS. Das BIOS
erreicht man durch Neustarten des Laptops und anschließendes Drücken der Taste
Entfernen, F1 oder anderen Spezialtasten je nach Modell. Am
besten kombiniert man BIOS Einstellungen mit den Regeln, die später im
Betriebssystem erstellt werden. Zunächst ist es aber sinnvoller, im BIOS die
meisten Einstellungen zu deaktivieren. So verhindern Sie, dass Ihnen das BIOS
im Folgenden in die Quere kommt. Vergessen Sie nicht, die BIOS Einstellungen
zum Schluss zu korrigieren.
2.3 Setzen von USE Flags
Vergewissern Sie sich, dass das acpi USE Flag in
/etc/make.conf. gesetzt ist. Weitere USE Flags, die für Ihr System
von Interesse sein können, sind apm, lm_sensors, nforce2,
nvidia, pmu. Details zu den USE Flags finden Sie in
/usr/portage/profiles/use*.desc. Falls Sie vergessen haben, eines
dieser Flags zu aktivieren, können Sie mit Hilfe der --newuse Option von
emerge betroffene Pakete neu kompilieren, siehe man emerge.
2.4 Einrichtung des Kernels
Die ACPI (Advanced Configuration and Power Interface) Unterstützung im Kernel
ist immer noch in der Entwicklung. Daher sollte man durch die Verwendung eines
aktuellen Kernels sicherstellen, die neuesten Quellen zu haben.
Portage enthält verschiedene Kernel Quellen. Ich empfehle die Benutzung von
gentoo-sources oder tuxonice-sources. Letztere enthalten Patches
für TuxOnIce, Details dazu im Kapitel zu Schlafzuständen. Bei der Konfiguration des Kernels muss
man mindestens folgende Optionen aktivieren:
Befehlsauflistung
4.1: Minimales Setup für Power Management (Kernel 2.6)
Power management and ACPI options --->
[*] Power Management support
[ ] Software Suspend
ACPI( Advanced Configuration and Power Interface ) Support --->
[ ] Deprecated /proc/acpi/ files
[*] AC Adapter
[*] Battery
<M> Button
<M> Video
[ ] Generic Hotkey
<M> Fan
<M> Processor
<M> Thermal Zone
< > ASUS/Medion Laptop Extras
< > IBM ThinkPad Laptop Extras
< > Toshiba Laptop Extras
(0) Disable ACPI for systems before Jan 1st this year
[ ] Debug Statements
[*] Power Management Timer Support
< > ACPI0004,PNP0A05 and PNP0A06 Container Driver (EXPERIMENTAL)
CPU Frequency Scaling --->
[*] CPU Frequency scaling
[ ] Enable CPUfreq debugging
< > CPU frequency translation statistics
[ ] CPU frequency translation statistics details
Default CPUFreq governor (userspace)
<*> 'performance' governor
<*> 'powersave' governor
<*> 'ondemand' cpufreq policy governor
<*> 'conservative' cpufreq governor
<*> CPU frequency table helpers
<M> ACPI Processor P-States driver
<*> CPUFreq driver for your processor
Entscheiden Sie selbst, ob Sie die Schlafzustände Software Suspend und
Suspend-to-Disk benutzen wollen (siehe unten). Falls Sie einen ASUS, IBM
Thinkpad oder Toshiba Laptop ihr Eigen nennen, aktivieren Sie die entsprechende
Option.
Der Kernel muss wissen, wie Frequenzänderungen bei ihrem Prozessor angesteuert
werden. Da die verschiedenen CPUs unterschiedliche Schnittstellen besitzen,
müssen Sie den richtigen Treiber für ihren Prozessor auswählen. Gehen Sie
sorgfältig vor - die Aktivierung von Intel Pentium 4 clock modulation
auf einem Pentium M System wird sonderbare Ergebnisse erzielen. Ziehen Sie die
Kernel Dokumentation zu Rate, wenn Sie nicht wissen, welcher Treiber der
richtige ist.
Kompilieren Sie den Kernel, booten ihn und stellen Sie sicher, dass die
notwendigen Module beim Start geladen werden. Als nächstes führen Sie
emerge sys-apps/acpid aus, um den acpi Dämon zu installieren.
acpid reagiert auf ACPI Ereignisse wie das Schließen des Laptops oder
das Wechseln der Stromquelle. Als nächstes starten Sie acpid per
/etc/init.d/acpid start. Mit rc-update add acpid default wird
acpid fortan automatisch gestartet. Zur Benutzung von acpid kommen wir gleich.
Befehlsauflistung
4.2: Installing acpid
# emerge sys-power/acpid
# /etc/init.d/acpid start
# rc-update add acpid default
2.5 Ein Runlevel "battery" erstellen
Power Management soll nur aktiviert werden, wenn der Laptop von Batterie
läuft. Um die (De-)Aktivierung der verschiedenen Power Management Regeln
komfortabel durchzuführen, erstellen Sie ein neues Runlevel battery, das
alle Skripte zum Starten und Stoppen des Power Managements enthält. Später
konfigurieren Sie acpid so, dass er je nach Stromquelle in das
entsprechende Runlevel wechselt.
|
Wenn Sie kein neues Runlevel erstellen wollen, können Sie diesen Abschnitt
überspringen. Allerdings wird dadurch die übrige Einrichtung etwas schwieriger.
Im folgenden wird davon ausgegangen, dass es ein Runlevel battery gibt.
|
Befehlsauflistung
5.3: Ein Runlevel battery erzeugen
# cd /etc/runlevels
# cp -a default battery
Fertig. Ihr neues Runlevel battery ist im Moment mit dem Runlevel
default identisch. Die nächste Aufgabe wird sein, battery
anzupassen und je nach Stromquelle automatisch die Runlevel zu wechseln.
2.6 Auf ACPI Ereignisse reagieren
Typische ACPI Ereignisse sind das Schließen des Laptops, Wechseln der
Stromquelle oder Drücken der Ruhezustand Taste. Ein wichtiges Ereignis ist das
Wechseln der Stromquelle, das eine Änderung des aktiven Runlevels auslösen
soll. Ein kleines Skript kümmert sich darum.
Zunächst brauchen Sie ein Skript, das abhängig von der Stromversorgung in das
Runlevel default bzw. battery wechselt. Das Skript benutzt das
on_ac_power Programm von sys-power/pm-utils - stellen Sie
sicher, dass dieses Paket auf ihrem System installiert ist.
Befehlsauflistung
6.4: Installation von pm-utils
# emerge pm-utils
Sie sind jetzt in der Lage, durch Aufruf von on_ac_power && echo AC
available || echo Running on batteries in einer Shell den aktuellen
Stromzustand anzuzeigen. Das unten aufgelistete Skript übernimmt den Wechsel des
Runlevels. Speichern Sie es als
/etc/acpi/actions/pmg_switch_runlevel.sh ab.
Befehlsauflistung
6.5: /etc/acpi/actions/pmg_switch_runlevel.sh
#!/bin/bash
RUNLEVEL_AC="default"
RUNLEVEL_BATTERY="battery"
if [ ! -d "/etc/runlevels/${RUNLEVEL_AC}" ]
then
logger "${0}: Runlevel ${RUNLEVEL_AC} does not exist. Aborting."
exit 1
fi
if [ ! -d "/etc/runlevels/${RUNLEVEL_BATTERY}" ]
then
logger "${0}: Runlevel ${RUNLEVEL_BATTERY} does not exist. Aborting."
exit 1
fi
if on_ac_power
then
if [[ "$(</var/lib/init.d/softlevel)" != "${RUNLEVEL_AC}" ]]
then
logger "Switching to ${RUNLEVEL_AC} runlevel"
/sbin/rc ${RUNLEVEL_AC}
fi
elif [[ "$(</var/lib/init.d/softlevel)" != "${RUNLEVEL_BATTERY}" ]]
then
logger "Switching to ${RUNLEVEL_BATTERY} runlevel"
/sbin/rc ${RUNLEVEL_BATTERY}
fi
Vergessen Sie nicht, das Skript durch Aufruf von
chmod +x /etc/acpi/actions/pmg_switch_runlevel.sh ausführbar zu machen.
Zuletzt muss noch dafür gesorgt werden, dass dieses Skript aufgerufen wird,
sobald sich die Stromversorgung ändert. Das geschieht durch Abfangen der dabei
ausgelösten ACPI Ereignisse mit Hilfe von acpid. Zunächst müssen Sie
aber wissen, welche Ereignisse beim Wechseln der Stromversorgung ausgelöst
werden. Meistens sind das ac_adapter und battery, es könnte auf
ihrem Laptop aber auch anders sein.
Befehlsauflistung
6.6: Welche ACPI Ereignisse werden beim Wechseln der Stromzufuhr ausgelöst?
# tail -f /var/log/messages | grep "ACPI event"
Führen Sie obiges Kommando aus und ziehen Sie das Stromkabel ab. Sie sollten
eine Ausgabe ähnlich der folgenden sehen:
Befehlsauflistung
6.7: Beispielhafte Ausgabe bei Wechsel der Stromzufuhr
[Tue Sep 20 17:39:06 2005] ACPI event "ac_adapter AC 00000080 00000000"
[Tue Sep 20 17:39:06 2005] ACPI event "battery BAT0 00000080 00000001"
Uns interessiert dabei der Teil in Anführungszeichen nach received event.
Er wird von der event Zeile abgedeckt, die Sie weiter unten anlegen werden.
Machen Sie sich keine Sorgen, falls ihr System mehrere oder immer dasselbe
Ereignis erzeugt. Solange nur irgendein Ereignis generiert wird, funktioniert
das Wechseln des Runlevels.
Befehlsauflistung
6.8: /etc/acpi/events/pmg_ac_adapter
event=ac_adapter.*
action=/etc/acpi/actions/pmg_switch_runlevel.sh %e
Befehlsauflistung
6.9: /etc/acpi/events/pmg_battery
event=battery.*
action=/etc/acpi/actions/pmg_switch_runlevel.sh %e
Abschließend muss acpid neu gestartet werden, um die Änderungen zu erkennen.
Befehlsauflistung
6.10: Abschluss der Einrichtung des automatischen Wechselns des Runlevels
# /etc/init.d/acpid restart
Probieren Sie es aus: Trennen Sie Ihren Laptop vom Stromnetz und beobachten
Sie die Meldung "Switching to battery mode" im syslog. Schlagen Sie im
Kapitel für Probleme und Lösungen nach, falls das
Skript die Energiequelle nicht korrekt erkennen kann.
Ein Problem gilt es noch zu lösen: Beim Booten wird unabhängig von der
Stromquelle das Runlevel default gestartet. Das liegt daran, dass beim
Booten kein ACPI Ereignis ausgelöst wird. Eine Möglichkeit wäre, einen neuen
Eintrag in den Bootloader aufzunehmen, der über den Kernelparameter
softlevel=battery das Runlevel battery starten würde. Einfacher ist es
aber, beim Booten ein ACPI Ereignis vorzutäuschen.
pmg_switch_runlevel.sh entscheidet dann, ob ein Wechsel des
Runlevels nötig ist. Öffnen Sie /etc/conf.d/local.start in Ihrem
Lieblingseditor und ergänzen Sie folgende Zeilen:
Befehlsauflistung
6.11: local.start bearbeiten, um richtiges Runlevel beim Booten zu starten
/etc/acpi/actions/pmg_switch_runlevel.sh "battery/battery"
Nach diesen Vorbereitungen können die einzelnen Geräte konfiguriert werden.
3.
CPU Power Management
Mobile Prozessoren können Ihre Taktfrequenz variieren. Einige erlauben sogar
eine Anpassung der Spannung. Da ihre CPU die meiste Zeit nicht vollständig
ausgelastet ist, muss sie auch nicht auf der höchsten Frequenz laufen und
eine Verringerung selbiger wird viel Energie sparen - meist ohne
Leistungseinbußen.
3.2 Erklärung einiger technischer Begriffe
Im Zusammenhang mit Freqenzänderungen der CPU tauchen Begriffe auf, die Ihnen
möglicherweise unbekannt sind. Hier ist eine kleine Übersicht.
Zunächst einmal muss der Kernel in der Lage sein, die Frequenz der CPU
anzupassen. Der CPUfreq Prozessortreiber kümmert sich bei ihrer CPU
darum. Aus diesem Grund ist es wichtig, im Kernel den richtigen Treiber
auszuwählen. Sie sollten das bereits weiter oben erledigt haben. Hat der Kernel
nun die Möglichkeit, verschiedene Frequenzen auszuwählen, muss er sich zu einem
Zeitpunkt für eine davon entscheiden. Die Auswahl der Frequenz erfolgt gemäß
einer Taktik (englisch policy), die wiederum aus einer CPUfreq
Taktik und einem Regler (englisch governor) besteht. Eine CPUfreq
Taktik ist lediglich eine minimale und eine maximale Taktfrequenz, zwischen
denen die gewählte Frequenz liegen muss. Der Regler entscheidet dann, welche der
in diesem Bereich verfügbaren Frequenzen verwendet wird. Beispielsweise
entscheidet sich der powersave Regler immer für die kleinste mögliche
Frequenz und der performance Regler für die größtmögliche. Der
userspace Regler trifft keine eigenmächtige Entscheidung, sondern
übernimmt die Vorgabe des Benutzers (oder eines Programms im userspace). Das
heißt praktisch, dass er die Frequenz aus der Datei
/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed ausliest.
Bisher hört sich das ganze noch nicht unbedingt nach dynamischer
Frequenzänderung an und in der Tat ist es das auch noch nicht. Dynamik erreicht
man aber durch unterschiedliche Ansätze. Beispielsweise trifft der ondemand
Regler seine Entscheidung in Abhängigkeit von der Auslastung der CPU.
Gleiches erledigen verschiedene Programme wie cpudyn,
cpufreqd, powernowd. ACPI Ereignisse können dazu benutzt werden,
dynamische Frequenzänderungen zu aktivieren oder abzuschalten.
3.3 Setzen der Frequenz
Eine Verminderung der Prozessorgeschwindigkeit bringt zwei Vorteile: Zum einen
wird weniger Energie verbraucht, zum anderen entwickelt sich weniger Wärme.
Demgegenüber steht natürlich ein Verlust an Performanz. Der Trick ist nun,
eine Prozessorgeschwindigkeit auszuwählen, die hoch genug ist, um flüssiges
Arbeiten zu ermöglichen, gleichzeitig aber so niedrig, dass der Prozessor
maximal ausgelastet ist.
|
Das Ändern der Prozessorgeschwindigkeit (engl. frequency scaling,
speedstepping) wird nicht von jedem Laptop unterstützt. Das Kapitel Probleme und Lösungen enthält eine Liste der
unterstützten Prozessoren.
|
Es ist an der Zeit, zu testn, ob das Ändern der Prozessorgeschwindigkeit klappt.
Dazu installieren wir ein weiteres Tool: sys-power/cpufrequtils.
Befehlsauflistung
3.1: Checking CPU frequency
# emerge cpufrequtils
# cpufreq-info
Hier ist eine beispielhafte Ausgabe:
Befehlsauflistung
3.2: Beispielsausgabe von cpufreq-info
cpufrequtils 0.3: cpufreq-info (C) Dominik Brodowski 2004
Bitte melden Sie Fehler an linux@brodo.de.
analysiere CPU 0:
Treiber: centrino
Folgende CPUs können nur gleichzeitig ihre Frequenz variieren: 0
Hardwarebedingte Grenzen der Taktfrequenz: 600 MHz - 1.40 GHz
mögliche Taktfrequenzen: 600 MHz, 800 MHz, 1000 MHz, 1.20 GHz, 1.40 GHz
mögliche Regler: conservative, ondemand, powersave, userspace, performance
momentane Taktik: die Frequenz soll innerhalb 1.40 GHz und 1.40 GHz.
liegen. Der Regler "performance" kann frei entscheiden,
welche Taktfrequenz innerhalb dieser Grenze verwendet wird.
momentane Taktfrequenz ist 1.40 GHz (verifiziert durch Nachfrage bei der
Hardware).
Probieren Sie ein paar Optionen von cpufreq-set aus, um sicherzugehen,
dass das Ändern der CPU Frequenz richtig funktioniert. Beispielsweise können
Sie durch Aufruf von cpufreq-set -g ondemand den ondemand Regler
aktivieren und die Änderung durch cpufreq-info überprüfen. Das Kapitel
Probleme und Lösungen hilft bei eventuell
auftretenden Schwierigkeiten weiter.
cpufrequtils kann in einem automatischen Modus laufen (wenn Sie den
ondemand Regler verwenden), aber Sie können auch zum userspace
Regler wechseln, wenn Sie manuell eine bestimmte Geschwindigkeit setzen wollen.
Sie können Ihre CPU auch statisch auf die höchste oder niedrigste Frequenz
setzen, indem Sie den Regler performance bzw. powersave
verwenden.
Befehlsauflistung
3.3: Ändern der CPU-Geschwindigkeit
# cpufreq-set -g performance
# cpufreq-set -g powersave
# cpufreq-set -g userspace
# cpufreq-set -f 2.00ghz
3.4 Weitere CPU-Geschwindigkeit-Tools
Obwohl cpufrequtils das beste Rundum-Programm ist, gibt es noch einige
weitere in Portage vorhandene Möglichkeiten. Die folgende Tabelle stellt eine
kurze Übersicht über die verfügbaren CPU-Geschwindigkeit-Tools dar. Sie ist grob
eingeteilt in die drei Kategorien Kernel für Ansätze, die
Kernelunterstützung benötigen, Daemon für Programme, die unsichtbar im
Hintergrund arbeiten und GUI für Programme, die eine grafische Oberfläche
zur einfachen Konfiguration bieten.
| Name |
Kategorie |
Entscheidung über Frequenzwechsel |
Kernel Regler |
Eigene Regler |
Kommentare |
| 'ondemand' Regler |
Kernel |
CPU Auslastung |
N.A. |
N.A. |
Wählt die größtmögliche Frequenz bei Auslastung der CPU und reduziert die
Frequenz andernfalls. Weitere Einstellungen können in
/sys/devices/system/cpu/cpu0/cpufreq/ondemand/ vorgenommen
werden. Es werden weitere Programme oder Skripte benötigt, wenn ein Wechseln
des Reglers oder ähnliches gewünscht wird.
|
| 'conservative' governor |
Kernel |
CPU load |
N.A. |
N.A. |
Im Gegensatz zum ondemand Regler wird nicht zur größtmöglichen Frequenz
gesprungen, wenn die CPU ausgelastet ist, sondern eine stufenweise
Frequnzerhöhung vorgenommen.
Wählt die größtmögliche Frequenz bei Auslastung der CPU und reduziert die
Frequenz andernfalls. Weitere Einstellungen können in
/sys/devices/system/cpu/cpu0/cpufreq/conservative/ vorgenommen
werden. Es werden weitere Programme oder Skripte benötigt, wenn ein Wechseln
des Reglers oder ähnliches gewünscht wird.
|
| cpudyn |
Daemon |
CPU Auslastung |
Performance, powersave |
Dynamic |
Unterstütz auch Standby für die Festplatte - normalerweise erreicht man
aber durch den laptop mode bessere Ergebnisse.
|
| cpufreqd |
Daemon |
Batteriezustand, CPU Auslastung, Temperatur, laufende Programme und mehr
|
Alle verfügbaren |
Keine |
Ausgefeilte (damit aber auch komplizierte) Konfigurationsmöglichkeiten.
Erweiterbar durch Plugins wie Überwachung von Sensoren (lm_sensors) oder
Abstimmung einiger Grafikkarten von NVidia. Cpufreqd kann mit
Multiprozessorsystemen (SMP) umgehen und besitzt einen manuellen Modus.
|
|
powernowd
|
Daemon |
CPU Auslastung |
Keine |
Passive, sine, aggressive |
Unterstützt Mehrprozessorsysteme.
|
|
ncpufreqd
|
Daemon |
Temperatur |
Keine |
Powersave, performance |
Wechselt den Regler zwischen performance und powersave je nach
Temperatur des Systems. Sehr nützlich für Laptops mit notorischen
Temperaturproblemen.
|
| speedfreq |
Daemon |
CPU Auslastung |
Keine |
Dynamic, powersave, performance, fixed speed |
Einfache Konfiguration mit einer schönen Client/Server Schnittstelle. Setzt
einen Kernel 2.6 voraus. Wird nicht gewartet, enthält Bugs und wurde aus
diesem Grund aus Portage entfernt. Wenn Sie speedfreq immer noch einsetzen,
wechseln Sie bitte auf cpufreqd.
|
| gtk-cpuspeedy |
GUI |
Keine |
Keine |
Keine |
Gnome Applikation, ein grafisches Tool zum manuellen Wechsel der CPU
Frequenz. Bietet keine Möglichkeiten zur automatischen Anpassung an.
|
| klaptopdaemon |
GUI |
Batteriezustand |
Alle verfügbaren |
Keine |
KDE Applikation, 'ondemand' Regler wird für dynamische
Freqenzänderungen benötigt.
|
Eine automatische Anpassung der Prozessorgeschwindigkeit erscheint auf den
ersten Blick einfach. In der Tat ist es allerdings etwas komplizierter - ein
schlechter Algorithmus kann dazu führen, dass ständig zwischen zwei
Geschwindigkeiten umgeschaltet wird oder die Geschwindigkeit unnötig hoch ist.
Sie haben die Qual der Wahl. Falls Sie sich nicht entscheiden können,
probieren Sie zunächst cpufreqd aus.
Befehlsauflistung
4.4: Installation von cpufreqd
# emerge cpufreqd
cpufreqd wird in der Datei /etc/cpufreqd.conf konfiguriert.
Die standardmäßig installierte Konfigurationsdatei sieht auf den ersten Blick
etwas verwirrend aus. Ich empfehle, sie durch die Konfigurationsdatei von
Gentoo Entwickler Henrik Brix Andersen (siehe unten) zu ersetzen. Sie benötigen
dafür cpufreqd-2.0.0 oder neuer. Ältere Versionen setzen eine andere Syntax für
die Konfigurationsdatei ein.
Befehlsauflistung
4.5: /etc/cpufreqd.conf (cpufreqd-2.0.0 und später)
[General]
pidfile=/var/run/cpufreqd.pid
poll_interval=3
enable_plugins=acpi_ac, acpi_battery
enable_remote=1
remote_group=wheel
[/General]
[Profile]
name=ondemand
minfreq=0%
maxfreq=100%
policy=ondemand
[/Profile]
[Profile]
name=conservative
minfreq=0%
maxfreq=100%
policy=conservative
[/Profile]
[Profile]
name=powersave
minfreq=0%
maxfreq=100%
policy=powersave
[/Profile]
[Profile]
name=performance
minfreq=0%
maxfreq=100%
policy=performance
[/Profile]
[Rule]
name=battery
ac=off
profile=conservative
[/Rule]
[Rule]
name=battery_low
ac=off
battery_interval=0-10
profile=powersave
[/Rule]
[Rule]
name=ac
ac=on
profile=ondemand
[/Rule]
Jetzt können Sie den cpufreqd Daemon starten. Fügen Sie ihn weiterhin zum
default und zum battery Runlevel hinzu.
Befehlsauflistung
4.6: Starten von cpufreqd
# rc-update add cpufreqd default battery
# /etc/init.d/cpufreqd start
Manchmal möchte man eine andere Frequenz wählen als der Daemon, beispielsweise
wenn der Batteriestand niedrig ist, aber in Kürze wieder Stromversorgung
verfügbar sein wird. In diesem Fall kann man den manuellen Modus von cpufreqd
per cpufreqd-set manual aktivieren und eine der konfigurierten Taktiken
(so wie von cpufreqd-get aufgelistet) wählen. Man verlässt den manuellen
Modus durch Aufruf von cpufreqd-set dynamic.
|
Führen Sie nicht mehrere der oben aufgeführten Programme gleichzeitig aus. Das
kann dazu führen, dass ständig zwischen zwei Geschwindigkeiten hin- und
hergesprungen wird.
|
3.5 Überprüfen der Einstellungen
Zum Schluss sollten Sie überprüfen, dass die neuen Regeln gut funktionieren.
Das kann man auf einfache Weise kontrollieren, indem man die
Prozessorgeschwindigkeit eine Zeitlang überwacht.
Befehlsauflistung
5.7: Prozessorgeschwindigkeit überwachen
# watch grep \"cpu MHz\" /proc/cpuinfo
Falls /proc/cpuinfo bei Ihnen nicht aktualisiert wird (siehe
Probleme und Lösungen), beobachten Sie die
CPU-Frequenz mit sys-apps/x86info:
Befehlsauflistung
5.8: Alternative Überwachung der Prozessorgeschwindigkeit
# watch x86info -mhz
Abhängig von ihrer Konfiguration sollte die Geschwindigkeit bei starker
Prozessornutzung ansteigen, bei wenig Aktivität sinken oder einfach auf dem
gleichen Niveau bleiben. Wenn Sie cpufreqd benutzen und verbosity in
cpufreqd.conf auf 5 oder höher gesetzt ist, erhalten Sie weitere
Details zu den Vorgängen im syslog.
4.
LCD Power Management
Wie man in Bild 1.1 sieht, verbraucht der
LCD Bildschirm typischerweise am meisten Energie. Aus diesem Grund ist es nicht
nur wichtig, den Bildschirm bei Nichtgebrauch abzuschalten, sondern auch eine
Reduzierung der Hintergrundbeleuchtung kann viel Energie einsparen. Die
meisten Laptops bieten diese Möglichkeit ebenfalls an.
4.2 Standby Einstellungen
Als ersten sollten Sie die Einstellungen zu Standby/Suspend/Abschalten des
Bildschirms überprüfen. Bitte konsultieren Sie dazu gegebenenfalls das
Handbuch ihres Windowmanagers. Terminals können mit den Befehlen
setterm -blank <anzahl-der-minutenM>, setterm -powersave on
und setterm -powerdown <anzahl-der-minutenM> kontrolliert werden.
In Xorg ändert man /etc/X11/xorg.conf:
Befehlsauflistung
2.1: LCD-Suspend Einstellungen in X.org
Section "ServerFlags"
Option "blank time" "5"
Option "standby time" "10"
Option "suspend time" "20"
Option "off time" "30"
[...]
EndSection
[...]
Section "Monitor"
Identifier [...]
Option "DPMS"
[...]
EndSection
4.3 Dimmen der Hintergrundbeleuchtung
Wohl noch wichtiger ist es, die Hintergrundbeleuchtung zu dimmen. Falls Sie
die Einstellungen mit einem Programm steuern können, schreiben Sie ein
einfaches Skript und platzieren es im battery Runlevel. Das folgende
Skript sollte auf den meisten IBM Thinkpads und Toshiba Laptops funktionieren.
Sie müssen dafür die entsprechende Option im Kernel aktivieren (nur IBM
Thinkpads). Bei Toshiba Laptops muss zunächst das Paket
sys-power/acpitool installiert werden. Überspringen Sie die Konfiguration
von thinkpad_acpi (früher ibm_acpi genannt) wie unten beschrieben
in diesem Fall.
|
Die Unterstützung zum Einstellen der Hintergrundbeleuchtung ist in thinkpad_acpi
als experimentell markiert. Es wird direkt auf die Hardware zugegriffen und kann
ernsthaften Schaden im System anrichten. Bitte informieren Sie sich auf der
thinkpad_acpi Internetseite
|
Um die Hintergrundbeleuchtung verändern zu können, muss das thinkpad_acpi Modul
mit dem Parameter experimental geladen werden.
Befehlsauflistung
3.2: Automatisches Laden des thinkpad_acpi Moduls
# echo "options thinkpad_acpi experimental=1" >> /etc/modprobe.d/thinkpad_acpi
# update-modules
# echo thinkpad_acpi >> /etc/modules.autoload.d/kernel-2.6
# modprobe thinkpad_acpi
Obige Kommandos sollten ohne Fehlermeldungen ausgeführt werden und eine Datei
/proc/acpi/ibm/brightness erzeugt werden. Ein Init Skript
übernimmt die Einstellung der Hintergrundbeleuchtung passend zum Stromzustand.
Befehlsauflistung
3.3: /etc/conf.d/lcd-brightness
BRIGHTNESS_AC=7
BRIGHTNESS_BATTERY=4
Befehlsauflistung
3.4: /etc/init.d/lcd-brightness
#!/sbin/runscript
set_brightness() {
if on_ac_power
then
LEVEL=${BRIGHTNESS_AC:-7}
else
LEVEL=${BRIGHTNESS_BATTERY:-4}
fi
if [ -f /proc/acpi/ibm/brightness ]
then
ebegin "Setting LCD brightness"
echo "level ${LEVEL}" > /proc/acpi/ibm/brightness
eend $?
elif [[ -e /usr/bin/acpitool && -n $(acpitool -T | grep "LCD brightness") ]]
then
ebegin "Setting LCD brightness"
acpitool -l $LEVEL >/dev/null || ewarn "Unable to set lcd brightness"
eend $?
else
ewarn "Setting LCD brightness is not supported."
ewarn "For IBM Thinkpads, check that thinkpad_acpi is loaded into the kernel"
ewarn "For Toshiba laptops, you've got to install sys-power/acpitool"
fi
}
start() {
set_brightness
}
stop () {
set_brightness
}
Nach dem Abspeichern des Skripts fügen Sie es dem battery Runlevel hinzu.
Befehlsauflistung
3.5: Aktivieren der automatischen Anpassung der Hintergrundbeleuchtung
# chmod +x /etc/init.d/lcd-brightness
# rc-update add lcd-brightness battery
# rc
5.
Festplatten Power Management
Festplatten verbrauchen im Ruhezustand weniger Energie. Aus diesem Grund sollte
man Ruhezustände aktivieren, sobald die Festplatte eine bestimmte Zeit lang
nicht benutzt wird. Ich zeige Ihnen zwei Möglichkeiten, wie man das
bewerkstelligen kann. Zunächst kann man mit Hilfe des sogenannten laptop-mode
am meisten Energie sparen, da verschiedene Maßnahmen dafür sorgen, dass
Schreibzugriffe nicht oder zumindest später ausgeführt werden. Der Nachteil
ist, dass ein Stromausfall oder Kernelabsturz eine höhere Gefahr für
Datenverlust darstellt als sonst. Wenn Sie dieses Risiko nicht eingehen wollen,
müssen Sie besonders darauf achten, dass keine Prozesse häufig schreibend auf
die Festplatte zugreifen. Danach können Sie als zweite Alternative die
Stromsparmaßnahmen ihrer Festplatte per hdparm aktivieren.
5.2 Mehr idle Zeit - laptop-mode
Aktuelle 2.6-Kernel beinhalten den sogenannten laptop-mode. Einmal
aktiviert, werden "dirty buffers" (veränderte Speicherstellen) bei Lesezugriffen
oder erst nach 10 Minuten (anstelle der sonstigen 30 Sekunden) auf die
Festplatte geschrieben. Dadurch wird die Zeit minimiert, während der die
Festplatte aktiv sein muss.
Befehlsauflistung
2.1: Automatischer Start von laptop-mode
# emerge laptop-mode-tools
laptop-mode-tools wird in /etc/laptop-mode/laptop-mode.conf
konfiguriert. Passen Sie die Datei nach Ihren Wünschen an, sie ist sehr
ausführlich dokumentiert. Durch Aufruf von
rc-update add laptop_mode battery wird der laptop-mode automatisch im
Batteriezustand aktiviert.
Neuere Versionen (ab 1.11) der laptop-mode-tools kommen mit einem neuen
Programm lm-profiler. Damit können Sie die Auslastung von Festplatte
und Netzwerk überwachen lassen und Empfehlungen erhalten, gewisse Dienste zu
deaktiveren. Die Dienste können entweder durch die in laptop-mode-tools
eingebaute Runlevelunterstützung deaktiviert werden (was von Gentoos
/sbin/rc rückgängig gemacht würde) oder durch Manipulation Ihrer
default/battery Runlevel (empfohlen).
Befehlsauflistung
2.2: Beispielsausgabe von lm-profiler
# lm-profiler
Profiling session started.
Time remaining: 600 seconds
[4296896.602000] amarokapp
Time remaining: 599 seconds
[4296897.714000] sort
[4296897.970000] mv
Time remaining: 598 seconds
Time remaining: 597 seconds
[4296900.482000] reiserfs/0
Nachdem es 10 Minuten lang Ihr System analysiert hat, wird lm-profiler eine
Liste von Diensten ausgeben, die in diesem Zeitraum Festplattenzugriffe
verursacht haben könnten.
Befehlsauflistung
2.3: lm-profiler schlägt vor, Dienste zu deaktiveren
Program: "atd"
Reason: standard recommendation (program may not be running)
Init script: /etc/init.d/atd (GUESSED)
Do you want to disable this service in battery mode? [y/N]: n
Um atd wie in obigem Beispiel zu deaktivieren, führen Sie rc-update
del atd battery aus. Passen Sie auf, dass Sie keine Dienste deaktivieren,
die das System benötigt - lm-profiler wird normalerweise den einen oder
anderen Fehlalarm generieren. Deaktivieren Sie keine Dienste, über deren Aufgabe
Sie sich im Unklaren sind.
5.3 Schreibzugriffe verringern
Wenn Sie laptop-mode nicht benutzen wollen, müssen Sie besonders darauf achten,
dass Dienste mit häufigen Festplattenzugriffen deaktiviert werden - der
syslogd ist ein typischer Kandidat. Normalerweise werden Sie ihn nicht
komplett abschalten wollen. Sie können ihn aber so einrichten, dass "unnötige"
Ereignisse nicht protokolliert werden und damit keine Festplattenaktivität
auslösen. Cups schreibt periodisch auf die Festplatte, überlegen Sie
sich,
cups auszuschalten und nur bei Bedarf zu starten.
Befehlsauflistung
3.4: cups im Batteriezustand deaktivieren
# rc-update del cupsd battery
Sie können auch den lm-profiler der laptop-mode-tools (siehe oben)
benutzen, um Diensten mit häufigen Festplattenzugriffen auf die Schliche zu
kommen. Nachdem Sie sie alle abgeschaltet haben, können Sie mit der Einrichtung
von hdparm fortfahren.
5.4 hdparm
Die zweite Alternative ist der Einsatz von hdparm. Überschlagen Sie
diesen Teil, falls Sie laptop-mode benutzen. Andernfalls bearbeiten Sie
/etc/conf.d/hdparm und fügen die folgenden Zeilen zu Ihren
Geräteeinträgen hinzu. Dieses Beispiel nimmt an, dass Ihre Festplatte hda
genannt ist:
Befehlsauflistung
4.5: /etc/conf.d/hdparm zur Aktivierung von Ruhezuständen der Fesplatte verwenden
hda_args="-q -S12"
Dies wird Power Management für Ihre Festplatte aktivieren. Falls Sie das
Power Management wieder deaktivieren möchten, können Sie
/etc/conf.d/hdparm bearbeiten und die Werte zu -q -S0 ändern
oder einfach hdparm -q -S0 /dev/hda ausführen.
Die einzelnen Optionen werden in man hdparm erklärt. Obwohl Sie
hdparm auch manuell ausführen können, wenn Sie gerade die Batterie
benutzen, indem Sie /etc/init.d/hdparm start ausführen, ist es viel
einfacher das Starten und Beenden zu automatisieren. Um dies zu tun, fügen Sie
hdparm zum Runlevel battery hinzu, so dass es das Power Mangement
automatisch aktiviert.
Befehlsauflistung
4.6: Festplatten Power Management automatisieren
# rc-update add hdparm battery
|
Seien Sie vorsichtig mit den Schlafzuständen der Festplatte. Die Benutzung von
zu kleinen Intervallen kann sich schädlich auf die Lebensdauer der Festplatte
auswirken und sogar zum Garantieverlust führen.
|
5.5 Sonstige Tricks
Sie können sogar so weit gehen und den Auslagerungsspeicher im Batteriebetrieb
abschalten. Das kann aber nur dann funktionieren, wenn genügend
Arbeitsspeicher vorhanden ist, so dass der Auslagerungsspeicher kaum genutzt
wird. Andernfalls stehen Sie vor einem großen Problem.
Selbst wenn Sie auf den laptop-mode verzichten möchten, können Sie die
Zahl der Festplattenzugriffe verringern. Einige Verzeichnisse kann man als
tmpfs mounten - dieses spezielle Dateisystem speichert Daten nicht auf
der Festplatte, sonderm im Arbeitsspeicher. Beim unmounten gehen die Daten
verloren. Das /tmp Verzeichnis bietet sich beispielsweise dafür
an - Persistenz von Daten über einen Neustart hinaus ist dort sowieso nicht
garantiert. Wichtig ist, dass Sie über ausreichend viel Arbeitsspeicher
verfügen und kein Programm (beispielsweise ein Downloadmanager oder
Komprimierungsprogramm) außergewöhnlich viel Platz in /tmp
benötigt. Um /tmp von der Festplatte in den Arbeitsspeicher zu
verschieben, benötigen Sie tmpfs Unterstützung im Kernel und fügen dann
folgende Zeile in /etc/fstab ein:
Befehlsauflistung
5.7: Ändern von /etc/fstab um /tmp in den Arbeitsspeicher zu verschieben
none /tmp tmpfs size=32m 0 0
|
Wählen Sie den size (Größe des Verzeichnisses) Parameter mit besonderer
Vorsicht. Falls Sie unsicher sind, überspringen Sie diesen Tipp, es kann bei
falscher Konfiguration leicht zu Leistungseinbußen kommen. Falls Sie
/var/log auf diese Weise mounten möchten, sorgen Sie dafür, dass
die Logdateien vor dem unmounten auf die Festplatte geschrieben werden.
Logdateien sind wichtig. Versuchen Sie nicht, /var/tmp in den
Arbeitsspeicher zu verlagern. Portage benutzt es, um Programme zu
kompilieren...
|
6.
Power Management für andere Geräte
6.1 Grafikkarten
Wenn Sie eine Grafikkarte ihr Eigen nennen, die PowerPlay (dynamische
Taktänderungen für den Grafikprozessor GPU) unterstützt, können Sie dieses
Merkmal in X.org aktivieren. Öffnen Sie /etc/X11/xorg.conf und
fügen Sie die DynamicClocks Option im Device Abschnitt hinzu (bzw.
aktivieren Sie die Option). Bitte beachten Sie, dass DynamicClocks auf einigen
Systemen zu Abstürzen führt.
Befehlsauflistung
1.1: Aktivieren der ATI PowerPlay Unterstützung in X.org
Section "Device"
[...]
Option "DynamicClocks" "on"
EndSection
6.2 Wireless Power Management
Auch WLAN-Karten verbrauchen einiges an Energie. Analog zu den Festplatten, kann
man deren Power Management Eigenschaften aktivieren.
|
Das Skript geht davon aus, dass ihre WLAN-Karte wlan0 ist. Setzen Sie
dort den Namen ihres WLAN-Interfaces ein.
|
Fügen Sie die folgende Option zu /etc/conf.d/net hinzu, um
automatisch das Power Management für Ihre WLAN-Karte zu aktiveren:
Befehlsauflistung
2.2: Automatisiertes WLAN Power Management
iwconfig_wlan0="power on"
Schauen Sie sich man iwconfig für Details und weitere Optionen an, u.a.
Einstellungen zur Dauer zwischen Aufwachen und Timeout. Falls der Treiber Ihrer
WLAN-Karte und Ihr Access Point ein Ändern der "beacon time" zulässt, ist das
ein guter Ausgangspunkt, um noch mehr Energie einzusparen.
6.3 USB Power Management
Mit USB Geräten gibt es aus Sicht des Energiesparens zwei Probleme. Zum einen
verbrauchen Geräte wie USB Mäuse, Digitalkameras oder USB Sticks Energie, wenn
sie an den Laptop angeschlossen sind. Auch wenn man das nicht vermeiden kann,
sollten Sie sie bei Nichtgebrauch dennoch entfernen. Zum anderen greift der
USB Host Controller periodisch auf den Bus zu und verhindert dadurch, das der
Prozessor in den C3/4 Schlafzustand schalten kann. Im Kernel gibt es eine
experimentelle Option zur Aktivierung des Schlafzustands von USB Geräten durch
Treiberaufrufe oder über die power/state Dateien in
/sys.
Befehlsauflistung
3.3: Aktivierung der USB Schlafzustand-Unterstützung im Kernel
Device Drivers
USB support
[*] Support for Host-side USB
[*] USB suspend/resume (EXPERIMENTAL)
7.
Schlafzustände: Sleep, Standby und Suspend to Disk
ACPI legt verschiedene Schlafzustände fest. Die wichtigen sind
- S1 oder Standby
- S3 oder Suspend to RAM oder Sleep
- S4 oder Suspend to Disk oder Hibernate
Sie werden dann eingesetzt, wenn das System nicht benutzt wird, aber ein
Herunterfahren wegen der langen Bootzeit unerwünscht ist.
7.2 Sleep (S3)
Aus gutem Grund ist die Unterstützung der verschiedenen Schlafzustände als
experimentell markiert. APM Schlafzustände scheinen stabiler zu sein, leider
kann man ACPI und APM aber nicht gleichzeitig einsetzen.
Befehlsauflistung
2.1: Kernelkonfiguration für die verschiedenen suspend-Typen
Power Management Options --->
[*] Power Management support
[*] Suspend to RAM and standby
Sobald ihr Kernel wie oben abgebildet eingerichtet ist, können Sie das
hibernate-script zum Aktivieren der verschiedenen Schlafzustände
benutzen. Installieren wir es zuerst.
Befehlsauflistung
2.2: Installation von hibernate-script
# emerge hibernate-script
In /etc/hibernate müssen einige Einstellungen vorgenommen werden.
Das hibernate-script Paket bringt einige Konfigurationsdateien für jeden
Schlafzustand mit. Optionen, welche für alle Schlafmethoden gemeinsam sind, sind
in common.conf untergebracht; stellen Sie sicher, dass diese Datei
für Ihr System richtig eingerichtet ist.
Zur Konfiguration von Sleep bearbeiten Sie sysfs-ram.conf im
Verzeichnis /etc/hibernate. UseSysfsPowerState mem ist
bereits ausgewählt, aber falls Sie noch andere weitere Änderungen an diesem
bestimmten Schlafzustand (oder irgendeinen anderen) vornehmen müssen, fügen Sie
diese zu /etc/hibernate/hibernate.conf hinzu. Die Kommentare und
Namen der Optionen sind Ihnen dabei behilflich. Falls Sie nfs oder samba shares
über das Netzwerk benutzen, stellen Sie sicher die zugehörigen Init Skripte
herunterzufahren, um Zeitüberschreitungen zu vermeiden.
|
Für weitere Informationen über die Einrichtung von Schlafzuständen, lesen Sie
bitte man hibernate.conf.
|
Fertig? Jetzt ist die letzte Chance, ein Backup der Daten anzulegen, die Sie
nach Ausführung des nächsten Kommandos noch verwenden wollen. Beachten Sie,
dass Sie zum Aufwecken des Laptops meist eine spezielle Taste wie Fn
drücken müssen.
Befehlsauflistung
2.3: Sleep aufrufen
# hibernate-ram
Wenn Sie das hier lesen, scheint Sleep zu funktionieren. Sie können Standby
(S1) auf ähnliche Weise einrichten, indem Sie sysfs-ram.conf
editieren und "UseSysfsPowerState mem" zu "UseSysfsPowerState standby" ändern.
S3 and S4 sind allerdings die interessanteren Schlafzustände, da Sie
größere Energieeinsparungen erzielen.
7.3 Hibernate (S4)
Dieser Abschnitt beschreibt die Einrichtung des hibernate-Modus, bei dem ein
Schnappschuss des Systems auf Festplatte gesichert wird und das System
anschließend abgeschaltet wird. Beim Aufwecken wird dieser Schnappschuss wieder
eingelesen und Sie können Ihre Arbeit an genau der Stelle fortsetzen, an der
Sie zuvor hibernate aufgerufen haben.
|
Tauschen Sie keine Hardware, die im Betrieb nicht an- und absteckbar ist, aus,
wenn sie unterbrochen ist. Versuchen Sie nicht einen Schnappschuss mit einem
anderen Kernel, als den, mit dem er erstellt wurde, zu laden. Schalten Sie
jegliche NFS- oder Samba-Server/Clients aus bevor Sie den hibernate-Modus
einschalten.
|
Es gibt zwei verschiedene Implementierungen von S4. Zuerst gab es swsusp und
neuerdings tuxonice (früher suspend2) mit einer verbesserten Schnittstelle
(inklusive fbsplash Unterstützung). Ein Vergleich der Features
ist auf der tuxonice Homepage
verfügbar. Es gab auch eine Zeitlang Suspend-to-Disk (pmdisk), eine Abspaltung
von swsusp, die allerdings wieder mit swsusp verschmolzen wurde.
TuxOnIce ist noch nicht in den Hauptzweig des Kernels aufgenommen worden. Aus
diesem Grund müssen Sie entweder ihre Kernelquellen mit den auf tuxonice.net bereitgestellten Änderungen
patchen oder sys-kernel/tuxonice-sources benutzen.
Die Kernelkonfiguration für swsusp wie auch TuxOnIce sieht folgendermaßen aus:
Befehlsauflistung
3.4: Kernelkonfiguration für die verschiedenen hibernate Typen
Power Management support --->
[*] Hibernation (aka 'suspend to disk')
(/dev/SWAP) Default resume partition
Enhanced Hibernation (TuxOnIce)
--- Image Storage (you need at least one allocator)
[*] File Allocator
[*] Swap Allocator
--- General Options
[*] Compression support
[ ] Allow Keep Image Mode
[*] Replace swsusp by default
Die Konfiguration von swsusp ist relativ einfach. Wenn Sie den Pfad zur
Auslagerungsdatei nicht im Kernel abgespeichert haben, können Sie sie als
Kernelparameter mit der resume=/dev/SWAP Direktive übergeben. Falls
durch einen defekten Schnappschuss kein Booten möglich ist, übergeben Sie den
noresume Kernelparameter. Das hibernate-cleanup Init-Skript setzt
swsusp Schnappschüsse während des Boot-Prozesses außer Kraft.
Befehlsauflistung
3.5: swsusp-Schnappschüsse während des Bootens außer Kraft setzen
# rc-update add hibernate-cleanup boot
Benutzen Sie das hibernate-Skript, um hibernate mit swsusp aufzurufen. Setzen
Sie UseSysfsPowerState disk in /etc/hibernate/sysfs-disk.
|
Legen Sie vorher ein Backup ihrer Daten an. Rufen Sie sync vor der
Ausführung von hibernate aus, um zwischengespeicherte Daten auf die
Festplatte zu schreiben. Probieren Sie es zunächst außerhalb von X aus,
dann bei laufendem X-Server, aber ausgeloggt.
|
Falls es, verursacht durch uhci oder ähnlichem, zu Kernelpaniken kommt, können
Sie die USB Unterstützung als Modul kompilieren und vor Aktivierung des
Schlafzustands aus dem Kernel entfernen. Es gibt Konfigurationsoptionen hierfür
in common.conf.
Befehlsauflistung
3.6: Hibernate mit swsusp
# nano -w /etc/hibernate/common.conf
# hibernate
Der nächste Abschnitt diskutiert die Einrichtung von TuxOnIce inklusive
fbsplash Unterstützung für einen netten grafischen Fortschrittsbalken während
des hibernate Vorgangs.
Der erste Teil der Konfiguration ähnelt der von swsusp. Falls Sie den Ort
Ihrer Swap-Partition nicht im Kernel gespeichert haben, können Sie ihn durch
den resume=swap:/dev/SWAP Parameter übergeben. Wenn durch einen defekten
Schnappschuss kein Booten möglich ist, hängen Sie den Parameter noresume
an. Zusätzlich setzt das hibernate-cleanup Initskript
TuxOnIce-Schnappschüsse während des Boot Prozesses außer Kraft.
Befehlsauflistung
3.7: TuxOnIce-Schnappschüsse während des Boot-Prozesses außer Kraft setzen
# rc-update add hibernate-cleanup boot
Nun editieren Sie /etc/hibernate/tuxonice.conf und aktivieren
die TuxOnIce-Optionen, die Sie benötigen. Aktivieren Sie die
fbsplash-Optionen in common.conf noch nicht.
Befehlsauflistung
3.8: Hibernate mit TuxOnIce
# nano -w /etc/hibernate/tuxonice.conf
# hibernate
Bitte konfigurieren Sie fbplash jetzt, falls Sie das nicht schon erledigt
haben. Die Unterstützung für fbsplash während des hibernate Vorgangs wird vom
Paket sys-apps/tuxonice-userui bereitgestellt. Es muss mit
aktiviertem fbsplash USE Flag installiert werden.
Befehlsauflistung
3.9: Installation von tuxonice-userui
# echo "sys-apps/tuxonice-userui fbsplash" >> /etc/portage/package.use
# echo "sys-apps/tuxonice-userui" >> /etc/portage/package.keywords
# emerge tuxonice-userui
Das Ebuild weist Sie an, einen symbolischen Link auf das Thema ihrer Wahl zu
erstellen. Um beispielsweise das livecd-2005.1 Thema zu verwenden,
lautet der Befehl:
Befehlsauflistung
3.10: Benutzung des livecd-2005.1 Themas während des hibernate Vorgangs
# ln -sfn /etc/splash/livecd-2005.1 /etc/splash/tuxonice
Wenn Sie keinen schwarzen Bildschirm im ersten Abschnitt des
Wiederaufnahmeprozesses (englisch resume process) haben wollen, müssen Sie das
Werkzeug tuxoniceui_fbsplash zu Ihrem initrd Abbild hinzufügen.
Angenommen Sie haben diesen mit splash_geninitramfs erstellt und in
/boot/fbsplash-emergence-1024x768 gespeichert, hier eine kleine
Anleitung, um das Werkzeug hinzuzufügen.
Befehlsauflistung
3.11: tuxoniceui_fbsplash zu einem initrd Abbild hinzufügen
# mount /boot
# mkdir ~/initrd.d
# cp /boot/fbsplash-emergence-1024x768 ~/initrd.d/
# cd ~/initrd.d
# gunzip -c fbsplash-emergence-1024x768 | cpio -idm --quiet -H newc
# rm fbsplash-emergence-1024x768
# cp /usr/sbin/tuxoniceui_fbsplash sbin/
# find . | cpio --quiet --dereference -o -H newc | gzip -9 > /boot/fbsplash-tuxonice-emergence-1024x768
Danach passen Sie grub.conf (oder lilo.conf) an, so
dass Ihr TuxOnIce-Kernel
/boot/fbsplash-tuxonice-emergence-1024x768 als initrd Abbild
benutzt. Mit untenstehendem Aufruf können Sie einen Testlauf ohne eigentliches
hibernate starten.
Befehlsauflistung
3.12: Testlauf für fbsplash hibernate
# tuxoniceui_fbsplash -t
Danach öffnen Sie /etc/hibernate/common.conf erneut und
aktivieren die fbsplash Optionen. Rufen Sie hibernate auf und Sie
erhalten eine nette grafische Fortschrittsanzeige.
8.
Probleme und Lösungen
F: Ich versuche die CPU Frequenz zu ändern, aber
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor existiert
nicht.
A: Stellen Sie sicher, dass ihr Prozessor das Ändern der Frequenz
unterstützt und das Sie den richtigen Treiber für ihren Prozessor ausgewählt
haben. Hier ist eine Liste der Prozessoren, die von cpufreq unterstützt werden
(Kernel 2.6.7): ARM Integrator, ARM-SA1100, ARM-SA1110, AMD Elan - SC400, SC410,
AMD mobile K6-2+, AMD mobile K6-3+, AMD mobile Duron, AMD mobile Athlon, AMD
Opteron, AMD Athlon 64, Cyrix Media GXm, Intel mobile PIII und Intel mobile
PIII-M bei bestimmten Chipsätzen, Intel Pentium 4, Intel Xeon, Intel Pentium M
(Centrino), National Semiconductors Geode GX, Transmeta Crusoe, VIA Cyrix 3 /
C3, UltraSPARC-III, SuperH SH-3, SH-4, mehrere "PowerBook" und "iBook2" sowie
verschiedene Prozessoren in ACPI 2.0-kompatiblen Systemen (nur wenn "ACPI
Processor Performance States" über die ACPI/BIOS Schnittstelle verfügbar sind).
F: Mein Laptop unterstützt Frequenzänderungen des Prozessors, aber
/sys/devices/system/cpu/cpu0/cpufreq/ ist leer.
A: Schauen Sie nach ACPI Fehlermeldungen per dmesg | grep ACPI.
Eventuell ist das Problem mit einem BIOS Update in den Griff zu bekommen,
insbesondere wenn eine falsche DSDT angezeigt wird. Falls kein BIOS Update zur
Verfügung steht, kann man DSDT Fehler auch selber beheben - das wird an anderer
Stelle beschrieben.
F: Mein Laptop unterstützt Frequenzänderungen des Prozessors, aber
/proc/cpuinfo meldet keine Änderungen.
A: Wahrscheinlich haben Sie die Unterstützung für
Mehrprozessorsysteme (englisch "symmetric multiprocessing support"; CONFIG_SMP)
im Kernel aktiviert. Deaktivieren Sie es und es sollte funktionieren. Einige
ältere Kernel hatten diesbezüglich einen Fehler. In diesem Fall führen Sie
emerge x86info aus, konfigurieren Sie ihren Kernel wie angegeben und
überprüfen und überprüfen Sie die aktuelle Prozessorgeschwindigkeit mit
x86info -mhz.
F: Ich kann die Prozessorgeschwindigkeit ändern, erreiche in einem
anderen Betriebssystem aber tiefere Werte.
A: Sie können das Ändern der Prozessorgeschwindigkeit mit ACPI Drosselung
(throttling) kombinieren, um eine geringere Minimalfrequenz zu erhalten.
Allerdings spart man dadurch kaum mehr Energie. Drosselung ist am ehesten
sinnvoll, um die Temperatur niedrig zu halten. Den aktuellen Status erhält man
mit cat /proc/acpi/processor/CPU/throttling. Änderungen können Sie durch
echo -n "0:x" > /proc/acpi/processor/CPU/limit vornehmen, wobei x einer
der in /proc/acpi/processor/CPU/throttling aufgelisteten Zustände
ist.
F: Beim Konfigurieren des Kernels tauchen die Regler für "kernel",
"powersave" und "userspace" auf, aber der Regler für "ondemand" fehlt. Was soll
ich tun?
A: Der "ondemand"-Regler wird nun in den neueren Kernelquellen
eingebunden. Versuchen Sie diese zu aktualisieren.
F: Die Batteriezeit ist geringer als vorher.
A: Überprüfen Sie die BIOS Einstellungen. Vielleicht haben Sie vergessen,
einige Einstellungen wieder zu aktivieren.
F: Meine Batterie ist voll geladen, KDE geht allerdings von 0% aus und
fährt das System herunter.
A: Stellen Sie sicher, dass Unterstützung für die Batterie in den Kernel
kompiliert ist. Falls Sie es als Modul kompiliert haben, laden Sie das Modul,
bevor Sie KDE starten.
F: Im Systemprotokoll erhalte ich Meldungen wie "logger: ACPI group
battery / action battery is not defined".
A: Diese Meldung wird vom /etc/acpi/default.sh script
erzeugt, welches mit acpid ausgeliefert wird. Sie können die Meldung gefahrlos
ignorieren. Möchten Sie sie loswerden, kommentieren Sie die entsprechende Zeile
in /etc/acpi/default.sh wie folgt:
Befehlsauflistung
1.1: Warnung über unbekannte acpi Events abschalten
*) # logger "ACPI action $action is not defined"
F: Ich habe einen Dell Inspiron 51XX und erhalte keine ACPI Ereignisse.
A: Das scheint ein Bug im Kernel zu sein. Weitere Informationen gibt es
hier.
F: Ich habe die DynamicClocks Option in xorg.conf
aktiviert und jetzt stürzt X.org dauernd ab / der Bildschirm bleibt
schwarz / mein Laptop fährt nicht mehr richtig herunter.
A: DynamicClocks funktioniert nicht auf allen Systemen
zuverlässig. Schalten Sie die Option ab.
F: Ich möchte TuxOnIce verwenden, aber es beschwert sich über eine zu
kleine swap-Partition. Ein Vergrößern dieser ist nicht möglich.
A: Wenn Sie genug freien Speicherplatz auf ihrem System haben, können
Sie anstelle von swapwriter filewriter verwenden. Das hibernate-script
unterstützt diese Option. Weitere Informationen gibt es in
/usr/src/linux/Documentation/power/tuxonice.txt.
F: Ich habe eine neue Batterie gekauft - sie hält aber nur ein paar
Minuten! Was mache ich falsch?
A: Folgen Sie den Anweisungen des Herstellers und laden Sie die Batterie
vollständig auf.
F: Obiges hilft nicht. Was soll ich jetzt tun?
A: Einige als "neu" verkaufte Batterien liegen schon mehrere Monate auf
Lager und sind nicht mehr zu gebrauchen. Probieren Sie folgendes:
Befehlsauflistung
1.2: Batteriestatus überprüfen
$ grep capacity /proc/acpi/battery/BAT0/info
design capacity: 47520 mWh
last full capacity: 41830 mWh
Wenn die "last full capacity", also die beim letzten vollständigen Laden
erreichte Kapazität, sich signifikant von der "design capacity" unterscheidet,
ist die Batterie wahrscheinlich kaputt. Machen Sie ihre Garantieansprüche
geltend.
F: Mein Problem ist hier nicht aufgelistet. Wo bekomme ich Hilfe?
A: Sie können mich, Dennis
Nienhüser, direkt kontaktieren. Die Gentoo Foren sind ebenfalls ein
sehr guter Anlaufpunkt. Es gibt dort auch ein deutsches Forum. Wenn Sie IRC
vorziehen, probieren Sie es im #gentoo-laptop Kanaly.
Die Inhalte dieses Dokuments sind unter der Creative Commons -
Namensnennung / Weitergabe Lizenz lizenziert.
|