VDR crash, DVB Device weg

  • Hallo,


    heut' nacht ist der VDR abgestürzt.


    Läuft auf einem Netgear ReadyNAS 104 mit Armada XP 370 (ARMv7) mit Debian Wheezy und selbstgebackenem Kernel 3.16.3.


    Tut der VDR tatsächlich die Kernel Module unloaden wenn er beendet wird?
    Da ist wohl ein Fehler beim initialisieren der Hardware passiert:
    technisat-usb2: i2c-error: in failed 53 = -110
    Wie kann ich das weiter analysieren?
    Module manuell unloaden und neu laden hilft. Device wieder da, VDR läuft auch wieder.
    Gibt es eine Möglichkeit, die Module automatisch nochmal neu zu laden, falls der Zugriff auf die Hardware fehlgeschlagen ist?


    Welchen Time-out hat der Watchdog? Immerhin hat er 2 min vorher noch erfolgreich das EPG aktualisiert?!
    Die Kiste hat recht wenig RAM (512 MB) und Rechenleistung. 200 bis 300 MB sind ausgelagert. VDR+VDR-Admin ist echt heavy für die Kiste.
    Es könnte also sein, dass er schlicht noch am Rechnen ist, wenn der Watchdog greift. Kann ich den Time-out erhöhen?


    Edit: Hab gerade gemerkt, er war zu dem Zeitpunkt mitten in einer Aufnahme. Da kann er doch eh kein EPG Update machen?


    danke



  • Tut der VDR tatsächlich die Kernel Module unloaden wenn er beendet wird?


    Warum um alles in der Welt sollte eine Anwendung das tun wollen? Natürlich nicht.


    Quote


    technisat-usb2: i2c-error: in failed 53 = -110


    Tja.
    Deine Hardware/Treiber/Firmware Kombination funktioniert hier nicht mehr. Daran kann wohl eine Software nicht viel dran ändern.

  • Du könntest manuell in der runvdr (falls du die nutzt eintragen das die Treibermodule automatisch beim beenden entladen und beim starten geladen werden. Wenn ich mich recht erinnere (ich nutze keine runvdr) sind die zwei Funktionen schon vorbereiten. Musst nur die Befehle eintragen ("rmmod TREIBERMODUL" zum entladen und "modprobe TREIBERMODUL" zum laden)


    Wenn bei dir das entladen des treibers hilft dann sollte das die Lösung sein.


    Gruß Patrick


    EDIT:
    Den Timeout kannst du mit -w0 zum Beispiel ganz deaktivieren. (auch in der runvdr)

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;-) *


    vectra --- glasslike ---

  • Ah, danke. Tatsächlich.


    MODULES=`lsmod | awk '/^dvb/ {gsub(/,/,"\n", $4); print $4}' | uniq | tac | grep -v "^$"`
    Und das ergibt manuell: dvb_usb_technisat_usb2 dvb_usb dvb_usb_technisat_usb2
    ausserdem dvb_core


    Er tut es also doch. Von wegen "warum sollte er?".
    Das ist dann wohl der Grund, warum das Device abgeschaltet und wieder angeschaltet wurde.
    Ich versuchs mal mit ein delay zwischen unload und load. Ja, da ist tatsächlich ein "Sleep 2" das sind genau die 2 sek, die man im Log sieht.


    Allerdings ist folgendes ziemlich unlogisch:
    get_modulenames
    [ -z "$MODULES" ] && load_dvb_modules
    Denn: Wenn die Module nicht geladen sind, findet lsmod auch keine.
    Sind die Module geladen, dann ist $MODULES nicht leer und die Module können geladen werden. Brauchen sie aber nicht, weil sie bereits geladen sind.


    Ich habe das jetzt mal manuell eingegeben:
    MODULES="dvb_usb_technisat_usb2 dvb_usb dvb_usb_technisat_usb2 dvb_core"


    Wie kann ich folgendes so ändern, dass ich pro Modul einen Resultcode logge? oder stderr, falls nicht leer?

    Code
    1. logger -t runvdr "Loading Modules: $MODULES"
    2. for MODULE in $MODULES; do
    3. modprobe $MODULE >/dev/null 2>&1
    4. done


    Bin mir noch nicht sicher, ob das so nun wirklich tut. Lassen wir es mal ein weilchen laufen.

  • Generell würde ich bei VDR auf einem NAS im Dauerbetrieb regelmäßig automatisiert den VDR neu starten wegen möglicher Memory Leaks in Plugins. VDR-Admin ist bestimmt nicht das ressourcenschonendste Web-Interface, vergleiche mal den Resourcenverbrauch mit vdr-plugin-live. Das Live-Plugin sollte auch schnellere Antworten liefern als vdr-admin.


    Gruß
    hepi