Hallo,
mein VDR hängt über einen Router am Internet. Der Rouer ist nur bei Bedarf eingeschaltet.
Wenn ich bei ausgeschaltetem Router im weatherng-Plugin die Wetterdaten aktualisiere, stürzt mir der VDR komplett ab, so daß nur noch ein Reboot hilft.
Ich habe in das Skript weatherng.sh eine Erkennung eingebaut, die prüft, ob eine Internetverbindung steht. Ohne Verbindung wird das Skript beendet.
#Pruefung, ob Internetverbindung steht, sonst Skript abbrechen ...
ping -c 1 www.google.de | grep -q unknown
# Rueckgabewert 0 kein Fehler, d.h. String wurde gefunden; >0 Fehler
# Rueckgabewert von Grep sichern
net_ok=$?
# net_ok=0 -> Testcode
if [ $net_ok -eq 0 ] ; then
logger "Keine Internetverbindung. Kann Wetterdaten nicht laden."
exit 1
fi
Alles anzeigen
Grundsätzlich funktioniert das Skript auch, was ich durch den Testcode "net_ok=0" geprüft habe.
Wenn jedoch tatsächlich keine Internetverbindung besteht, stürzt mir der VDR trotz des Skripts ab.
syslog:
Oct 19 22:24:03 vdr vdrdevel: [2360] DEBUG : weatherng: Executing GetData :'/var/lib/vdrdevel/plugins/weatherng/weatherng.sh'
Oct 19 22:25:03 vdr vdrdevel: [2360] PANIC: watchdog timer expired - exiting!
Oct 19 22:25:04 vdr vdrdevel: [2444] KBD remote control thread ended (pid=2360, tid=2444)
Oct 19 22:25:04 vdr vdrdevel: [2360] buffer stats: 0 (0%) used
Oct 19 22:25:04 vdr runvdrdevel: restarting VDR
Oct 19 22:25:04 vdr kernel: saa7146: unregister extension 'budget_ci dvb'.
Oct 19 22:25:04 vdr kernel: ACPI: PCI interrupt for device 0000:00:13.0 disabled
Oct 19 22:25:04 vdr kernel: ACPI: PCI interrupt for device 0000:00:0d.0 disabled
Oct 19 22:25:06 vdr kernel: saa7146: register extension 'budget_ci dvb'.
Oct 19 22:25:06 vdr kernel: PCI: Enabling device 0000:00:0d.0 (0000 -> 0002)
Oct 19 22:25:06 vdr kernel: ACPI: PCI Interrupt 0000:00:0d.0[A] -> GSI 16 (level, low) -> IRQ 185
Oct 19 22:25:06 vdr kernel: saa7146: found saa7146 @ mem d0952000 (revision 1, irq 185) (0x13c2,0x1011).
Oct 19 22:25:06 vdr kernel: saa7146 (1): dma buffer size 192512
Oct 19 22:25:06 vdr kernel: DVB: registering new adapter (TT-Budget/WinTV-NOVA-T^I PCI).
Oct 19 22:25:06 vdr kernel: adapter has MAC addr = 00:d0:5c:03:23:22
Oct 19 22:25:06 vdr kernel: input: Budget-CI dvb ir receiver saa7146 (1) as /class/input/input5
Oct 19 22:25:06 vdr kernel: DVB: registering frontend 0 (Philips TDA10045H DVB-T)...
Oct 19 22:25:06 vdr kernel: PCI: Enabling device 0000:00:13.0 (0000 -> 0002)
Oct 19 22:25:06 vdr kernel: ACPI: PCI Interrupt 0000:00:13.0[A] -> GSI 18 (level, low) -> IRQ 193
Oct 19 22:25:06 vdr kernel: saa7146: found saa7146 @ mem d0b06000 (revision 1, irq 193) (0x13c2,0x1011).
Oct 19 22:25:06 vdr kernel: saa7146 (2): dma buffer size 192512
Oct 19 22:25:06 vdr kernel: DVB: registering new adapter (TT-Budget/WinTV-NOVA-T^I PCI).
Oct 19 22:25:06 vdr kernel: adapter has MAC addr = 00:d0:5c:22:08:df
Oct 19 22:25:06 vdr kernel: input: Budget-CI dvb ir receiver saa7146 (2) as /class/input/input6
Oct 19 22:25:06 vdr kernel: DVB: registering frontend 1 (Philips TDA10045H DVB-T)...
Oct 19 22:25:14 vdr kernel: BUG: unable to handle kernel NULL pointer dereference at virtual address 00000233
Oct 19 22:25:14 vdr kernel: printing eip:
Oct 19 22:25:14 vdr kernel: d09361b2
Oct 19 22:25:14 vdr kernel: *pde = 00000000
Oct 19 22:25:14 vdr kernel: Oops: 0000 [#1]
Oct 19 22:25:14 vdr kernel: Modules linked in: budget_ci ipv6 button ac battery dm_snapshot dm_mirror dm_mod nvram ppdev loop dvb_ttpci l64781 saa7146_vv video_buf videodev v4l1_compat i2c_viapro serio_raw v4l2_common via_ircc ves1820 tda8083 sp8870 parport_pc parport lnbp21 tda1004x firmware_class budget_core saa7146 irda rtc psmouse ves1x93 ttpci_eeprom stv0299 dvb_core pcspkr stv0297 evdev crc_ccitt shpchp pci_hotplug i2c_core via_agp agpgart ext3 jbd ide_cd cdrom ide_disk via82cxxx via_rhine mii generic ide_core ehci_hcd uhci_hcd usbcore thermal processor fan
Oct 19 22:25:14 vdr kernel: CPU: 0
Oct 19 22:25:14 vdr kernel: EIP: 0060:[<d09361b2>] Not tainted VLI
Oct 19 22:25:14 vdr kernel: EFLAGS: 00010286 (2.6.18-4-486 #1)
Oct 19 22:25:14 vdr kernel: EIP is at dvb_frontend_release+0xd/0x4a [dvb_core]
Oct 19 22:25:14 vdr kernel: eax: 00000067 ebx: cb867280 ecx: d09361a5 edx: cb867280
Oct 19 22:25:14 vdr kernel: esi: cb867280 edi: cf370e5c ebp: c12a97d4 esp: c54e1f3c
Oct 19 22:25:14 vdr kernel: ds: 007b es: 007b ss: 0068
Oct 19 22:25:14 vdr kernel: Process weatherng.sh (pid: 2913, ti=c54e0000 task=c979dab0 task.ti=c54e0000)
Oct 19 22:25:14 vdr kernel: Stack: 00000008 cb867280 cf370e5c c0149966 cfff0120 cb867280 cf1ab8e0 00000000
Oct 19 22:25:14 vdr kernel: cbd0a120 c0147572 cf1ab8e0 0fffffff 00000010 c0115e4f 00000000 00000000
Oct 19 22:25:14 vdr kernel: 00000000 c979dab0 00000001 c54e1fac c0116c62 00000000 00000001 00000007
Oct 19 22:25:14 vdr kernel: Call Trace:
Oct 19 22:25:14 vdr kernel: [<c0149966>] __fput+0x88/0x12d
Oct 19 22:25:14 vdr kernel: [<c0147572>] filp_close+0x4e/0x54
Oct 19 22:25:14 vdr kernel: [<c0115e4f>] put_files_struct+0x64/0xa6
Oct 19 22:25:14 vdr kernel: [<c0116c62>] do_exit+0x1b7/0x65f
Oct 19 22:25:14 vdr kernel: [<c0117166>] sys_exit_group+0x0/0xd
Oct 19 22:25:14 vdr kernel: [<c0102a47>] syscall_call+0x7/0xb
Oct 19 22:25:14 vdr kernel: Code: d0 e8 d5 ee 7d ef 58 5a 89 f0 e8 ee fd 80 ef b8 68 1d 94 d0 e8 98 ff 93 ef 31 c0 5b 5e c3 57 56 53 89 c7 89 d3 8b 42 74 8b 40 28 <8b> b0 cc 01 00 00 83 3d 10 22 94 d0 00 74 11 68 ac 95 93 d0 68
Oct 19 22:25:14 vdr kernel: EIP: [<d09361b2>] dvb_frontend_release+0xd/0x4a [dvb_core] SS:ESP 0068:c54e1f3c
Oct 19 22:25:14 vdr kernel: <1>Fixing recursive fault but reboot is needed!
Alles anzeigen
Hat jemand eine Idee, warum es zu dem Absturz kommt?
Ist eventuell die Ausführungszeit von 'ping' zu lang?
Ich habe schon per Parameter "-w 2" bzw. "-W 2" versucht, die Timeout-Zeit zu reduzieren. Die Parameter haben bei mir jedoch keine Auswirkung. 'ping' braucht immer ca. 15s bis es beendet wird.
Gibt es eine geeignetere Möglichkeit, das Problem zu lösen?
Mein System:
- c't VDR 6, V 1.5.9-1devel2
- vdrdevel-plugin-weatherng 0.0.6+0.0.7pre2-21
Gruß
et-fred