Homepage |
© 2005 Hubertus
Sandmann |
Die Fernbedienung für VDR | Der automatische WakeUp für VDR | DVDs brennen mit Linux |
|
Ausserordentlich 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 kann man hierfür acpi-wakeup von Alfred Zastrow verwenden.
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. Allerdings ist es in der Praxis speziell im Zusammenhang mit Linux noch ein wenig vom Glück abhängig, inwieweit die Funktionen ordnungsgemäß arbeiten. Grundsätzlich gilt, je aktueller der verwendete Linux-Kernel und das Motherboard incl. BIOS-Version, desto aussichtsreicher ist das hier geplante Unterfangen. Es soll an dieser Stelle nicht verschwiegen werden, dass derzeit nur die Uhrzeit und nicht der Tag bzw. das Datum ausgewertet wird. Das bedeutet, dass der Rechner täglich zur eingestellten Zeit aufwacht, auch wenn die nächste Aufnahme beispielsweise erst am folgenden Tag anstünde.
Als Vorbereitung sollten alle Einstellungen im BIOS zu ACPI sorgfältig gesetzt werden. Dazu gehört auch das Deaktivieren einer evtl. vorhandenen APM-Funktion zum Zeit gesteuerten Aufwachen des Rechners per eingestellter BIOS-Uhr (RTC) etwa unter einer Bezeichung wie "RTC Alarm Resume" o. ä., damit sich die verschiedenen Features nicht gegenseitig ins Gehege kommen. Zum Testen schreibt man einfach die Werte für ein paar Minuten in der Zukunft in das entsprechende Register des Rechners und liest diese anschließend wieder aus.
echo "2005-10-22 23:59:59" >/proc/acpi/alarm cat /proc/acpi/alarmBei Erfolg kann man den Rechner jetzt herunterfahren und hoffen, dass der PC zum eingestellten Zeitpunkt tatsächlich aus dem Schlaf erwacht.
poweroffHat das geklappt, kann man sich frohen Mutes an die Installation von acpi-wakeup machen. Andernfalls muss aber immer noch nicht alles verloren sein. Dazu später mehr...
Die Installation des kleinen Programmpaketes gestaltet sich nach dem Entpacken ganz einfach.
tar xfj acpi-wakeup-0.1.tar.bz2 cd acpi-wakeup-0.1 gcc -o unix2iso8601 unix2iso8601.c cp unix2iso8601 /usr/bin cp vdrpoweroff.sh /usr/local/binDabei wird ein Tool installiert, das die Umrechnung des von VDR verwendeten Zeitformats in das Format der Systemzeit übernimmt. Ebenso wird das bisher genutzte Skript zum Herunterfahren des Rechners durch das mitgelieferte ersetzt. In dieser Datei /usr/local/bin/vdrpoweroff.sh kommentiert man die Zeile mit der ungeeignet gewählten PATH-Variablen aus.
#!/bin/sh ## export PATH=/bin newtime=$(($1 - 120 )) # 2 minutes earlier hwclock --systohc --utc echo `unix2iso8601 -u $newtime` >/proc/acpi/alarm exec poweroffDie Aufwachzeit wird hierbei auf 2 Minuten vor der nächsten programmierten Aufnahme gesetzt. Es ist weiterhin zu beachten, dass die Einstellungen voraussetzen, dass die BIOS-Uhr (RTC) auf GMT bzw. UTC eingestellt ist und nicht auf "localtime". Dies hat nebenbei den Vorteil, dass die Sommer-/Winterzeit-Umstellung dann automatisch erfolgt.
Wenn es Probleme mit dem automatischen Aufwachen des Rechners gibt, kann es daran liegen das einige Motherboard etwas schwer von Begriff sind. In diesen Fällen behilft man sich, indem man die Zeile zum Setzen der Aufwachzeit einfach doppelt in die Datei /usr/local/bin/vdrpoweroff.sh hineinschreibt.
#!/bin/sh ## export PATH=/bin newtime=$(($1 - 120 )) # 2 minutes earlier hwclock --systohc --utc echo `unix2iso8601 -u $newtime` >/proc/acpi/alarm echo `unix2iso8601 -u $newtime` >/proc/acpi/alarm exec poweroffHäufig vergisst ein Rechner auch die vorgegebene Aufwachzeit wieder, wenn nach deren Setzen die HW-Clock (RTC) beim Herunterfahren des Rechners noch einmal an die Systemzeit angeglichen wird. Als Abhilfe kommentiert man dazu bei einer SuSE-Distribution einfach die entsprechenden Zeilen aus der Datei /etc/init.d/boot.clock aus.
stop) if [ "$HOSTTYPE" != "s390" -a "$HOSTTYPE" != "s390x" ] ; then ## echo -n "Set Hardware Clock to the current System Time" # write back to hardware clock and calculate adjtime ## /sbin/hwclock --systohc $HWCLOCK rc_status -v -r fi ;;
Speziell auf älteren Rechnern ohne ACPI-Unterstützung im BIOS kann man zum gleichen Zweck auch das Tool nvram-wakeup von http://sourceforge.net/projects/nvram-wakeup/ einsetzen. Etliche Motherboards werden bereits automatisch erkannt, andere müssen erst "angelernt" werden. Eine Anleitung dazu findet sich hier: http://www.hubertus-sandmann.homepage.t-online.de/vdr_wakeup.htm
Die Fernbedienung für VDR | Der automatische WakeUp für VDR | DVDs brennen mit Linux |
Homepage |
© 2005 Hubertus
Sandmann |