[gelöst] DVB: Digital Devices DuoFlex CT im DVB-T-Betrieb. Initialisierung der Frontends als DVB-T

  • Moin!


    Eine Idee fliegt da gerade durch meinen Kopf. Lassen wir DVB-T doch einfach auf Frontend 1 und erstellen Links für die übrigen Devices (demux, ca, net) von 0 nach 1 und hängen ein "dynamite_attach=no" an frontend0. Dann denkt der vdr, dass da zwei unabhängige Devices sind, ignoriert aber das erste. Der vdr möchte ja gerne demux1 zu frontend1 haben usw.


    Also mal aus dem Kopf hingeschrieben (ohne Garantie):

    Code
    ACTION=="add", SUBSYSTEM=="dvb", ENV{DVB_DEVICE_TYPE}=="frontend", KERNEL=="dvb0.frontend0", ENV{dynamite_attach}="no"
    ACTION=="add", SUBSYSTEM=="dvb", ENV{DVB_DEVICE_TYPE}!="", ENV{DVB_DEVICE_TYPE}!="frontend", SYMLINK+="dvb0.%E{DVB_DEVICE_TYPE}1"
    
    
    ACTION=="add", SUBSYSTEM=="dvb", ENV{DVB_DEVICE_TYPE}=="frontend", KERNEL=="dvb1.frontend0", ENV{dynamite_attach}="no"
    ACTION=="add", SUBSYSTEM=="dvb", ENV{DVB_DEVICE_TYPE}!="", ENV{DVB_DEVICE_TYPE}!="frontend", SYMLINK+="dvb1.%E{DVB_DEVICE_TYPE}1"


    Wenn man nicht dynamite benutzt, kann man dem vdr über den Parameter -D ja auch mitteilen, welches Gerät er benutzen soll.


    Lars.

  • Moin,


    ich hab mich endlich mal mit Deinem letzten SYMLINK-Approach auseinandergesetzt und erstmal eine schritt-für-Schritt-Regel erstellt, die so aussieht:


    Code
    ACTION=="add", KERNEL=="dvb0.frontend0", ENV{dynamite_attach}="no"
    ACTION=="add", KERNEL=="dvb1.frontend0", ENV{dynamite_attach}="no"
    ACTION=="add", KERNEL=="dvb0.demux0",    SYMLINK+="dvb/adapter0/demux1"
    ACTION=="add", KERNEL=="dvb0.net0",  	SYMLINK+="dvb/adapter0/net1"
    ACTION=="add", KERNEL=="dvb0.dvr0",  	SYMLINK+="dvb/adapter0/dvr1"
    ACTION=="add", KERNEL=="dvb1.demux0",	SYMLINK+="dvb/adapter1/demux1"
    ACTION=="add", KERNEL=="dvb1.net0",  	SYMLINK+="dvb/adapter1/net1"
    ACTION=="add", KERNEL=="dvb1.dvr0",  	SYMLINK+="dvb/adapter1/dvr1"


    Wichtig ist, das Ziel der Symlinks mit anzugeben, sonst werden sie als /dev/dvb0.demux0 angelegt und vom Adapter nicht gefunden.
    Damit werden jetzt erstmal die richtigen Symlinks angelegt:


    Damit habe ich einmal das gewünschte Ergebnis gehabt:
    Beide Frontends wurden offenbar als DVB-T initialisiert, es gab jedenfalls keine Timerkonflikte und ich konnte zu einem Sender umschalten, während das andere Frontend durch eine Aufnahme blockiert war.


    Hurra! Jetzt könnte man die udev-Regel noch mit Deinen Ausdrücken aufhübschen bzw. kürzen... Nicht weil's nötig ist, sondern because we can. :)


    Ich beobachte das jetzt mal ne Weile, ob es stabil ist.


    edit: Ist es nicht. Das dynamite-plugin bindet trotz dynamiteattach=0 adapter0/frontend0 ein, adapter0 wird deshalb als DVB-C-frontend angelegt. Nach detach beider frontends für adapter0 und rescan wird - wie geplant - nur noch adapter0/frontend1 eingebunden und auch richtig initialisiert.


    udevadm test zeigt, dass die Symlinks ordentlich angelegt werden, dynamite_attach=no wird gesetzt. Ist das jetzt ein dynamite-Problem?


    Wie schalte ich dynamite ab - muss ich das deinstallieren oder gibt's da nen no-Parameter, den ich in /etc/vdr/plugins/vdr-plugin-dynamit.conf eintragen kann?


    edit2: Geht doch. die udev-regel von 99-dvbname.rules zu 44-dvbname-rules umbenannt und das dynamite_attach=0 wird rechtzeitig gesetzt, damit dynamite es liest.


    Schönen Sonntag und vielen Dank für den Tip mit den Symlinks,


    L.B.Q.R.


    img, #cubbies-overlay{ -moz-transition-property: margin, box-shadow, z-index; -moz-transition-duration: 0.1s; -webkit-transition-property: margin, box-shadow, z-index; -webkit-transition-duration: 0.1s; }
    .cubbies-selected{ z-index: 9999; box-shadow: 3px 3px 8px -1px blue !important; cursor: pointer !important; margin: -3px 3px 3px -3px; }
    .cubbies-selected:active{ box-shadow: 2px 2px 5px -1px darkblue !important; margin: -1px 1px 1px -1px; }
    #cubbies-overlay{ position: fixed; z-index: 9999; bottom: 30px; left: 30px; box-shadow: 0 2px 3px rgba(0,0,0,0.8); border: none; }
    #cubbies-overlay:hover{ box-shadow: 0 2px 3px rgb(0,0,0); }

    yaVDR 0.4pre alpha - (VDR 1.7.18, Kernel 2.6.38-11-generic)
    ASRock A330ION 4GB DDR2 - OCZ Agility SSD als / - WD Green Caviar 1TB & 2 TB xfs - Terratec Cinergy 2400i (instabil mit handgebautem Treiber, ausgebaut) - DD DuoFlex CT mit T (läuft noch nicht) - Antec Remote Fusion mit Soundgraph Imon 15c2:0038 - Harmony One (läuft ootb als Soundgraph Imon programmiert)

    2 Mal editiert, zuletzt von Lebochequirit ()

  • Moin!


    Stimmt, meine SYMLINK-Einträge taugen nicht viel, aber das hast du ja korrigiert.


    Ob sowas funktioniert?

    Code
    ACTION=="add", SUBSYSTEM=="dvb", ENV{DVB_DEVICE_TYPE}!="", ENV{DVB_DEVICE_TYPE}!="frontend", SYMLINK+="dvb/adapter%E{DVB_ADAPTER_NUM}/%E{DVB_DEVICE_TYPE}1"


    Lars.

  • Moin!


    Da du ja eine Anleitung schreiben wolltest: Für Nutzer ohne dynamite-Plugin kann natürlich das "dynamite_attach" entfallen. Dann muss der vdr nur mit den passenden "-D"-Parameter gestartet werden.


    Lars.

  • So. Bei mir läuft jetzt folgende Lösung so stabil, dass ich sie im Wiki abgelegt habe:
    Zuerst werden vier Scripte angelegt:


    /usr/bin/renamefrontend00

    Bash
    #!/bin/bash
    mv /dev/dvb/adapter0/frontend0 /dev/dvb/adapter0/frontend0.disabled


    /usr/bin/renamefrontend01

    Bash
    #!/bin/bash
    sleep 2
    mv /dev/dvb/adapter0/frontend1 /dev/dvb/adapter0/frontend0


    und /usr/bin/renamefrontend10 und /usr/bin/renamefrontend11 entsprechend für /dev/dvb/adapter1.


    Das sleep von 2s beim Verschieben von frontend1 ist dabei erforderlich, damit nicht frontend1 zu früh zu frontend0 gemacht wird, nämlich bevor frontend0 auf frontend0.disabled verschoben wird.


    Diese Skripte werden mit folgenden UDEV-Regeln abgefeuert:
    /etc/udev/rules.d/44-dvbrename.rules

    Code
    ACTION=="add", KERNEL=="dvb0.frontend0", RUN+="/usr/bin/renamefrontend00"
    ACTION=="add", KERNEL=="dvb1.frontend0", RUN+="/usr/bin/renamefrontend10"


    /etc/udev/rules.d/45-dvbrename.rules

    Code
    ACTION=="add", KERNEL=="dvb1.frontend1", RUN+="/usr/bin/renamefrontend11"
    ACTION=="add", KERNEL=="dvb0.frontend1", RUN+="/usr/bin/renamefrontend01"


    Damit ist das gewünschte Ergebnis, nur die DVB-T-Frontends anzusteuern, bei mir nach ca. 25 Neustarts (ACPI-Ausprobiererei :-)) durchgehend reproduzierbar.


    Mal was anderes: Wie kriege ich diese elendigen CSS-Auswürfe am Ende von Posts weg, die nach einmal Preview am Fuß der Mail erscheinen und nicht weggehen? *kotz


    L.B.Q.R.img, #cubbies-overlay{ -moz-transition-property: margin, box-shadow, z-index; -moz-transition-duration: 0.1s; -webkit-transition-property: margin, box-shadow, z-index; -webkit-transition-duration: 0.1s; }
    .cubbies-selected{ z-index: 9999; box-shadow: 3px 3px 8px -1px blue !important; cursor: pointer !important; margin: -3px 3px 3px -3px; }
    .cubbies-selected:active{ box-shadow: 2px 2px 5px -1px darkblue !important; margin: -1px 1px 1px -1px; }
    #cubbies-overlay{ position: fixed; z-index: 9999; bottom: 30px; left: 30px; box-shadow: 0 2px 3px rgba(0,0,0,0.8); border: none; }
    #cubbies-overlay:hover{ box-shadow: 0 2px 3px rgb(0,0,0); }

    yaVDR 0.4pre alpha - (VDR 1.7.18, Kernel 2.6.38-11-generic)
    ASRock A330ION 4GB DDR2 - OCZ Agility SSD als / - WD Green Caviar 1TB & 2 TB xfs - Terratec Cinergy 2400i (instabil mit handgebautem Treiber, ausgebaut) - DD DuoFlex CT mit T (läuft noch nicht) - Antec Remote Fusion mit Soundgraph Imon 15c2:0038 - Harmony One (läuft ootb als Soundgraph Imon programmiert)

  • DD-CineCTV6 & DD DuoFlex CT (V2)ext.
    Würde gern zwei C und zwei T haben aber bei mir fehlen die frontend1.


    (gelöschte Adapter sind andere Karten)
    Wie geh ich da jetzt vor? Da nützt doch das umbenennen nix.
    Hustler

    ASUS M4N78 PRO, 1xDD-CineCTV6, 1xDD DuoFlex CT (V2), TTUSBIR
    yavdr64-0.6.2

  • Moin!


    Dein Treiber ist so neu, dass er nicht mehr für DVB-C und DVB-T getrennte Frontends anlegt.
    Das bedeutet, dass du entweder auch einen relativ aktuellen vdr brauchst, der damit umgehen kann, oder du benutzt "dvb-fe-tool" (aus den v4l-utils o.ä.), um das Delivery System pro Frontend entsprechend einzustellen (dann aber einen alten vdr benutzen!).


    Da du sowohl DVB-C- und DVB-T-Kanäle in der channels.conf haben wirst, wirst du mit einem aktuellen vdr allerdings das Problem haben, dass er denkt, dass jedes Frontend sowohl C als auch T empfangen kann. Deshalb musst du entweder das Plugin von UFO benutzen (und evtl. anpassen), damit der vdr nur das mit den Karten zu empfangen versucht, was möglich ist, oder du benutzt dynamite und eine passende udev-Regel, um den Empfang pro Frontend auf ein bestimmtes Delivery System zu beschränken (siehe README).


    Lars.

  • Ja, danke.
    hätt ich Trottel auch selber finden können. Aber ich übersehe sowas immer mal.
    Mit dvb-fe-tool gehts wohl aber in meinem Mischsystem verändern sich die Adapternummern dauernd.
    Test ich.
    Hustler

    ASUS M4N78 PRO, 1xDD-CineCTV6, 1xDD DuoFlex CT (V2), TTUSBIR
    yavdr64-0.6.2

  • Moin!


    Per udev kannst du zumindest den PCI-Slot identifizieren und dann ein entsprechendes Programm mit den passenden Parametern aufrufen.
    Der Slot sollte sich nicht so häufig ändern. :)


    Oder du schaust dir doch noch mal dynamite an, laut Signatur scheinst du selbst zu kompilieren? Es braucht einen Patch und da ich nicht weiß, ob du auch noch andere benutzt, kann es eventuell Konflikte geben.


    Ich sehe, du wohnst in Hamburg, wie wäre es mit dem HaVUT? Da kann man sich dann ein wenig austauschen.
    => 22. HaVUT = Hamburger Vdr User Treffen am 5.4.2012


    Lars.

  • laut Signatur scheinst du selbst zu kompilieren?

    Äh, ne, da steht nur keine Distri weil ich noch auf der suche nach ner neuen bin. Hatte mal kurz bei easy vorbeigeschaut, kam mir nicht so easy vor, und bin z.Z. bei ya gelandet.
    Das mit den wechselnden Adapternummern ist auch nur ein temporäres Problem da ich die nicht DD-Karten rauswerfe und wohl auch ausschließlich DVB-C nutze wenn alles
    besonders auch CI läuft. Ich hab die nur noch drin weil ich auf dem gleichen System mein altes VDR ohne die neuen Treiber nutze und zum testen nur die Festplatten wechsle.
    Ist das OK, wenn ich den dvb-fe-tool Aufruf in /etc/rc.local stopfe?
    Wegen HaVUT, ich glaub da versteh ich eh nur Bahnhof, aber mal sehn.
    Hustler

    ASUS M4N78 PRO, 1xDD-CineCTV6, 1xDD DuoFlex CT (V2), TTUSBIR
    yavdr64-0.6.2

  • Moin!


    und bin z.Z. bei ya gelandet


    Das ist gut. :)


    Ist das OK, wenn ich den dvb-fe-tool Aufruf in /etc/rc.local stopfe?


    Bestimmt, wenn es dir erst mal hilft. Es gibt immer mehr als eine Lösung in der vdr-Welt.
    Aber wie schon erwähnt hilft das nur, wenn der vdr nicht zu aktuell ist. Sprich, nach dem nächsten Update kann's dann schon wieder zunichte sein. Aber dann könnte ich dir mit dynamite+udev aushelfen.


    Wegen HaVUT, ich glaub da versteh ich eh nur Bahnhof, aber mal sehn.


    Naja, wir trinken da auch einfach nur ein Bier oder reden über die abwegigsten Sachen - und du könntest ein paar vom yaVDR-Team kennenlernen. :)
    Und ich nehme meisten Papier und Stift mit, damit kann man auch viele Dinge leichter erklären...


    Aber nun ist's genug mit Offtopic. :)


    Lars.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!