© 2005 - 2017 Hubertus Sandmann


Version: 0.6
Stand: 17.02.2015

nach untenEinleitung
nach untenVoraussetzungen
nach untenInstallation

Einleitung

nach oben 

Außerordentlich nützlich wäre es, wenn der VDR-Rechner nicht nur automatisch oder per Tastendruck herunterfährt, sondern auch passend zu einer anstehenden Aufnahme selbstständig aufwacht. Bei funktionierender ACPI-Implementation auf dem verwendeten Rechner sollte das kein Problem darstellen.

ACPI (Advanced Configuration and Power Interface) ist schon seit geraumer Zeit der legitime Nachfolger des betagten APM (Advanced Power Management) in Sachen Energieverwaltung auf einem PC. Grundsätzlich gilt, je aktueller der verwendete Linux-Kernel und das Motherboard incl. BIOS-Version, desto aussichtsreicher sollte das hier geplante Unterfangen sein.


Voraussetzungen

nach oben 

Als Vorbereitung sollten alle Einstellungen im BIOS zu ACPI sorgfältig gesetzt werden. Nötig ist das Deaktivieren einer evtl. vorhandenen APM-Funktion zum Zeit gesteuerten Aufwachen des Rechners per eingestellter BIOS-Uhr (RTC) etwa unter einer Bezeichnung wie RTC Alarm Resume o. ä., damit sich die verschiedenen Features nicht gegenseitig ins Gehege kommen.

Ebenfalls Voraussetzung für das Funktionieren ist, dass die BIOS-Uhr (RTC) auf GMT bzw. UTC eingestellt ist und nicht etwa auf localtime. Dies hat nebenbei den Vorteil, dass die Sommerzeit-Umstellung dann automatisch erfolgt.

Seit Kernelversion 2.6.22 wird die Funktion über das Pseudo-Verzeichnis /sys/class/rtc/rtc0/wakealarm aktiviert. Zum Testen schreibt man einfach die Werte für z. B. 5 Minuten in der Zukunft in das entsprechende Register des Rechners mit


echo 0 > /sys/class/rtc/rtc0/wakealarm

echo `date '+%s' -d '+ 5 minutes'` > /sys/class/rtc/rtc0/wakealarm

und liest diese anschließend wieder aus:

cat /proc/driver/rtc

Bei Erfolg kann man den Rechner jetzt herunterfahren und hoffen, dass der PC zum eingestellten Zeitpunkt tatsächlich aus dem Schlaf erwacht.

poweroff
 

Hat das geklappt, kann man sich frohen Mutes an die Installation von acpi-wakeup machen.


Installation

nach oben 

Eigentlich muss jetzt nur noch die Datei /usr/local/bin/vdrpoweroff.sh soweit abgeändert werden, dass die hier beschriebene Methode zum Setzen der Aufweckzeit mittels ACPI funktioniert.


#!/bin/sh

# vars
# "$1" = time in seconds of next timer (date/time in seconds since 1970)
# "$2" = time in seconds until next timer (may be negative)
# "$3" = channel recorded by next timer
# "$4" = filename for next recording
# "$5" = 1 if shutdown reqested by user


hwclock --systohc --utc

newtime=$(($1 - 120 ))  # 2 minutes earlier

echo 0 > /sys/class/rtc/rtc0/wakealarm
echo $newtime > /sys/class/rtc/rtc0/wakealarm

exec poweroff

Die Aufwachzeit wird hierbei auf 2 Minuten vor dem nächsten programmierten Aufwachzeitpunkt gesetzt.



© 2005 - 2017 Hubertus Sandmann