Beiträge von Adneraturi

    Vielen Dank für die Anmerkungen!


    Ich habe meine Änderungen in /lib/systemd/system/vdr.service nun wieder rückgängig gemacht und stattdessen mit

    Code
    systemctl edit vdr.service


    eine neue Datei zwecks Änderung mit dem folgenden Inhalt angelegt:

    Code
    [Unit]
    Wants=dev-dvb-adapter0-frontend0.device
    After=dev-dvb-adapter0-frontend0.device
    Wants=dev-dvb-adapter1-frontend0.device
    After=dev-dvb-adapter1-frontend0.device


    Die Anmerkung mit nur adapter0 verstehe ich nicht ganz. Erst hatte ich es so verstanden, dass das System dann schneller hoch kommt. Aber jetzt, beim erneuten Lesen erscheint es mir eher für den Fehlerfall bzw. wenn ich mal "eine Karte" herausnehme.
    Ich besitze nur eine Karte, diese hat allerdings zwei Tuner verbaut, weshalb sie als zwei adapter eingebunden wird. Ich denke, die Wahrscheinlichkeit, dass ein Adapter ausfällt, der andere aber noch fehlerfrei läuft, nahe Null ist.
    Wenn nur auf adapter0 gewartet wird, verstehe ich auch nicht ganz, wie ich beide verwenden kann, wenn der zweite noch nicht da ist und somit von vdr noch nicht eingebunden werden kann.

    Vielen Dank für die Antworten.


    Soweit ich weiß nutzt Ubuntu aktuell eine Mischung aus systemd, upstart (fallen gelassen) und SysVinit, wobei systemd die Zukunft ist. Mir scheint, dass für vdr eine Mischung aus systemd und SysVinit eingesetzt wird (oder ich habe den Unterschied zwischen systemd und SysVinit nicht ganz verstanden).


    Ich habe die Datei /etc/udev/rules.d/99-meine-eigene.rules mit dem folgenden Inhalt angelegt.

    Code
    SUBSYSTEM=="dvb", TAG+="systemd"
    SUBSYSTEM=="video4linux", TAG+="systemd"


    Zudem habe ich die Datei /lib/systemd/system/vdr.service so erweitert, sodass unter "[Unit]" (und nicht "[Service]" wie in meinem ersten Versuch) die folgenden Zeilen hinzu kommen.

    Code
    Wants=dev-dvb-adapter0-frontend0.device
    After=dev-dvb-adapter0-frontend0.device
    Wants=dev-dvb-adapter1-frontend0.device
    After=dev-dvb-adapter1-frontend0.device


    Zweimal habe ich neu gestartet, beide male konnte vdr die Karte einbinden. Es scheint also zu funktionieren.


    Noch einmal Danke.

    Danke für die Antwort.


    Ich bin mir nicht sicher, was dies bringen soll, wenn die "frontend0"-Dateien noch nicht eingerichtet sind. Aber probiert habe ich es dennoch. Da die Änderungen einen Neustart nicht überleben habe ich dies zum Startscripte hinzugefügt. Ich habe die Gruppe "vdr" verwendet, wobei der Benutzer sowohl in "vdr" als auch in "video" ist. Letzteres ist die Gruppe von frontend0, wenn ich mich einloggen kann.
    Dies hat nicht funktioniert, das Problem bleibt bestehen. Das gleiche gilt, wenn ich "/dev/dvb" die Gruppe "video" zuweise.


    Wenn ich in dem Script einfach ein sleep von 4 Sekunden einbaue, dann klappt es (zumindest manchmal). Aber da es eine Race Condition bleibt, ist das nicht wirklich eine Lösung.

    Ich habe versucht mich so lange wie möglich davor zu drücken, aber nun habe ich mein Ubuntu auf 16.04(.1) aktualisiert. Wie sollte es auch anders sein lief dann fast gar nichts mehr. Die meisten Probleme konnte ich lösen, aber bei einem weiß ich nicht mehr weiter.


    Das Problem äußert sich dadrin, dass vdr beim Starten nicht richtig hoch kommt, es läuft zwar, kann aber nichts aufnehmen. In meiner Log-Datei sehe ich dann die Zeilen:

    Code
    vdr: [1923] ERROR (dvbdevice.c,1164): /dev/dvb/adapter0/frontend0: Permission denied
    vdr: [1923] ERROR (dvbdevice.c,1164): /dev/dvb/adapter1/frontend0: Permission denied
    vdr: [1923] no DVB device found


    Wenn ich dann allerdings mit service vdr beende und neu starte, dann funktioniert alles:

    Code
    vdr: [2852] frontend 0/0 provides DVB-C,DVB-T with QAM16,QAM32,QAM64,QAM128,QAM256 ("STV0367 DVB-C DVB-T")
    vdr: [2852] frontend 1/0 provides DVB-C,DVB-T with QAM16,QAM32,QAM64,QAM128,QAM256 ("STV0367 DVB-C DVB-T")
    vdr: [2852] found 2 DVB devices


    Im Internet konnte ich nichts brauchbares finden. Es gibt zwar durchaus Themen in diesem Gebiet, aber es scheint eine andere Ursache zu sein. Der Benutzer ist in der video-Gruppe,die frontends haben die richtigen Einstellungen und es funktioniert ja auch beim manuellen Start. Nur beim Booten klappt es nicht.
    Im Startscript habe ich mal den Inhalt des /dev/dvb-Ordners kurz vorm Start ausgeben lassen:

    Code
    /dev/dvb/:
    total 0
    drwxr-xr-x 2 root root 100 Sep 11 22:18 adapter0
    
    
    /dev/dvb/adapter0:
    total 0
    crw------- 1 root root 212, 0 Sep 11 22:18 demux0
    crw------- 1 root root 212, 1 Sep 11 22:18 dvr0
    crw------- 1 root root 212, 2 Sep 11 22:18 net0


    Für mich sieht es deshalb so aus, als sei die Karte zu dem Zeitpunkt noch nicht richtig im System eingerichtet. Leider weiß ich nicht, wie ich das ändern kann. Mit der neuen LTS-Version funktionieren die Startscripte anders, weshalb ich wohl nicht mehr direkt angeben kann, wann diese starten, sondern nur noch indirekt über die Abhängigkeiten. Ich habe vdr dabei schon soweit es geht nach hinten gebracht, lediglich meine von vdr abhängigen Scripte und vom System vorgegebene Schluss-/End-Scripte (hängen von $all ab) kommen danach.


    Übersehe ich etwas? Oder kann mir bitte jemand bei meinem Problem helfen?



    Zu den verwendeten Versionen:
    Bei der Aktualisierung wurde auch vdr auf Version 2.2.0 gebracht. Als Karte kommt Cine CT V6 mit "media_build_experimental" und den zum Bauen notwendigen Änderungen für 4.4-er Kernel zum Einsatz (heute gebaut).