[[Vorlage(getestet, general, noble ) ]] ## Test für noble 24.04 am 2024-09-28 {{{#!vorlage Wissen [:sudo: Root-Rechte erlangen] [:Terminal:Einen Terminal öffnen] }}} [[Inhaltsverzeichnis()]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] Der Befehl rtcwake dient zur Programmierung des zeitgesteuerten Starts des [:Schlafender Rechner:schlafenden] oder [:Herunterfahren: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 [wikipedia:Advanced_Configuration_and_Power_Interface: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]: {{{#!vorlage Befehl sudo rtcwake OPTIONEN WECKZEIT }}} Die WECKZEIT kann wahlweise nach 3 verschiedenen Methoden angegeben werden (siehe Optionen): * Mit der Option `--time` als absolute [wikipedia: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: [[Vorlage(Befehl, "sudo rtcwake --mode show" ) ]] = Optionen = Folgende Parameter stehen zur Verfügung: {{{#!vorlage Tabelle 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` [:Systemzeit#Falsche-Uhrzeit-bei-Windows-Linux-Parallelinstallation:Systemuhr] arbeitet mit lokaler Zeit (Windows Standard) +++ `-u`, `--utc` [:Systemzeit#Falsche-Uhrzeit-bei-Windows-Linux-Parallelinstallation: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` [:Archiv/Energiesparmodi_mit_ACPI#ACPI-SUSPEND-Modi-S0-S1-S2-S3-S4-S5: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:[[BR]] `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 [:man:Manpage] zu rtcwake ist lesenswert. = Beispiele = * Rechner für 5 Minuten schlafen legen (Energiesparmodus): {{{#!vorlage Befehl sudo rtcwake -m mem -s 300 }}} * Rechner ausschalten und nach 10 Minuten wieder einschalten: {{{#!vorlage Befehl sudo rtcwake -m no -s 600 && sudo poweroff }}} * Rechner ausschalten und am 11.11.2016 um 11:11 Uhr wieder einschalten: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl 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 = * [http://www.pro-linux.de/kurztipps/2/1488/pc-zeitgesteuert-starten.html PC zeitgesteuert starten] {de} - Pro-Linux 02/2011 * [:Shell/Befehlsübersicht:] - Übersicht über verschiedene Shellbefehle #tag: Shell, System