Open Source im professionellen Einsatz
Linux-Magazin 02/2004
456

Unruhiger Schlaf

Für Suspend-to-RAM und Suspend-to-Disk ist es unabdingbar, dass die aktuell geladenen Treiber auf einen Suspend- und Resume-Zyklus vorbereitet sind. In Linux 2.6 wurde hierfür das Treibermodell entsprechend verändert. Danach müssen Device-Treiber über eine »suspend«- sowie »resume«-Funktion verfügen, die der Kernel bei Beginn oder Ende eines Sleep State aufruft.

Bleibt das System beim Schlafenlegen oder Aufwachen trotzdem hängen, hilft folgender Work-around: Nach dem Studium der Kernel-Logfiles kompiliert Root den renitenten Treiber - falls er das nicht nicht sowieso schon war - als Modul neu. Bevor er nun »echo Sleep_State > /sys/power/state« aufruft, entfernt er einfach das Treibermodul, um es nach dem Aufwachen wieder zu laden. Der ganze Suspend-Vorgang ist mit einem kleinen Skript gut automatisierbar. Listing 2 zeigt ein Beispiel, das einem System zum Suspend-to-RAM verhalf, dessen USB-Host-Controller (Treibermodul »ohci-hcd.o«) beim Aufwachen eine Kernel-Panic verursachte.

Listing 2:
Suspend-Skript

01 #!/bin/sh
02 rmmod usblp usb-storage hid;     # USB Module entfernen
03 rmmod ohci-hcd;         # Host-Controller Modul entfernen
04 rmmod usbcore;             # USB-Core Modul entfernen
05 
06 echo -n "mem" > /sys/power/state; # Suspend to RAM
07 
08 modprobe usbcore;          # USB-Core Modul laden
09 modprobe ohci-hcd;         # Host-Controller Modul laden
10 modprobe usblp usb-storage hid;   # USB Module laden
11 
12 exit 0;

Sind im Zuge von Suspend-to-Disk (sowohl Software Suspend als auch Suspend-to-Disk) Probleme beim Wiederherstellen zu beklagen, können die Kernelparameter von Hand überschrieben werden: Mit »resume=noresume« oder »pmdisk=off« unterlässt der Kernel beim Booten den Versuch, den alten Systemzustand herzustellen. In der Variante Software Suspend muss noch die Swap-Partition neu initialisiert werden, im Beispiel mit »mkswap /dev/hda2«, und anschließend dem System wieder zugeteilt werden: »swapon /dev/hda2«.

Dynamische Taktfrequenz für Mobile-CPUs

Mobile-CPUs moderner Bauart können ihre wirksame Taktfrequenz in Abhängigkeit von der ihnen aktuell abgeforderten Rechenleistung runter- und wieder rauffahren (Intel Speedstep und AMD Power Now!). Um mit Linux 2.6 dieses Feature zu nutzen, muss wie in Abbildung 2 »cpufreq« aktiviert und gemäß des Prozessors der richtige »cpufreq«-Treiber ausgewählt sein.

Abbildung 2: »cpufreq«-ACPI-Optionen für die aktuellen Mobile-CPUs.

Das Interface von »cpufreq« hat sich während der Entwicklung in Linux 2.5 geändert und erscheint nun endgültig im Sysfs. Wer sich mit einem derart kompilierten Kernel an die Arbeit macht, sollte mit »dmesg | grep cpufreq« prüfen, ob der Kernel das Feature erfolgreich initialisieren konnte (siehe Listing 3).

Listing 3: Der
»cpufreq«-Test

01 [root@sunshine:~]$ dmesg | grep cpufreq
02 cpufreq: CPU0 - ACPI performance management activated.
03 cpufreq: *P0: 750 MHz, 22000 mW, 250 uS
04 cpufreq:  P1: 350 MHz, 9800 mW, 250 uS

Quittiert »cpufreq« dagegen mit einem Fehler, sollte der Admin nochmals sicherstellen, dass er den richtigen »cpufreq«-Treiber gewählt hat. Im Test war - so paradox es klingt - der »cpufreq«-ACPI-Treiber erst mit aktiviertem Plug & Play-Bios-Support im Kernel (»CONFIG_PNP« und »CONFIG_PNPBIOS«) zur Mitarbeit zu überreden.

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Kern-Technik

    Kennen und unterstützen alle Treiberprogrammierer das Interface fürs Powermanagement, steht einem funktionierenden Suspend-to-Ram und Suspend-to-Disk nichts mehr im Wege.

  • Patch eingereicht: Intels Rapid Start in Kernel 3.11?

    Der Entwickler Matthew Garrett beschreibt in seinem Blog, wie Intels Schnell-Boot-Technology Rapid Start funktioniert und wie sich das auch mit einem Linux-Kernel nutzen lässt.

  • Weitere Tools und Tipps zur Überwachung des Energieverbrauchs

    Der Artikel "Stromfresser entlarven" im aktuellen Linux-Magazin zeigt anhand von Benchmarks den Einfluss verschiedener Optimierungsversuche, unterschiedlicher Distributionen und OSS-Desktops auf den Energieverbrauch eines Linux-Notebooks. Einige Tools und Tricks, die im Artikel keinen Platz fanden, sind hier zusammengefasst.

  • Projekteküche

    Der Klimabericht der Vereinten Nationen mahnt zum Stromsparen - angesichts ihres stetig wachsenden Verbrauchs gilt dies auch für die IT. Über Funktionsweise, Probleme und Zukunftspläne mit Stromsparmodi unter Linux berichtet ein neuer Statusbericht zu Suspend und Hibernate.

  • Kern-Technik

    Wer schläft, spart. Daher organisiert der Linux-Kernel das kollektive Schlafen der Rechnerkomponenten, bis das komplette System ruht. Er strukturiert Abhängigkeiten baumartig und verwendet ein Phasenmodell. Damit sind bei Bedarf alle Komponenten schnell wieder hellwach.

comments powered by Disqus

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.