Open Source im professionellen Einsatz
Linux-Magazin 08/2004

Computer programmgesteuert aufwecken

Weckdienst

Muss ein Computer nicht 24 Stunden am Tag laufen, lässt sich durch bedarfsgerechtes Ein- und Ausschalten eine Menge Strom sparen. Drei verschiedene Methoden programmieren den Aufwachzeitpunkt direkt unter Linux, ohne ihn von Hand im Bios einzustellen.

468

Server laufen 24 Stunden am Tag, die Raids natürlich auch und die Arbeits-PCs schaltet am Abend kaum jemand aus. Dabei sind die Rechner tatsächlich selten länger als zehn Stunden in Gebrauch. Für Spezialanwendungen, etwa einen Faxserver, der nachts um zwei Uhr alle Telefaxe versendet, reicht es aus, wenn das Gerät um zwei Uhr startet und sich nach getaner Arbeit bis zur nächsten Nacht wieder abschaltet.

Ganz ohne zusätzliche Hardware wie Zeitschaltuhren oder Remote Power Switches funktioniert das Aufwachen über das Bios des Mainboards (Abbildung 1). Praktisch alle aktuellen Geräte haben eine Funktion, den Rechner zeitgesteuert einzuschalten. Zusätzlich gibt es "Wake on LAN", falls zwischendurch jemand den Fileserver braucht.

Das Problem ist, die Uhrzeiten für zeitgesteuertes Einschalten unter Linux zu verändern - je nach Rechner müssen unterschiedliche Methoden angewandt werden. So funktioniert ACPI-Wakeup nicht bei allen Mainboards, was an den unterschiedlichen Implementationen der Standards liegt. NVRAM-Wakeup hingegen verändert direkt die Zeiteinstellung im nicht-flüchtigen Speicher, in dem das Bios seine Werte ablegt. Die dritte Methode, »settime« genannt, arbeitet mit einem einfachen Trick: Das Bios wacht immer zum selben Zeitpunkt auf, beim Herunterfahren stellt aber ein Skript die Rechneruhr entsprechend zurück.

Wunderwaffe ACPI?

Mit ACPI lässt sich der Computer wohl am einfachsten zu einer bestimmten Uhrzeit wieder einschalten - vorausgesetzt Kernel und Mainboard arbeiten ausreichend gut zusammen. Die Aufwachzeit wird dazu einfach nach »/proc /acpi/alarm« geschrieben:

echo 2004-08-02 20:15:00 >/proc/acpi/alarm

Der Kernel überträgt die Uhrzeit direkt in die RTC (Real Time Clock) des Rechners, das Datum jedoch nicht. Das führt dazu, dass der Rechner jeden Tag zur eingestellten Uhrzeit aufwacht und nicht nur am gewünschten Datum.

Abbildung 1: Das Bios fast aller Rechner enthält eine Aufwachfunktion, die »RTC Alarm Resume« oder ähnlich heißt.

Das Problem ist, dass zwar die Übergabe der Uhrzeit an die RTC überwiegend einheitlich ist, ein solcher Standard aber für das Aufwachdatum fehlt. Entsprechend berücksichtigt die Funktion »acpi_system_write_alarm« aus »drivers/acpi/system.c« von Kernel 2.4 respektive »drivers/acpi/sleep/proc.c« von Kernel 2.6 auch nur die Alarm-Uhrzeitfelder.

Kein Datum in Sicht

Die Kernelentwickler Andy Grover und Paul Diefenbaugh haben bereits den kompletten Funktionsumfang vorgesehen, benötigen dafür jedoch eine brauchbare Fixed-ACPI-Tabelle (FACP). Nach den Kommentaren im Kernel taugen die aktuellen FACP-Tabellen der Mainboards jedoch nichts, weshalb der entsprechende Codeblock permanent abgeschaltet ist.

Bei einigen Mainboards funktioniert das Übertragen in die Echtzeituhr des Rechners nicht, sodass statt des hineingeschriebenen Aufwachzeitpunkts die Zeit des letzten Rechnerstarts hinterlegt ist. Bei anderen Rechnern führt jeder Schreibzugriff auf »/proc/acpi/alarm« zu einem sofortigen Komplettabsturz. Inzwischen funktioniert das ACPI-Wakeup bei vielen aktuellen Mainboards, eine bei weitem nicht vollständige Kompatibilitätsliste gibt es auf der Homepage der Mini-Videorekorder-Distribution LinVDR im Bereich Dokumentation[1].

Linux-Magazin kaufen

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

Deutschland

Ähnliche Artikel

  • Stromsparen mit Linux

    Linux gilt vielen Brachengrößen als umweltfreundlichstes Betriebssystem überhaupt. Dass die Akkulaufzeit eines IBM R60e-Notebooks mehr als eine halbe Stunde hinter der Laufzeit unter Windows herhinkte, stimmte dabei nachdenklich. Der Artikel geht dem Stromverbrauch auf die Spur und nennt die richtigen Stellschrauben, die Linux bis zu 20 Prozent sparsamer machen

  • (K)eine halbe Sache

    Mieter von Stellplätzen in Rechenzentren kalkulieren so: Halbe Gerätegröße bedeutet fast den halben Preis. Das Linux-Magazin testete deshalb einen halben Server.

  • OSADL präsentiert QA-Daten für Echtzeit-Linux

    Das jetzt mit mehreren Prozessorplattformen ausgestattete Echtzeit-Testzentrum des Open Source Automation Development Lab (OSADL) stellt zu Informationszwecken simulierte Leistungsdaten Linux-basierter Echtzeitsysteme zur Verfügung.

  • Schwachstellen im Netgear-Router D6300B
  • Hochgeladen

    Wenn die mitgelieferte Firmware Ihres Linksys-Routers nicht alle Anforderungen erfüllen kann, ist die Versuchung groß, einfach eine auf die persönlichen Bedürfnisse zugeschnittene Linux-Distribution hochzuladen. Ein kleiner Programmierfehler in der Original-Firmware hilft Ihnen dabei.

comments powered by Disqus

Ausgabe 09/2016

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

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