Hallo,
ich nutze VDR unter Debian Lenny mit einem selbst kompilierten Kernel 2.6.29, da 2.6.26 ACPI Wakeup nicht sauber implementiert und Kernel 2.6.27 aus dem e-tobi Repository leider den TV-Out meiner PVR350 nicht richtig initialisiert.
Da meine Uhr auf localtime läuft, starte mein VDR zwei Stunden zu früh.
Daher habe ich mir die Scripte aus dem Paket vdr-addon-acpiwakeup angesehen und zwei Änderungen vorgenommen.
1.) /usr/share/vdr/shutdown-hooks/S90.acpiwakeup
Das Script achtet weitestgehen darauf ob UTC=yes oder no, nur an einer Stelle nicht: Beim Setzen der Weckzeit nach /sys/class/rtc/rtc0/wakealarm.
Daher habe ich diese Stelle erweitert, damit die Weckzeit umgerechnet wird. Die geänderte Zeile sollten sowohl bei UTC=yes als auch mit UTC=no die Weckzeit richtig setzen. Getestet mit UTC=no.
@@ -102,7 +102,7 @@
if [ -w $WAKEALARM ]; then
if ResetWakeupTimeKernelGte2_6_23 ; then
$LOG "Writing to $WAKEALARM"
- echo "$1" >$WAKEALARM
+ echo "$( date --date "`TimeToString $1` UTC" +%s )" >$WAKEALARM
return $?
fi
fi
2.) /etc/init.d/vdr-addon-acpiwakeup
Dieses Script setzt beim Herunterfahren die Uhr nochmals in /proc/acpi/alarm um Probleme bei manchen Mainboards zu umgehen (hwclock löscht/deaktiviert ACPI Alarm). Ab Kernel 2.6.23 wird die Uhrzeit aber an anderer Stelle gespeichert und dieser Workaround funktioniert so nicht mehr. Mir ist nicht bekannt ob der Workaround bei Kernel >=2.6.23 nötig ist, daher habe ich eine kleine Prüfung eingabaut die bei entsprechenden Kernels einfach nichts macht. Sollte der Workaround bei manchen Mainboards dennoch nötig sein muss hier noch einiges anderes angepasst werden.