Einige der Stromsparfunktionen führt das APM-BIOS selbstständig aus. Stand-by und Suspend kann man auf vielen Notebooks mit Tastenkombinationen oder mit Schließen des Deckels aktivieren. Dazu ist erstmal keinerlei Funktion seitens des Betriebssystems nötig. Wer diese Betriebsarten jedoch per Kommando einleiten möchte, ist darauf angewiesen, dass vor dem Suspend noch bestimmte Aktionen ausgeführt werden. Wer ausserdem einfach nur den Ladezustand der Batterie angezeigt bekommen möchte, muss entsprechende Pakete und einen geeigneten Kernel installiert haben.
Bei den fertigen Kernels von SUSE LINUX ist der APM-Support fest eingebaut, wird aber nur aktiviert, falls kein ACPI im BIOS implementiert ist und ein APM-BIOS gefunden wird. Um den APM-Support einzuschalten, muss ACPI am Bootprompt mit acpi=off ausgeschaltet werden. Ob APM aktiviert wurde, lässt sich leicht mit dem Kommando cat /proc/apm nachprüfen. Wenn hier eine Zeile mit diversen Zahlen erscheint, ist alles in Ordnung. Jetzt sollte ein shutdown -h zum Ausschalten des Computers führen.
Da manche BIOS-Implementierungen sich nicht exakt an Standards halten, kommt es manchmal zu merkwürdigem Verhalten. Manche Probleme kann man mit speziellen Bootparametern umgehen (früher waren dies Kernelkonfigurationsoptionen). Alle Parameter werden am Bootprompt in der Form apm=<parameter> eingegeben:
APM Support ein- oder ausschalten
Während des Ausführens von BIOS-Funktionen Interrupts zulassen.
BIOS hat eine nicht ordnungsgemäß funktionierende „GetPowerStatus“-Funktion.
Den Prozessor vor dem Shutdown in den Real Mode zurückschalten.
APM Ereignisse im Syslog protokollieren.
Nach dem Shutdown das System ausschalten.
Zeit in 1/100 Sekunden, in der nach einem Suspendereignis weitere Suspendereignisse ignoriert werden.
Prozentsatz der Systeminaktivität, ab der die BIOS-Funktion idle aufgerufen wird (0=immer, 100=nie).
Zeitraum in 1/100 Sekunden, über dem die System(in)aktivität ermittelt wird.
Der Daemon apmd dient zur Überwachung der Batterie und kann bestimmte Aktionen auslösen, wenn ein Stand-by- oder Suspend-Ereignis eintritt. Er befindet sich im Paket apmd. Er ist nicht unbedingt zum Betrieb notwendig, kann jedoch bei manchen Problemen recht nützlich sein.
Der apmd wird nicht automatisch beim Booten gestartet. Ist dies jedoch erforderlich, kann man mit dem YaST Runlevel-Editor die Einstellungen zu den Systemdiensten verändern. Alternativ kann auch das Programm chkconfig verwendet werden. Manuell kann er mit dem Kommando rcapmd start gestartet werden.
Zur Konfiguration gibt es in /etc/sysconfig/powermanagement einige Variablen. Die Datei ist mit Kommentaren versehen, deshalb werden hier nur einige Hinweise gegeben.
Damit wird veranlasst, dass das Verhalten der Festplatte an den Zustand der Stromversorgung angepasst wird. Dazu gibt es eine Reihe weiterer Variablen, die entweder mit APMD_BATTERY oder APMD_AC beginnen. Die ersteren enthalten die Einstellungen für den Batteriebetrieb, die letzteren die für den Betrieb mit externer Stromversorgung.
Die Zeit von Platteninaktivität, nach der diese angehalten wird. Die Werte sind im Abschnitt 9.4. “Pause für die Festplatte” oder in der Manualpage zu hdparm, Option -S, beschrieben.
Die Zeit zwischen zwei Läufen des Kernel Update Deamons.
Das maximale Alter gepufferter Daten.
Der maximale Füllstand des Festplattenpuffers.
Obwohl PCMCIA mit APM-Unterstützung übersetzt ist, gibt es hier manchmal Schwierigkeiten. Einige der Kartentreiber kehren von einem Suspend nicht ordentlich zurück xirc2ps_cs. Deshalb kann der apmd das PCMCIA-System vor dem Suspend deaktivieren und danach wieder aktivieren. Dazu wird die Variable APMD_PCMCIA_EJECT_ON_SUSPEND auf yes gesetzt.
Hier können Netzwerk-Interfaces eingetragen werden, die vor dem Suspendieren angehalten und danach wieder gestartet werden sollen.
Wenn außerdem noch die Treibermodule dieser Interfaces entladen werden müssen, ist diese Variable zu verwenden.
Machmal kommt es auch vor, dass das Wiederaufwachen nach einem Suspend nicht funktioniert, wenn ein IDE-Gerät (Festplatte) noch im DMA-Modus ist.
Es gibt noch weitere Möglichkeiten, wie zum Beispiel Tastaturwiederholrate oder die Uhrzeit nach einem Suspend zu korrigieren oder den Laptop automatisch herunterzufahren, wenn das APM-BIOS ein „Batterie kritisch“-Ereignis sendet. Wer noch speziellere Aktionen ausführen möchte, der kann das Skript /usr/sbin/apmd_proxy, das die oben aufgeführten Jobs ausführt, an seine Bedürfnisse anpassen.
Im apmd sind noch einige nützliche Programme enthalten. Mit apm kann die aktuelle Batteriekapazität abgefragt werden und das System in Stand-by (apm -S) oder Suspend (apm -s) geschickt werden; vgl. die Manualpage von apm. Das Kommando apmsleep suspendiert das System für eine vorgegebene Zeit. Wer eine Logdatei beobachten möchte, ohne die Festplatte ständig am Laufen zu halten, der kann tailf als Ersatz für tail -f verwenden.
Natürlich gibt es auch hier Tools für das X Window System. Ebenfalls im apmd findet man xapm, was den Ladezustand der Batterie grafisch anzeigt. Wer den KDE-Desktop verwendet – oder zumindest kpanel –, kann sich auch von kbatmon den Ladestand des Akkus anzeigen lassen und das System suspendieren. Als Alternative ist auch xosview interessant.