Computer per ACPI aufwecken

Bei neueren Computer ist es möglich eine Art Wecker zu stellen. So kann der Computer ausgeschaltet werden und er schaltet sich automatisch zu einer bestimmten Zeit wieder ein. Im folgenden wird gezeigt, wie dies unter Ubuntu eingerichtet werden kann. Die Vorgehensweise sollte sich aber auch leicht auf andere Linux Distributionen übertragen lassen.

Bevor mit der Konfiguration begonnen wird sollte geschaut werden, ob sich der Computer per ACPI einschalten lässt. Dazu können die Meldungen des Kernels durchsucht werden. Dies sollte wie folgt aussehen.

$ dmesg | grep -i rtc
[    1.064906] rtc_cmos 00:04: RTC can wake from S4
[    1.064950] rtc_cmos 00:04: rtc core: registered rtc_cmos as rtc0
[    1.064984] rtc0: alarms up to one month, 242 bytes nvram, hpet irqs
...

Informationen über einen eventuell gesetzten Timer können über /proc/driver/rtc herausgefunden werden. Im folgenden Beispiel ist noch kein Timer gesetzt.

$ cat /proc/driver/rtc
rtc_time        : 09:40:50
rtc_date        : 2011-06-23
alrm_time       : 00:00:00
alrm_date       : ****-**-**
alarm_IRQ       : no
alrm_pending    : no
24hr            : yes
periodic_IRQ    : no
update_IRQ      : no
HPET_emulated   : yes
DST_enable      : no
periodic_freq   : 1024
batt_status     : okay

Zum Setzen der Weckzeit wird die Zeitangabe im Unix-Timestamp Format benötigt. Dabei sollte jedoch immer die lokale Zeit und die im BIOS gesetzte Zeit beachtet werden. Bei allen getesteten Computer war die BIOS-Zeit immer auf UTC eingestellt. Wird dies berücksichtigt kann leicht mit dem date Befehl ein Zeitstempel erzeugt werden.

$ date +%s -d "2011-06-24 01:00:00 CEST"
$ date +%s -d "Fri Jun 24 01:00:00 CEST 2011"

Anschließend kann die Zeit für den "Wecker" gesetzt werden. Da nur ein Timer gesetzt werden kann ist es wichtig, dass der alte Timer zunächst gelöscht wird. Dies geschieht indem die 0 (Null) als Weckzeit gesetzt wird.

$ sudo su
$ echo 0 > /sys/class/rtc/rtc0/wakealarm
$ date +%s -d "2011-06-24 01:00:00 MET" > /sys/class/rtc/rtc0/wakealarm

Bei einer nochmaligen Überprüfung sollte jetzt der richtige wert gesetzt sein. Achtung: Zeitzone beachten.

$ cat /proc/driver/rtc
rtc_time        : 09:48:36
rtc_date        : 2011-06-23
alrm_time       : 23:00:00
alrm_date       : 2011-06-23
alarm_IRQ       : yes
alrm_pending    : no
24hr            : yes
periodic_IRQ    : no
update_IRQ      : no
HPET_emulated   : yes
DST_enable      : no
periodic_freq   : 1024
batt_status     : okay

Hinweis: Bei manchen Laptops funktioniert das Aufwachen nur, wenn sie über das Netzteil angeschlossen sind oder wenn sie sich im Standby-Betrieb befinden.

Verwandte Artikel