dvb-t2 Empfangsprobleme

  • VDR-Version unter 16.04, Kernal 4.8.0-58-generic ist von fnu die Version 2.4.1-0fnu0-xenial.


    Unter 16.04 wurde die WinTV dual HD gar nicht getestet. Der lief und läuft nach wie vor mit der TBS6205. Also alle syslog-Auszüge, die ich dort gemacht habe, waren somit vom "alten TBS-Treiber"


    Als Treiberinstallationsanweisung habe ich mir damals notiert:

    Das sollte der Open-Source-Treiber sein.

    Mein mehr oder weniger rund laufender VDR:
    Board: MSI H110 M ECO, Proz.: Intel i3-7100 3,9 GHz (vorher: Celeron G3930 2,9 GHz) , 8 GB RAM, dvb-t2-Karte: TBS 6205, ubuntu 16.04 mit VDR aus fnu-repository

    Mein aktueller Test-VDR:

    Board: MSI H110 M ECO, Proz.: Intel i3-7100 3,9 GHz, 8 GB RAM, dvb-t2-Karte: TBS 6205, xubuntu 22.04 mit VDR aus seahawks repository

  • Bei fnu finde ich die Version nicht mehr mehr, aber in den vdr-Sourcen der 2.4.1 von kls ist der Codeabschnitt aus #68 unverändert so wie heute. Beim Treiber ist dann nun schwieriger zu rekonstruieren, da man dazu den von Dir ausgecheckten git-Stand kennen müsste. Am si2168.c kann es eher nicht liegen, den hattest Du ja schon gepostet. NO_STREAM_ID_FILTER ist in include/uapi/linux/dvb//frontend.h definiert, und das ist auch im tbsdtv-git schon seit mindestens 8 Jahren mit

    Quote

    #define NO_STREAM_ID_FILTER (~0U)

    definiert, was laut SHF ja für -1 steht.

    Ich also verstehe weiterhin nicht, warum es unter 16.04 nicht auch zu einem fälschlichen Überschreiben der stream_id mit 1 kommt. Wenn ich mich richtig erinnere, hatten wir auch schon abgeklärt, dass sowohl unter 16.04 als auch 22.04 die gleiche Firmware-Version B 4.0.25 von dvb-demod-si2168-b40-01.fw verwandt wird.

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Hi,

    Wie wäre neues System mit altem VDR testen?

    MfG Stefan

    Test-VDR1: HP rp5700 Fertigsystem, Core2Duo E6400, 2GB RAM, FF-SD C-2300, nvidia Slim-GT218 x1 | easyVDR 2.0 64Bit
    VDR3: in Rente

    VDR4: MSI G31M2 v2, Digitainer2-Geh., t6963c 6" gLCD, E5200, 2GB, 3TB WD Red, GT730, 2x TT S2-3200; easyVDR 3.5 64bit
    VDR5: Gigabyte
    GA-G31M-S2L, Intel E2140, Zotac GT730 passiv, Digitainer2-Geh., t6963c 6 " gLCD, 2 TB WD Red, 2x TT S2-3200 (an 1 Kabel) easyVDR 3.5 64bit
    VDR6:
    Intel E5200, GT630 passiv, F1 750 GB, t6963c gLCD, 2x TT S2-3200 | easyVDR 3.5 64bit
    VDR-User #1068
    www.easy-vdr.de

  • Ich habe bei mir jetzt das gleiche Problem! Einziger Unterschied ist, dass t2scan (frisch aus dem git kompiliert) die stream_id richtig mit 0 erkennt.

    • channels.conf wurde mit neu kompiliertem t2scan erzeugt und weist durchgehend P0 aus
    • vdr wird gestartet und auf einen ARD-Kanal gewechselt.
    • changing transponder data of channel 1 (Das Erste HD) from 490000:B8D0G19128P0Q1S1T16X0Y0:T to 490000:B8D0G19128P1Q1S1T16X0Y0:T
    • retuning due to modification of channel 1 (Das Erste HD)
    • das Bild ist weg
    • Kanäle aktualisieren deaktiviert
    • per OSD stream-id für den Kanal auf 0 geändert
    • Kanal neu angewählt - Bild kommt

    Deine t2scan-Version hatte P1 erkannt, meine richtigerweise P0. Jetzt wäre die Frage: welche t2scan-Version hast Du verwandt?

    Meine sagt

    Code
    root@CoreELECTanixTX3 ~ # t2scan -V
    t2scan -V 
    20201027

    Da gab es eine Änderung in scan.c am 03.05.2020 mit der Beschreibung "fix handling of non-multistream capable T2 hardware"

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Die von mir gepostete channels.conf war evtl. schon durchprobiert und dadurch auf P1 für ARD geändert. Meine t2scan-Version ist:

    Code
    fhg@ubuntu-tv:~$ t2scan -V
    t2scan -V
    20200628

    Ich habe eben noch einen Scan gemacht, der sieht gut aus, alle Kanäle haben P0, hier ein Ausschnitt:

    Seltsamerweise ist der Parameterstring kürzer als in der letzten geposteten Version, die ich aber definitiv mit der selben Version erzeugt habe. Liegt das evtl. daran, daß ich den heutigen Scan nicht als root gemacht habe?

    Mein mehr oder weniger rund laufender VDR:
    Board: MSI H110 M ECO, Proz.: Intel i3-7100 3,9 GHz (vorher: Celeron G3930 2,9 GHz) , 8 GB RAM, dvb-t2-Karte: TBS 6205, ubuntu 16.04 mit VDR aus fnu-repository

    Mein aktueller Test-VDR:

    Board: MSI H110 M ECO, Proz.: Intel i3-7100 3,9 GHz, 8 GB RAM, dvb-t2-Karte: TBS 6205, xubuntu 22.04 mit VDR aus seahawks repository

  • Der vdr-Patch aus #88 hilft nicht.

    Das device liefert als capability u.a. CAN_MULTISTREAM. Aber offenbar kann vdr damit nicht richtig umgehen.

    Eine stream_id -1 kann man übrigens nicht setzen. vdr akzeptiert nur 0-255

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Bei SAT bin ich relativ sicher, dass die Kanal-Informationen ausschließlich aus dem TS selber stammen. AFAIK ist das ganze auch Transponder übergreifend.


    Sofern das bei DVB-T2 nicht anders ist, müsste der Fehler irgendwo im NIT-Scanner vom VDR liegen. Oder die ARD oder ein anderer Transponder senden defekte Kanaldaten.


    Edit:

    Könnte das die Ursache sein?

    Fixed handling parameters in the S2SatelliteDeliverySystemDescriptor and T2DeliverySystemDescriptor that were overwritten when parsing the SatelliteDeliverySystemDescriptor or TerrestrialDeliverySystemDescriptor, respectively.


    Liegt das evtl. daran, daß ich den heutigen Scan nicht als root gemacht habe?

    Eher nein.

    Gruss
    SHF


    Edited once, last by SHF ().

  • VDR-Version unter 16.04, Kernal 4.8.0-58-generic ist von fnu die Version 2.4.1-0fnu0-xenial.

    Ich frage mich, ob fnu in diesen vdr vielleicht einen Patch eingebaut hat, der zu einer funktionierenden multistream-Behandlung führte. HelmutB hatte damals allerlei Patches erstellt, von denen fnu vielleicht vorab eine Lösung integriert hatte, die so dann später nicht von kls übernommen wurde.

    Frank, kannst Du bitte mal nachschauen, ob Du die Sourcen für dieses vdr-Paket noch findest? Bei launchpad bin ich nicht fündig geworden, das älteste dort war ein 2.4.8

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Frank, kannst Du bitte mal nachschauen, ob Du die Sourcen für dieses vdr-Paket noch findest? Bei launchpad bin ich nicht fündig geworden, das älteste dort war ein 2.4.8

    Ich habe den VDR direkt aus fnu's Repository installiert, nichts kompiliert. Somit dürfte ich keine Sourcen haben, wenn ich das richtig verstehe.

    Mein mehr oder weniger rund laufender VDR:
    Board: MSI H110 M ECO, Proz.: Intel i3-7100 3,9 GHz (vorher: Celeron G3930 2,9 GHz) , 8 GB RAM, dvb-t2-Karte: TBS 6205, ubuntu 16.04 mit VDR aus fnu-repository

    Mein aktueller Test-VDR:

    Board: MSI H110 M ECO, Proz.: Intel i3-7100 3,9 GHz, 8 GB RAM, dvb-t2-Karte: TBS 6205, xubuntu 22.04 mit VDR aus seahawks repository

  • richtig, die Frage richtete sich an den Paketbauer fnu, der auch auf den Namen Frank hört

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Dr. Seltsam


    Martin, konnte tatsächlich noch prüfen was ich seinerzeit mal an Patches in dieses Paket gepackt habe:

    Aber wie man sehen kann nichts aussergewöhnliches und m.E. kein Patch der irgendwas an den Empfangsmethoden verändert. Nach Prüfung der anderen Branches auch sonst nicht.


    HowTo: APT pinning

    Edited once, last by fnu ().

  • Danke! Schade, ich hatte gehofft, es sei vielleicht einer der Patches aus [Patch] DVB-S2 Multi Input Stream (ungetestet) DVB-T2 MPLP+Scan enthalten.

    Dann bleibt als Erklärung für das Funktionieren unter Ubuntu 16.04 wohl nur eine Anpassung von TBS in deren Treiber. Das muss nicht zwingend die si2168.c gewesen sein.

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Die von mir gepostete channels.conf war evtl. schon durchprobiert und dadurch auf P1 für ARD geändert. Meine t2scan-Version ist:

    Code
    fhg@ubuntu-tv:~$ t2scan -V
    t2scan -V
    20200628

    Ich habe eben noch einen Scan gemacht, der sieht gut aus, alle Kanäle haben P0, hier ein Ausschnitt:

    Seltsamerweise ist der Parameterstring kürzer als in der letzten geposteten Version, die ich aber definitiv mit der selben Version erzeugt habe. Liegt das evtl. daran, daß ich den heutigen Scan nicht als root gemacht habe?

    In dem t2scan-Thread wurde ja mehrfach berichtet, dass bei jedem neuen Scan die Anzahl gefundener Sender und ich glaube auch ihre Parameter unterschiedlich waren. Dieses Multistream-Zeug ist saukompliziert. Ich glaube HelmutB war der einzige, der da richtig durchgeblickt hat. Zu schade, dass er nicht mehr unter uns weilt.

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Dieses Multistream-Zeug ist saukompliziert.

    Prinzipiell ist es erstmal gar nicht so kompliziert.

    Eigentlich werden nur mehrere TS verschachtelt auf einem Transponder ausgestrahlt.

    Das Frontend extrahiert daraus den gewählten TS und das dann geht es weiter wie gehabt .

    (Die weiteren Details zur Übertagung sind eigentlich nicht relevant, da das Frontend die ganze Arbeit erledigt. Auch die Probleme, die theoretisch auftreten könnten, weil der TS jetzt in größeren Blöcken und nicht mehr kontinuierlich kommt, kann erstmal ignorieren, denke ich.)


    Gemacht wird das Ganze um Programme mehrerer Anbieter auf einem Transponder unter zu bringen, ohne die ganzen Programme in einen neuen TS muxen zu müssen. Und mit dieser Sparlösung fangen jetzt für uns die Probleme an.


    Da der/die TS nicht neu erstellt werden, kann die stream_id nicht in der NIT übertragen werden.

    (Die stream_id kann theoretisch, je nach Übertrgungsweg/Sender unterschiedlich sein und außerdem ist sie beim muxes des TS nicht zwingend bekannt.)


    Ob man man die Rohdaten aller Streams überhaupt gleichzeitig ran kommt, wenn man NO_STREAM_ID_FILTER setzt, bin ich nicht sicher. So wie ich es verstanden habe, können sich die Modulationsparameter der einzelnen (Multi-)Streams eines Transponders unterscheiden.

    Wenn es geht müsste man alle gültigen stream_ids eines Transponders eigentlich irgendwie extrahieren können, wenn nicht, ist raten angesagt.


    PLS hat mit Multistream(PLP) nichts zu tun, das ist wohl eher eine Modulations-Geschichte bei DVB_S2. Das ist nur überall in den Patches, da es dort praktisch alle Multistream-Transponder verwenden. Den PLS-Code wohl vorher wissen, da man ohne gar nicht erst an den Datenstrom kommt. (Die Codes durch probieren ginge natürlich, aber das dauert.)

    Ein Teil der Patches sieht mir aber so aus, als ob es auch für DVB-T2 sinnvoll wäre. Die streamId in der channels.c zB., da müsste man mal schauen, was da bislang übernommen wurde.



    Die Problemantik an der Multistream-Geschichte ist wohl primär das scannen. Wenn man den Kanaleintrag hat, sollte das Frontend den Rest erledigen.

    Wo die stream_id 1 her kommt die der VDR beharrlich setzt, konnte ich heute aber immer noch nicht raus finden. Da muss ich die Tage mal weiter suchen.



    Zum Abschluss noch etwas Literatur zum Thema:

    Multistream - OpenPLi Wiki

    DVB-T2 - Wikipedia

    Gruss
    SHF


  • >> Eigentlich werden nur mehrere TS verschachtelt auf einem Transponder ausgestrahlt.


    Na eher zeitversetzt mit jeweils eigenen physikalischen Parametern. Normalerweise mit Parametern für hohe Reichweite, periodisch wechselnd mit Parametern für hohe Bitrate. Bei knappen Frequenz Ressourcen.


    >> Gemacht wird das Ganze um Programme mehrerer Anbieter auf einem Transponder unter zu bringen, ohne die ganzen Programme in einen neuen TS muxen zu müssen.


    Wenn man ein HDTV Programm mit hoher Bitrate, aber kleiner Reichweite mit einem SDTV/Radio Programm && großer Reichweite kombinieren möchte, dann landet man genau dabei. Oder mehrere räumlich nahe Transmitter entkoppeln möchte.

  • Danke für die Ergänzungen, ich hatte mich bislang erst 2 Stunden mit dem Thema beschäftigt und das mit dem Fokus auf die Bestimmung der Frontend-Parameter.

    Da sind die physikalischen Details zur Übertragung erstmal nicht wirklich relevant, daher hatte ich das etwas vereinfacht dargestellt.

    Von Seiten des Empfängers muss ich eigentlich nur die richtige stream_id setzen (neben den anderen Daten) und bekommen dann einen normalen Transportstrom geliefert. Aktuell sehe ich da nicht wirklich einen Unterschied zB. zur Polarisation bei SAT.

    Bis auf, dass hier der Wert nicht im Transportstrom geliefert wird.


    Na eher zeitversetzt mit jeweils eigenen physikalischen Parametern.

    So kann man es auch ausdrücken.

    Wer es genau wissen will, im folgenden Link ist das unter "frame structure" schön grafisch dargestellt:

    DVB-T2 - Enensys

    (Zu dem Artikel war ich gestern nicht mehr gekommen.)


    Weiter unten sieht man, dass die TS-Pakete in "BaseBand frames" verpackt sind. Irgendwo in deren Header müsste dann wohl die stream_id sitzen.

    Meine Frage, ob man bei setzen von "NO_STREAM_ID_FILTER" die ganzen Rohdaten bekommt, konnte ich aber noch immer nicht klären.



    Im VDR bin ich auch nur bedingt weiter gekommen.

    Die stream_id wird hier im Frontend gesetzt.

    D.h. gespeichert ist die in cDvbTransponderParameters und wird mit SetStreamId() gesetzt.

    Wenn man jetzt danach sucht bekommt man mehrere Treffer in der nit.c :schiel .

    Gruss
    SHF


  • Also, der VDR hat die Informationen wohl aus dem T2DeliverySystemDescriptor.

    EN 300 468 - V1.11.1 - Digital Video Broadcasting (DVB) - ETSI

    Der ist, wenn ich das beim Überfliegen nicht völlig falsch verstanden habe, Teil der NIT.

    D.h. er wird genau wie bei DVB-S im TS geliefert.

    Also von da her alles wie bisher, bis auf, dass man die stream-id braucht, um überhaupt an den TS zu kommen.


    Warum es bei älteren VDR-Versionen funktioniert, liegt vermutlich an diesem Patch:

    Fixed handling parameters in the S2SatelliteDeliverySystemDescriptor and T2DeliverySystemDescriptor that were overwritten when parsing the SatelliteDeliverySystemDescriptor or TerrestrialDeliverySystemDescriptor, respectively.


    Wobei, ich glaube, ich habe eben zumindest mal einen Fehler gesehen:

    Fehlt in der einen Zeile nicht ein "c"???

    Kurioser Weise aber bei der T2SystemId nicht StreamId.

    Ob es daran liegt, müsstet ihr mal probieren.

    Gruss
    SHF


  • Ich habe die vorgeschlagene Änderung in nit.c mal in vdr-2.6.7 übernommen. Und siehe da, jetzt überschreibt vdr die korrekte stream-id 0 nicht mehr mit 1, wenn Kanäle aktualisieren in den DVB-Einstellungen aktiviert ist. :applaus

    Allerdings berichtigt er eine falsch eingetragene 1 bei nächster Kanalwahl auch nicht auf 0. Löscht man den Kanal aber aus der Kanalliste, wird er korrekt mit 0 neu erkannt und ans Ende der Kanalliste angefügt. (Kanäle aktualisieren steht bei mir auf 'neue Kanäle hinzufügen')

    Sieht also so aus, als wenn das tatsächlich ein Tippfehler ist. Wenn kls das auch so sieht, könnte das ja in die Version vdr-2.6.8 einfließen.

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • O.k., das erklärt einiges, da muss wohl noch irgendwo anders ein Fehler sein.

    EDIT:

    Nicht zwingend. Wenn die falsch eingetragene 1 verhindert, dass der Transponder getunt wird, kann der Eintrag nicht korrigiert werden.

    Evtl. klappt es, wenn man beim Ersten die 1 einträgt und dann auf ein drittes Programm schaltet?


    An der geänderten Stelle werden lediglich die T2-Parameter vom bisherigen Kanaleintrag "gerettet" (erste Zeile in meinem Patch) und dann erneut gesetzt. Das verhindert, dass die Werte mit den Default-Werten überschrieben werden.


    Die T2-Parameter werden direkt darunter im Block mit T2DeliverySystemDescriptorTag ermittelt und gesetzt. Das ist auch die einzige Stelle im Code, wo der T2DeliverySystemDescriptorTag auftaucht.


    Warum jetzt das Update nicht funktioniert, aber die Kanäle korrekt neu erkannt werden, ist mir momentan aber auch unklar.

    Gruss
    SHF


    Edited once, last by SHF ().

Participate now!

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