23.05.2008, 23:23
(Dieser Beitrag wurde zuletzt bearbeitet: 24.05.2008, 15:40 von caterpillar.)
Hallo Gemeinde,
Ich habe ein Problem mit der Hardware-Schaltuhr (resp. den dazugehörigen Sripten) im Zusammenhang mit dem easyVDR 0.5.0.9 / VDR 1.4.7:
Beim herunterfahren soll die Aufweckzeit in die Hardwareuhr geschrieben werden, wird sie aber nicht. Folge: VDR wacht nicht wieder auf.
Richtig angeschlossen ist die Uhr, weil die laufende Uhrzeit der Uhr beim shutdown sehr wohl auf Systemzeit aktualisiert wird.
Ich bin im bash-scripten ein absoluter Noob, aber nach ein wenig googeln habe ich herausgefunden, dass mit dem Befehl SET -vx ganz am Anfang eines BASH-Skriptes alle Zeilen und die Zwischenergebnisse von Berechnungen unds Ausgaben angezeigt werden.
Dabei habe ich die easyvdrshutdown.sh (0.6.0) untersucht und herausgefunden, dass es in dem Abschnitt "JepsenHWWakeup" zu Prolemen bei der Ermittlung der Weckzeit gibt, konkret in den Zeilen 290/291: Hier entsteht der Fehler date: ungültiges Datum "23 Mai 2008 2:30"
NEXTDAILYTIMER bleibt wegen des Fehlers leer, es gibt in den Zeilen 292, 305 und 308 noch Folgefehler bei den IF-Befehlen wegen des leeren NEXTDAILYTIMER ( unary operator expected).
In Folge bleibt WAKEUPSTR leer und es wird kein Timer in die Uhr geschrieben. Die Büchse wacht nicht mehr auf.
Ich habe noch einen LinVDR 0.7 ebenfalls mit Hardware Wakeup Uhr am laufen, dort funktioniert alles. Die Codestrecke zur Hardwareuhr von Frank Jepsen ist absolut identisch und ich habe auch die einmal untersucht:
Der Unterschied ist, dass beim LinVDR in der entsprechenden Zeile der date - Befehl nicht "23 Mai 2008" sondern "23 May 2008" ergibt. Damit läuft das Ding glatt durch.
Offenbar hat mein easyvdr ein Sprachproblem. Wieso gibt es da einen Unterschied und wie bringe ich dem easyvdr die englische Zeitnotation bei?
Hat jemand einen Tipp?
Gruß aus Mainz,
Dirk
Zum Verständnis hier der Auszug aus easyvdrshutdown.sh zum easyvdr 0.5.0.9
Ich habe ein Problem mit der Hardware-Schaltuhr (resp. den dazugehörigen Sripten) im Zusammenhang mit dem easyVDR 0.5.0.9 / VDR 1.4.7:
Beim herunterfahren soll die Aufweckzeit in die Hardwareuhr geschrieben werden, wird sie aber nicht. Folge: VDR wacht nicht wieder auf.
Richtig angeschlossen ist die Uhr, weil die laufende Uhrzeit der Uhr beim shutdown sehr wohl auf Systemzeit aktualisiert wird.
Ich bin im bash-scripten ein absoluter Noob, aber nach ein wenig googeln habe ich herausgefunden, dass mit dem Befehl SET -vx ganz am Anfang eines BASH-Skriptes alle Zeilen und die Zwischenergebnisse von Berechnungen unds Ausgaben angezeigt werden.
Dabei habe ich die easyvdrshutdown.sh (0.6.0) untersucht und herausgefunden, dass es in dem Abschnitt "JepsenHWWakeup" zu Prolemen bei der Ermittlung der Weckzeit gibt, konkret in den Zeilen 290/291: Hier entsteht der Fehler date: ungültiges Datum "23 Mai 2008 2:30"
NEXTDAILYTIMER bleibt wegen des Fehlers leer, es gibt in den Zeilen 292, 305 und 308 noch Folgefehler bei den IF-Befehlen wegen des leeren NEXTDAILYTIMER ( unary operator expected).
In Folge bleibt WAKEUPSTR leer und es wird kein Timer in die Uhr geschrieben. Die Büchse wacht nicht mehr auf.
Ich habe noch einen LinVDR 0.7 ebenfalls mit Hardware Wakeup Uhr am laufen, dort funktioniert alles. Die Codestrecke zur Hardwareuhr von Frank Jepsen ist absolut identisch und ich habe auch die einmal untersucht:
Der Unterschied ist, dass beim LinVDR in der entsprechenden Zeile der date - Befehl nicht "23 Mai 2008" sondern "23 May 2008" ergibt. Damit läuft das Ding glatt durch.
Offenbar hat mein easyvdr ein Sprachproblem. Wieso gibt es da einen Unterschied und wie bringe ich dem easyvdr die englische Zeitnotation bei?
Hat jemand einen Tipp?
Gruß aus Mainz,
Dirk
Zum Verständnis hier der Auszug aus easyvdrshutdown.sh zum easyvdr 0.5.0.9
Zitat:...
247 "JepsenHWWakeup")
248 if [ -e /etc/vdr/vdr-addon-hw-wakeup.conf ]; then
249 . /etc/vdr/vdr-addon-hw-wakeup.conf
250 fi
251 # Defaults:
252 [ -z "$ENABLED" ] && export ENABLED="no"
253 [ -z "$WAKEUP_PORT" ] && export WAKEUP_PORT="/dev/ttyS0"
254 [ -z "$KILL_LIRC" ] && export KILL_LIRC="no"
255 [ -z "$KILL_LCDD" ] && export KILL_LCDD="yes"
256 [ -z "$MIN_PRE_TIMER" ] && export MIN_PRE_TIMER=5
257 [ -z "$MAX_POWEROFF_TIME" ] && export MAX_POWEROFF_TIME=0
258 [ -z "$MAX_TRY_AGAIN" ] && export MAX_TRY_AGAIN=0
259 # Const
260 NEVER=2147483647
261 if [ $MAX_TRY_AGAIN -gt 0 ]; then
262 # another script wants to retry shutdown later
263 ERR_MSG="Shutdown abgebrochen"
264 $SVDRPCMD MESG "$ERR_MSG" &
265
266 EXITCODE=0
267 else
268 if [ $ENABLED = "no" ]; then
269 # vdr-addon-hw-wakeup is disabled, so just exit
270 ERR_MSG="hw-wakeup functionality is disabled"
271 $SVDRPCMD MESG "$ERR_MSG - Shutdown abgebrochen" &
272 $LOGGERCMD "$ERR_MSG - Shutdown abgebrochen"
273 $LOGGERCMD "hw-wakeup functionality is disabled"
274 EXITCODE=0
275 else
276 # calculate, at what time the machine should be powered on
277 # VDR-Timer
278 NOW=$((`date +%s`))
279 # echo "NOW " `date -d "1970-01-01 $NOW seconds UTC" "+%H:%M %d.%m.%Y"` $NOW
280 if [ -z $TIMER ] || [ $TIMER -eq 0 ]; then
281 NEXTTIMER=$NEVER
282 else
283 NEXTTIMER=`expr $TIMER - $MIN_PRE_TIMER \* 60`
284 fi
285 # echo "TIMER " `date -d "1970-01-01 $NEXTTIMER seconds UTC" "+%H:%M %d.%m.%Y"` $NEXTTIMER
286 # Daily Timer
287 if [ -z $DAILY_TIMER_STD ] || [ -z $DAILY_TIMER_MIN ]; then
288 NEXTDAILYTIMER=$NEVER
289 else
290 NEXTDAILYTIMER=`date +"%d %b %Y"`
291 NEXTDAILYTIMER=`date -d "$NEXTDAILYTIMER $DAILY_TIMER_STD:$DAILY_TIMER_MIN" +%s`
292 if [ $NOW -gt $NEXTDAILYTIMER ]; then
293 NEXTDAILYTIMER=`expr $NEXTDAILYTIMER + 86400`
294 fi
295 fi
296 # echo "DAILYTIMER " `date -d "1970-01-01 $NEXTDAILYTIMER seconds UTC" "+%H:%M %d.%m.%Y"` $NEXTDAILYTIMER
297 # MaxPowerOff Time
298 if [ $MAX_POWEROFF_TIME -eq 0 ]; then
299 WAKEUPTIME=$NEVER
300 else
301 WAKEUPTIME=`expr $NOW + $MAX_POWEROFF_TIME \* 60`
302 fi
303 # echo "MAXPOWEROFF " `date -d "1970-01-01 $WAKEUPTIME seconds UTC" "+%H:%M %d.%m.%Y"` $WAKEUPTIME
304 # Who comes first?
305 if [ $WAKEUPTIME -gt $NEXTTIMER ] && [ $NEXTDAILYTIMER -gt $NEXTTIMER ]; then
306 WAKEUPTIME=$NEXTTIMER
307 else
308 if [ $WAKEUPTIME -gt $NEXTDAILYTIMER ]; then
309 WAKEUPTIME=$NEXTDAILYTIMER
310 fi
311 fi
312 # echo "WAKEUPTIME " `date -d "1970-01-01 $WAKEUPTIME seconds UTC" "+%H:%M %d.%m.%Y"` $WAKEUPTIME
313 if [ $WAKEUPTIME -eq $NEVER ]; then
314 WAKEUPSTR=""
315 else
316 WAKEUPSTR=`date -d "1970-01-01 $WAKEUPTIME seconds UTC" +%H%M%d%m`
317 fi
318 TIMESTR=`date +%H%M%S%d%m%y%w`
319 # Kill LIRC
320 if [ $KILL_LIRC = "yes" ]; then
321 $LOGGERCMD "Starting Module 8250"
322 killall lircd
323 sleep 2
324 modprobe -r lirc_serial
325 sleep 4
326 modprobe 8250
327 setserial $WAKEUP_PORT uart 16550A
328 sleep 8
329 fi
330 # Kill LCDd
331 if [ $KILL_LCDD = "yes" ]; then
332 killall LCDd
333 sleep 1
334 echo -n -e "\317" > $WAKEUP_PORT
335 fi
336 $LOGGERCMD "echo ATS$WAKEUPSTR > $WAKEUP_PORT"
337 echo ATS$WAKEUPSTR > $WAKEUP_PORT
338 $LOGGERCMD "echo RTS$TIMESTR > $WAKEUP_PORT"
339 echo RTS$TIMESTR > $WAKEUP_PORT
340 EXITCODE=0
341 poweroff
342 fi
343 fi
...
Stets findet Überraschung statt, da wo man's nicht erwartet hat. W.Busch
Board: MSI K8N Neo 4H / 2 GB / Athlon 64 X2 4200|GraKa: Zotac GT220 1GB RAM|DVB-S2: DD Cine S2 V6.5|Analog: Hauppauge PVR350|Harddisk1: Seagate 500GB PATA|ST3500630A|Harddisk2: Hitachi 2TB SATA HDS722020ALA330|Brenner: LG GSA-H22N ATAPI
Board: MSI K8N Neo 4H / 2 GB / Athlon 64 X2 4200|GraKa: Zotac GT220 1GB RAM|DVB-S2: DD Cine S2 V6.5|Analog: Hauppauge PVR350|Harddisk1: Seagate 500GB PATA|ST3500630A|Harddisk2: Hitachi 2TB SATA HDS722020ALA330|Brenner: LG GSA-H22N ATAPI