rtcwake
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Der Befehl rtcwake dient zur Programmierung des zeitgesteuerten Starts des schlafenden oder ausgeschalteten Rechners. Zu diesem Zweck wird in der Firmware des Rechners ein „Wecker gestellt“. Während das ältere nvram-wakeup dazu BIOS-Funktionen verwendet, nutzt das Programm ACPI. Damit es sauber funktioniert, sollte die vorhandene ACPI-Implementation nicht zu alt (bzw. fehlerhaft) sein. Im Zweifelsfall: einfach ausprobieren...
Bei mobilen Rechnern können einige externe Geräte nach dem Aufwachen abgeschaltet bleiben. Hintergrund: der Batterie-Modus (Akku-Betrieb) ist ein Sonderfall – man wollte vermeiden, dass eine versehentliche Aktivierung den Akku leert. Im Netzbetrieb oder bei Desktop-Rechnern ist diese Problematik nicht relevant.
Installation¶
rtcwake ist in jeder Standardinstallation vorhanden und im Paket
util-linux
enthalten.
Benutzung¶
Das Programm muss mit Root-Rechten[1] ausgeführt werden. Die allgemeine Syntax lautet[2]:
sudo rtcwake OPTIONEN WECKZEIT
Die WECKZEIT kann wahlweise nach 3 verschiedenen Methoden angegeben werden (siehe Optionen):
Mit der Option
--time
als absolute Unixzeit in Sekunden seit Anfang 1970.Mit der Option
--date
als absolute oder relative Zeit in verschiedenen Formaten und Einheiten.Mit der Option
--seconds
als relative Zeit in Sekunden nach dem aktuellen Aufruf des Programms.
Wenn rtcwake
nicht sofort den Schlaf einleitet, ist WECKZEIT anschließend in der Datei /sys/class/rtc/rtc0/wakealarm zu finden und kann auch abgefragt werden:
sudo rtcwake --mode show
Optionen¶
Folgende Parameter stehen zur Verfügung:
Startparameter | |
Option | Beschreibung |
-d , --device | Gerät für die Systemuhr. Standard ist /dev/rtc0 . Angabe ist nur erforderlich, wenn man mehrere Hardwareuhren im System hat oder die Gerätedatei anders benannt ist. |
-n , --dry-run | Testlauf ohne Aktion |
-l , --local | Systemuhr arbeitet mit lokaler Zeit (Windows Standard) |
-u , --utc | Systemuhr arbeitet mit UTC (Linux Standard) |
--list-modes | Zeigt eine Liste der möglichen Schlafzustände und weiterer Werte für die Option --mode . |
-m , --mode MODUS | ACPI Energiesparmodus: freeze (S0), standby (S1), mem (S3), disk (S4), off (S5) leiten den jeweiligen Schlafzustand ein, sofern technisch möglich (vgl. Option --list-modes ). Weitere mögliche Werte sind no (nur Zeit setzen, aber nicht schlafen), disable (gesetzte Weckzeit löschen) und show (Weckdaten anzeigen). Außerdem gibt es zur Fehlersuche noch on , womit bis zum angegebenen Zeitpunkt gewartet wird. |
-s , --seconds X | Aufwecken nach X Sekunden ab jetzt. |
-t, --time X | Zeitpunkt des Aufwachens in Sekunden nach Anfang 1970. Datum (JJJJMMTT ) und Uhrzeit (HH:MM ) müssen zuerst umgewandelt werden. Beispiel:date -d '20121111 11:11' +%s ergibt den gesuchten Wert 1352628660 . |
--date WECKZEIT | Aufwecken zum angegebenen Datum und/oder Uhrzeit. Mögliche Formate für WECKZEIT kann man der Manpage entnehmen. |
-h , --help | verfügbare Optionen anzeigen |
Die Optionen --local
oder --utc
benötigt man in der Regel nicht. Die Option --mode
sollte man immer angeben, denn der Standard standby
(S1) für rtcwake ist leider in der Hardware nur selten realisiert. Die drei Optionen --seconds
, --time
und --date
schließen einander aus, also nur eine von diesen verwenden.
Auch die Manpage zu rtcwake ist lesenswert.
Beispiele¶
Rechner für 5 Minuten schlafen legen (Energiesparmodus):
sudo rtcwake -m mem -s 300
Rechner ausschalten und nach 10 Minuten wieder einschalten:
sudo rtcwake -m no -s 600 && sudo poweroff
Rechner ausschalten und am 11.11.2016 um 11:11 Uhr wieder einschalten:
sudo rtcwake -m off -t $(date -d '20161111 11:11' +%s) && echo 'Helau!'
Problembehebung¶
rtcwake ist abhängig von den Fähigkeiten der Hardware, konkret der Rechneruhr, deren Unterstützung durch die Firmware des Rechners und den Möglichkeiten von Linux, mit Hardware und Firmware zu kommunizieren, was wiederum von der Implementierung von ACPI in der Firmware des Rechners abhängt und ggf. deren Einstellungen.
Bei neueren Rechnern scheinen manche Hersteller an den ACPI-Funktionen zu sparen oder vielleicht auch nur bei teureren Modellen zu aktivieren.
Was beim vorliegenden System möglich ist, sollte dieser Befehl zeigen:
rtcwake --list-modes
Beispielausgabe:
freeze mem disk off no on disable show
Die Methode freeze
sollte immer möglich sein, weil dabei der Linux Kernel keine Unterstützung durch Hardware und Firmware des Rechners benötigt. Allerdings wird auch nur die CPU angehalten.
Wenn die tieferen Schlafzustände Suspend-to-RAM (S3), Suspend-to-Disk (S4) oder Wecken aus dem ausgeschalteten Zustand (S5) nicht funktionieren, ist sinnvoll, beim Hersteller des Rechners nach einem Update der Firmware zu suchen. Linux beherrscht diese Funktionalitäten, sobald die Hardware mitspielt.
Für das Aufwachen aus einem Schlafzustand enthält der Linux Kernel entsprechenden Code. Leider ist dieser nicht in allen Fällen ausreichend: Manche Hardware, die einen proprietären Treiber außerhalb des Kernels verwendet, benötigt zum Aufwachen zusätzliche spezielle Software im Userspace; hiervon betroffen sind beispielsweise manche Grafikkarten.
Links¶
PC zeitgesteuert starten 🇩🇪 - Pro-Linux 02/2011
Shell/Befehlsübersicht - Übersicht über verschiedene Shellbefehle