DVB-Treiber werden bei Emergency Exit nicht neu geladen

  • Hallo, ist mir schon seit langer Zeit ein Dorn im Auge; jetzt möchte ich da rangehen.

    Da das Restarten der Treiber der Sinn des Neustarts ist, sollte das doch eigentlich an der passenden Stelle eingepflegt sein.

    Alle Dateien in /etc/init/ gehören root, sollte also nicht daran liegen ?


    Das Script ist auch da, und funktioniert

    Code
    ls -ls `which dvb-driver`
    4 -rwxr-xr-x 1 root root 3426 Feb  7 22:13 /usr/bin/dvb-driver

    Wo ist der Haken ? Komme momentan nicht weiter....

    Display Spoiler

    MSI770T-C45---Sempron 145---GT630

    DVBSky S952---Skystar2.6d---Satelco Easywatch DVB-C

    YAVDR-0.6.1

  • Der Upstart-Job feuert soweit ich das sehe nur beim Resume aus dem Suspend oder wenn udevtrigger gelaufen ist. Wenn man mit Upstart auf einen bestimmten Exit-Code reagieren will, kann man das wie in http://upstart.ubuntu.com/cookbook/#run-…cular-exit-code beschrieben machen.

    Nachdem der Unterstützungzeitraum für Ubuntu 14.04 bereits abgelaufen ist, können für yaVDR 0.6.1 keine neuen Pakete mehr gebaut werden.

    Meine VDRs

    VDR 1: Point of View Ion-330-1, 2x Sundtek MediaTV Pro (DVB-C), Atric IR-Einschalter Rev.5, Ubuntu 18.04 (yavdr-ansible)
    VDR 2: Acer Revo 3610, Pinnacle PCTV SAT 452e, Medion X10, yaVDR 0.6
    VDR 3: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce GT 1030, Ubuntu 18.04 (yavdr-ansible), VDR 2.4.1, CIR-Empfänger
    Client 1: Raspberry Pi 2, Arch Linux ARM, VDR 2.3.8
    vdr-epg-daemon auf Cubietruck mit 32 GB SSD, Arch Linux ARM

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hi Seahawk,

    dann bin ich bei meiner Suche bestimt an der falschen Stelle gelandet.

    Welche Scripte werden denn beim Notausstieg abgearbeitet?

    Das ist doch nicht von KS hart verdrahtet, oder :)

    Display Spoiler

    MSI770T-C45---Sempron 145---GT630

    DVBSky S952---Skystar2.6d---Satelco Easywatch DVB-C

    YAVDR-0.6.1

  • Code
    cat /usr/share/yavdr/events/actions/restart-vdr
    #!/bin/bash
    
    stop vdr
    if [ ! "$(dbget vdr.backend)" = "disabled" ]; then
      sleep 4
      start vdr

    Sollte in der Abfrage nicht ein dvb-driver --unload; dvb-driber --load Abhilfe schaffen?

    Und da fehlt doch ein "fi" !!!

    Oder bin ich wieder (immer noch) falsch ???

    :wand

    Display Spoiler

    MSI770T-C45---Sempron 145---GT630

    DVBSky S952---Skystar2.6d---Satelco Easywatch DVB-C

    YAVDR-0.6.1

  • Der VDR solte sich bei einem Notausstieg mit dem Exit-Status 1 beenden und auf dieses Event kann man dann mit einem Upstart-Job reagieren. Außerdem muss man dafür sorgen, dass der VDR nicht von seiner eigenen Upstart-Unit automatisch wieder gestartet wird.

    Code: /etc/init/reload-dvb-driver.conf
    description     "Reload driver on emergency exit"
    start on stopped vdr EXIT_STATUS=1
    task
    script 
        dvb-driver --unload
        dvb-driver --load
        initctl start --no-wait vdr
    end script

    Das könnte aber potentiell zu Problemen führen, wenn beim (ent)laden der DVB-Treiber etwas schief geht.

    Und beim Upstart-Job für den VDR muss man dann noch verhindern, dass der VDR beim einem Exit-Status von 1 automatisch neu gestartet wird, also die Bedingung in der Zeile 10 entsprechend erweitern:

    Code: /etc/init/vdr.conf
    start on ( \
              runlevel [2345] \
           or stopped vdr RESULT=failed EXIT_SIGNAL=?* \
           or stopped vdr RESULT=failed EXIT_STATUS!=[012] \
           or resume \
             )
    Meine VDRs

    VDR 1: Point of View Ion-330-1, 2x Sundtek MediaTV Pro (DVB-C), Atric IR-Einschalter Rev.5, Ubuntu 18.04 (yavdr-ansible)
    VDR 2: Acer Revo 3610, Pinnacle PCTV SAT 452e, Medion X10, yaVDR 0.6
    VDR 3: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce GT 1030, Ubuntu 18.04 (yavdr-ansible), VDR 2.4.1, CIR-Empfänger
    Client 1: Raspberry Pi 2, Arch Linux ARM, VDR 2.3.8
    vdr-epg-daemon auf Cubietruck mit 32 GB SSD, Arch Linux ARM

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

    Edited 2 times, last by seahawk1986: Syntaxfehler behoben (July 25, 2019 at 11:36 PM).

  • Sollte in der Abfrage nicht ein dvb-driver --unload; dvb-driber --load Abhilfe schaffen?

    Die Action wird vom Webfrontend ausgelöst, wenn man dort auf den entsprechende Butten klickt.

    Und da fehlt doch ein "fi" !!!

    Zumindest im Git ist es seit 2011 vorhanden: https://github.com/yavdr/yavdr-ut…ons/restart-vdr

    Meine VDRs

    VDR 1: Point of View Ion-330-1, 2x Sundtek MediaTV Pro (DVB-C), Atric IR-Einschalter Rev.5, Ubuntu 18.04 (yavdr-ansible)
    VDR 2: Acer Revo 3610, Pinnacle PCTV SAT 452e, Medion X10, yaVDR 0.6
    VDR 3: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce GT 1030, Ubuntu 18.04 (yavdr-ansible), VDR 2.4.1, CIR-Empfänger
    Client 1: Raspberry Pi 2, Arch Linux ARM, VDR 2.3.8
    vdr-epg-daemon auf Cubietruck mit 32 GB SSD, Arch Linux ARM

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • (Hat sich überschnitten)

    Nachtrag: fi ist da, verrutscht nur wegen fehlendem, abschließenden CR vor den Prompt.

    Display Spoiler

    MSI770T-C45---Sempron 145---GT630

    DVBSky S952---Skystar2.6d---Satelco Easywatch DVB-C

    YAVDR-0.6.1

    Edited once, last by rdnzl (July 24, 2019 at 11:55 PM).

  • Also ist der Notausstieg bis heute eigentlich ein unausgebrütetes Ei gewesen?

    Da nie 100% realisiert.

    Vielen Dank für Deine Hilfe, muß mal pausieren.

    Display Spoiler

    MSI770T-C45---Sempron 145---GT630

    DVBSky S952---Skystar2.6d---Satelco Easywatch DVB-C

    YAVDR-0.6.1

  • Der VDR macht da nicht mehr als sich mit dem Exit-Code 1 zu beenden - und ein Entladen und erneutes Laden der DVB-Treiber bringt nur etwas, wenn das Problem nicht an anderer Stelle liegt (z.B. Empfangsstörungen durch Unwetter, Frequenzdrift eines alten LNB, Überhitzung usw.).

    Meine VDRs

    VDR 1: Point of View Ion-330-1, 2x Sundtek MediaTV Pro (DVB-C), Atric IR-Einschalter Rev.5, Ubuntu 18.04 (yavdr-ansible)
    VDR 2: Acer Revo 3610, Pinnacle PCTV SAT 452e, Medion X10, yaVDR 0.6
    VDR 3: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce GT 1030, Ubuntu 18.04 (yavdr-ansible), VDR 2.4.1, CIR-Empfänger
    Client 1: Raspberry Pi 2, Arch Linux ARM, VDR 2.3.8
    vdr-epg-daemon auf Cubietruck mit 32 GB SSD, Arch Linux ARM

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • 1. Versuch:

    Code
    init-checkconf /etc/init/reload-dvb-driver.conf 
    ERROR: File /etc/init/reload-dvb-driver.conf: syntax invalid:
    init:reload-dvb-driver.conf:4: Unknown stanza
    Display Spoiler

    MSI770T-C45---Sempron 145---GT630

    DVBSky S952---Skystar2.6d---Satelco Easywatch DVB-C

    YAVDR-0.6.1

  • Ah, das start am Anfang von Zeile 4 muss weg.

    Meine VDRs

    VDR 1: Point of View Ion-330-1, 2x Sundtek MediaTV Pro (DVB-C), Atric IR-Einschalter Rev.5, Ubuntu 18.04 (yavdr-ansible)
    VDR 2: Acer Revo 3610, Pinnacle PCTV SAT 452e, Medion X10, yaVDR 0.6
    VDR 3: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce GT 1030, Ubuntu 18.04 (yavdr-ansible), VDR 2.4.1, CIR-Empfänger
    Client 1: Raspberry Pi 2, Arch Linux ARM, VDR 2.3.8
    vdr-epg-daemon auf Cubietruck mit 32 GB SSD, Arch Linux ARM

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Syntaktisch ist das so OK, aber: der Job wird nicht gestartet!

    Code
    initctl list|grep dvb
    dvb-driver start/running
    reload-dvb-driver stop/waiting

    (wer benutzt eigentlich wann /etc/init/dvb-driver.conf ? Ein Treiberrestart findet ja z.Zt. noch nicht statt, die Treiber werden doch vom BS geladen [start on (resume or stopped udevtrigger)]

    Im syslog keine dvb-Treiver-Meldungen. Hatte auch mal einen logger "Hallo" eingebaut, kommt nicht.

    Auch kein Log im /var/log/upstart.

    Code
    Manuell gestartet, während vdr lief:
    
    Jul 25 20:56:06 ubuntu logger: hallo before
    Jul 25 20:56:30 ubuntu vdr: [4734] frontend 1/0 timed out while tuning to channel 226 (n-tv (C)), tp 130
    Jul 25 20:56:31 ubuntu vdr: [4738] frontend 2/0 timed out while tuning to channel 227 (Sky Atlantic HD (C)), tp 154
    Jul 25 20:56:47 ubuntu vdr: [5548] epg data writer thread started (pid=4704, tid=5548, prio=low)
    Jul 25 20:56:49 ubuntu vdr: [5548] epg data writer thread ended (pid=4704, tid=5548)
    Jul 25 20:56:51 ubuntu vdr: [4734] frontend 1/0 timed out while tuning to channel 101 (Sky Sport Bundesliga 1 HD (C)), tp 162
    Jul 25 20:57:14 ubuntu logger: hallo after
    Jul 25 20:57:14 ubuntu kernel: [ 8026.464714] init: reload-dvb-driver main process (5294) terminated with status 1

    Dann kommt Log

    Code
    sudo cat /var/log/upstart/reload-dvb-driver.log 
    Device is in use. Giving up.
    initctl: invalid option: --no-wait
    Try `initctl --help' for more information


    Code
    initctl show-config |grep -A2 dvb
    dvb-driver
      start on (resume or stopped udevtrigger)
      stop on suspend
    --
    reload-dvb-driver
      start on stopped vdr EXIT_STATUS=1
    alsa-restore

    Habe den Eindruck, der Job muß irgendwie in upstart registriert werden, da er hier

    Code
    initctl check-config |grep reload
    reload-keytables

    nicht auftaucht. Auch ein System-Neustart brachte keine Besserung.

    :(

    Display Spoiler

    MSI770T-C45---Sempron 145---GT630

    DVBSky S952---Skystar2.6d---Satelco Easywatch DVB-C

    YAVDR-0.6.1

  • Habe ein wenig weiter getestet, und des öfteren

    initctl reload-configuration aufgerufen:

    Aber bei show-config alles OK. (Das Pasten dieser Seiten ist mir zu schwierig)

    What happened in paradise ?

    Display Spoiler

    MSI770T-C45---Sempron 145---GT630

    DVBSky S952---Skystar2.6d---Satelco Easywatch DVB-C

    YAVDR-0.6.1

  • Die fehlenden Ereignisse sollten eigentlich keine Rolle Spielen, die stecken in Upstart-Jobs aus nicht installierten Paketen, den Actions, die über das Webfrontend ausgelöst werden können oder udev-Regeln, alles Orte von initctl nicht nachsehen kann.

    Ein Fehler in der reload-dvb-driver.conf war noch in der Reihenfolge der Argumente, es muss initctl start --no-wait vdr statt initctl --no-wait start vdr heißen.

    Meine VDRs

    VDR 1: Point of View Ion-330-1, 2x Sundtek MediaTV Pro (DVB-C), Atric IR-Einschalter Rev.5, Ubuntu 18.04 (yavdr-ansible)
    VDR 2: Acer Revo 3610, Pinnacle PCTV SAT 452e, Medion X10, yaVDR 0.6
    VDR 3: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce GT 1030, Ubuntu 18.04 (yavdr-ansible), VDR 2.4.1, CIR-Empfänger
    Client 1: Raspberry Pi 2, Arch Linux ARM, VDR 2.3.8
    vdr-epg-daemon auf Cubietruck mit 32 GB SSD, Arch Linux ARM

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Thanks für die Info.

    Hatte einfach das --no-wait rausgeschmissen bei meinen Tests. Was aber auch nicht DEN ERFOLG brachte...

    Drehe das dann noch mal, erhoffe mir aber keine Änderung, da der Job definitiv nicht automatisch gestartet wird.

    Es muß doch an der Startbedingung, oder ff liegen.

    Display Spoiler

    MSI770T-C45---Sempron 145---GT630

    DVBSky S952---Skystar2.6d---Satelco Easywatch DVB-C

    YAVDR-0.6.1

  • Fuck, ich hab's: Ich teste die ganze Zeit mit Neustart übers Menü; da ist der Exit_Code natürlich ein anderer als beim VDSB.

    Wie kann man den Treibrestart auch bei gesteuertem Neustart durchführen?

    Display Spoiler

    MSI770T-C45---Sempron 145---GT630

    DVBSky S952---Skystar2.6d---Satelco Easywatch DVB-C

    YAVDR-0.6.1

  • Hast du denn Probleme mit den DVB-Treibern? Würde mich einfach mal generell interessieren. Bei VDR4Arch haben wir garnicht erst einen Mechanismus eingebaut um DVB-Treiber neu zu laden. Ich habe das immer für ein Relikt aus dem Zeitalter der Full-Featured-Karten gehalten.

  • Wie kann man den Treibrestart auch bei gesteuertem Neustart durchführen?

    Am besten den Menüpunkt durch einen eigenen Befehl ersetzen, der den VDR stoppen lässt, dann die Treiber neu lädt und danach den VDR wieder startet. Wenn man in den Upstart-Jobs den VDR wieder starten lässt, wenn er mit dem Exit-Code 0 beendet wurde, fängt man sich beim Shutdown eine unschöne Endlosschleife ein.

    Meine VDRs

    VDR 1: Point of View Ion-330-1, 2x Sundtek MediaTV Pro (DVB-C), Atric IR-Einschalter Rev.5, Ubuntu 18.04 (yavdr-ansible)
    VDR 2: Acer Revo 3610, Pinnacle PCTV SAT 452e, Medion X10, yaVDR 0.6
    VDR 3: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce GT 1030, Ubuntu 18.04 (yavdr-ansible), VDR 2.4.1, CIR-Empfänger
    Client 1: Raspberry Pi 2, Arch Linux ARM, VDR 2.3.8
    vdr-epg-daemon auf Cubietruck mit 32 GB SSD, Arch Linux ARM

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hast du denn Probleme mit den DVB-Treibern? Würde mich einfach mal generell interessieren. Bei VDR4Arch haben wir garnicht erst einen Mechanismus eingebaut um DVB-Treiber neu zu laden. Ich habe das immer für ein Relikt aus dem Zeitalter der Full-Featured-Karten gehalten.

    Mit Sat-Karten und Sommergewittern/Starkregen, ist ein Treiberrestart leider manchmal unumgänglich, da sich die Karten bei solchen Empfangslagen dann oft verabschieden.

    Display Spoiler

    MSI770T-C45---Sempron 145---GT630

    DVBSky S952---Skystar2.6d---Satelco Easywatch DVB-C

    YAVDR-0.6.1

  • Am besten den Menüpunkt durch einen eigenen Befehl ersetzen, der den VDR stoppen lässt, dann die Treiber neu lädt und danach den VDR wieder startet. Wenn man in den Upstart-Jobs den VDR wieder starten lässt, wenn er mit dem Exit-Code 0 beendet wurde, fängt man sich beim Shutdown eine unschöne Endlosschleife ein.

    Kann mich noch an Früher erinnern, als ich noch distributionslos war, da wurde das Treibern im Startscrpt erledigt. Jetzt weiß ich, warum!

    (Ansatzweise)

    Display Spoiler

    MSI770T-C45---Sempron 145---GT630

    DVBSky S952---Skystar2.6d---Satelco Easywatch DVB-C

    YAVDR-0.6.1

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!