DVBSky Mainline Support


  • (noch) keine Unterstützung:




    Hallo ins Forum, das ist mein erstes Posting.


    Ich habe die S850 gerade unter Kernel 4.2.5-1-MANJARO mit dem media_build-bst-151028 ans Laufen bekommen, indem ich mit modprobe einfach die S952 angegeben habe. Die hat zwar zwei Tuner, und einer wird natürlich nicht erkannt - aber der andere läuft.






    Die Not hat mich getrieben.
    Nach der ersten Stunde kann ich nur sagen: Sie läuft. Ich habe aber eindeutig zu wenig Ahnung und möchte dieses Vorgehen deshalb hiermit nicht empfehlen, sondern nur fragen:
    Kann ich da etwas kaputt machen? Und wenn es wirklich so einfach wäre - wieso wird die Karte immer noch nicht unterstützt?


    Danke, Joohn

  • Kann ich da etwas kaputt machen? Und wenn es wirklich so einfach wäre - wieso wird die Karte immer noch nicht unterstützt?

    Ich glaube kaum, dass du dir dabei etwas kaputt machst. Es kann maximal sein, dass Register falsch gesetzt werden bzw. eine falsche Firmware geladen wird. Aber spätestens beim Ausschalten des Rechners sollten diese Daten ohnehin wieder verloren gehen.


    BTW: Wäre es nicht sinnvoller die ID der S950 (also card=49) anzugeben. Die scheint mir ähnlicher als die S952, da sie nur einen Tuner hat. Wenn es damit ohne Fehlermeldungen läuft, könnte man durchaus daran denken einen Patch an die Mailingliste zu schicken. Die Ausgabe von lspci -nn wäre dafür auch hilfreich.


  • BTW: Wäre es nicht sinnvoller die ID der S950 (also card=49) anzugeben. Die scheint mir ähnlicher als die S952, da sie nur einen Tuner hat. Wenn es damit ohne Fehlermeldungen läuft, könnte man durchaus daran denken einen Patch an die Mailingliste zu schicken. Die Ausgabe von lspci -nn wäre dafür auch hilfreich.


    Hallo olebowle,


    Das habe ich jetzt probiert: Die S950 funktioniert prinzipiell auch. Allerdings habe ich den Eindruck, dass das Bild etwas schlechter und die Prozessorlast höher ist als mit der S952; ich weiß nicht, ob das Sinn macht, denn Treiber und Module sind die selben, aber mir kommt es so vor.



    Danke übrigens für Deinen Patch für Kernel 3.19. Der half auch wunderbar für meine S850, denn das media-build lief leider auch da schon nicht.


    Aber spätestens beim Ausschalten des Rechners sollten diese Daten ohnehin wieder verloren gehen.


    Ja, natürlich. Bin noch ganz neu bei Manjaro. Ich muss noch suchen, wie man das persistent macht.

  • Hallo joohn,


    so richtig Sinn macht es nicht, ausschließen will ich es aber auch nicht. :)


    Ich hatte konkret nach lspci -nn gefragt, um die Vendor und Product IDs in Erfahrung zu bringen. Ist es tatsächlich 14f1:8512?


    Kommt es noch zu irgendwelchen Fehlermeldungen, wenn du card=49 nimmst? Beim letzten Auszug waren ja noch folgende Fehler zu erkennen:

    Code
    Nov 03 12:34:02 joohn kernel: cx23885_dvb_register() dvb_register failed err = -22
    Nov 03 12:34:02 joohn kernel: cx23885_dev_setup() Failed to register dvb on VID_C


    Da du ja einen schön aktuellen Kernel verwendest, könntest du auch einmal probieren die Karte ohne das Treiberpaket ans Laufen zu bringen? Theoretisch müsste das auch nur mit den mitgelieferten Kernelmodulen funktionieren (mit der entsprechenden modprobe option).


    BTW: Wenn du beispielsweise die Datei /etc/modprobe.d/cx23885.conf mit folgendem Inhalt anlegst, musst du nicht mehr manuell modprobe ausführen:

    Code
    options cx23885 card=49

  • Ich hatte konkret nach lspci -nn gefragt, um die Vendor und Product IDs in Erfahrung zu bringen. Ist es tatsächlich 14f1:8512?


    Hallo olebowle,
    Nein. Nur so ähnlich:

    Code
    03:00.0 Multimedia video controller [0400]: Conexant Systems, Inc. CX23885 PCI Video and Audio Decoder [14f1:8852] (rev 02)


    (Ich steig da jetzt ehrlichgesagt nicht durch, weshalb die Karte dort auf einmal eine andere Kennung hat.)



    Kommt es noch zu irgendwelchen Fehlermeldungen, wenn du card=49 nimmst?


    Nein. Ich kann die Ausgabe aber ebenfalls posten, vielleicht siehst Du mehr:

    Code
    [: CORE cx23885[0]: subsystem: 14f1:8512, board: DVBSky S950 [card=49,insmod option]
    [: cx23885_dvb_register() allocating 1 frontend(s)
    [: cx23885[0]: cx23885 based dvb card
    [: m88ds3103_load_firmware: Waiting for firmware upload (dvb-fe-ds300x.fw)...
    [: DVB: registering new adapter (cx23885[0])
    [: cx23885 0000:03:00.0: DVB: registering adapter 1 frontend 0 (Montage DS3103/TS2022)...
    [: DVBSky S950 port 1 MAC address: ff:ff:ff:ff:ff:ff
    [: cx23885 0000:03:00.0: DVB: adapter 1 frontend 0 frequency 0 out of range (950000..2150000)



    Da du ja einen schön aktuellen Kernel verwendest, könntest du auch einmal probieren die Karte ohne das Treiberpaket ans Laufen zu bringen? Theoretisch müsste das auch nur mit den mitgelieferten Kernelmodulen funktionieren (mit der entsprechenden modprobe option).


    Da hatte ich jetzt ein Problem: Nach Deinstallation von "media-build-dvbsky" wurde erst einmal gar kein dvb-system mehr erkannt. Auch die Neuinstallation des selben Kernels half nicht.
    Ich wollte meine Zeit jetzt nicht da dran geben und habe das deshalb mal mit einem anderen Kernel (4.1.12-LTS) getestet, der garantiert noch keinen Kontakt mit dem media-build hatte:



    Das sieht mir nach der falschen Firmware aus (die richtige ist natürlich ohnehin im System). Ich habe ihm dennoch mal die verlangte dvb-demod-m88ds3103.fw gegeben.
    Ergebnis:


    Code
    [kernel: CORE cx23885[0]: subsystem: 14f1:8512, board: DVBSky S952 [card=50,insmod option]
    [kernel: cx23885_dvb_register() allocating 1 frontend(s)
    [kernel: cx23885[0]: cx23885 based dvb card
    [kernel: cx23885_dvb_register() dvb_register failed err = -22
    [kernel: cx23885_dev_setup() Failed to register dvb adapters on VID_B
    [kernel: cx23885_dvb_register() allocating 1 frontend(s)
    [kernel: cx23885[0]: cx23885 based dvb card
    [kernel: cx23885_dvb_register() dvb_register failed err = -22
    [kernel: cx23885_dev_setup() Failed to register dvb on VID_C


    Fazit: Das läuft also wohl noch nicht ohne das media-build. Mir wäre aber auch schon geholfen, wenn wenigstens das die S850 für aktuelle Kernel wieder unterstützen würde.


  • Fazit: Das läuft also wohl noch nicht ohne das media-build.


    Nach einer kleinen Odyssee jetzt ein Update:


    Ich hatte das Paket "media-build-dvbsky" vorhin ja entfernt. Nachdem ich es auf Kernel 4.2.5 wieder installiert hatte, wollte der "Trick" mit der falschen Karte auf einmal nicht mehr funktionieren:


    Code
    journalctl -k | grep -i dvb
    [kernel: CORE cx23885[0]: subsystem: 14f1:8512, board: DVBSky S950 [card=49,insmod option]
    [kernel: cx23885_dvb_register() allocating 1 frontend(s)
    [kernel: cx23885[0]: cx23885 based dvb card
    [kernel: cx23885_dvb_register() dvb_register failed err = -22
    [kernel: cx23885_dev_setup() Failed to register dvb adapters on VID_B


    Erst nachdem ich Deinen Patch wieder auf Kernel 3.19 installiert hatte, und erst danach das media-build-bst-151028 auf 4.2.5, lief die Sache wieder.
    Anscheinend ist das Funktionieren mit dem fremden Setup also davon abhängig, dass vorher media-build-bst-14-141106 auf dem System installiert war.
    ?(

  • Diese Verwirrung kenne ich. Du musst den Rechner einmal komplett ausschalten, ein Neustart reicht nicht. :wow
    Wie gesagt vermutlich Müll in den Registern durch unsaubere Initialisierung oder so. Es wäre also schön, wenn du es bei Gelegenheit noch einmal mit neuesten Kernel ohne Treiberpaket und mit Trick probierst (nach einem Kaltstart). Ich kann garantieren, dass nach Deinstallation des Treiberpaketes (media-build-dvbsky aus dem AUR) keine alten Module übrig bleiben. Das ist ja das Schöne am Pakete Schnüren und Installieren mit pacman.


    EDIT: Zur Info: Ich habe eine relative alte S952, die die älteren M88TS2020 Tuner nutzt. Damit werden ohne Treiberpaket Knoten unterhalb /dev/dvb erzeugt. Allerdings läuft das Frontend dann immer in einen Timeout rein, wenn ich versuche zu tunen (sowohl VDR, als auch w_scan, etc.). Mit dem Paket läuft es tadellos, das muss man halt immer wieder neu bauen beim Kernelwechsel. Es wäre halt interessant zu wissen, ob das bei dir ähnlich aussieht. Bei mir wird nämlich auch die MAC-Adresse ff:ff:ff:ff:ff:ff angezeigt. Neuere S952er haben da einen sinnvollen Wert.

  • Diese Verwirrung kenne ich.


    Hallo olebowle,


    nur halb. Leider hatte ich das media-build zuerst mit make installiert, später erst korrekt mit pacman - kann schonmal passieren, wenn man von Ubuntu wechselt. :O


    Dieser Kernel 4.2.5 hat also vermutlich einen weg. Ansonsten hast Du aber natürlich recht mit der "Verwirrung": Auf einer frischen Testinstallation (Ubuntu 15.10) funktioniert die Karte mit media-build-20151028 und der Option 49 oder 50 einwandfrei - von einem früheren build ist da definitiv nichts abhängig.
    Weil Du aber nicht 4.2.0-Ubuntu, sondern 4.2.5 wolltest, habe ich den dort mal als Mainline-Kernel installiert, und davon kriegst Du jetzt die Ausgabe:


    Code
    [kernel: CORE cx23885[0]: subsystem: 14f1:8512, board: DVBSky S950 [card=49,insmod option]
    [kernel: cx23885_dvb_register() allocating 1 frontend(s)
    [kernel: cx23885[0]: cx23885 based dvb card
    [kernel: DVB: registering new adapter (cx23885[0])
    [kernel: cx23885 0000:03:00.0: DVB: registering adapter 1 frontend 0 (Montage Technology M88DS3103)...
    [kernel: DVBSky S950 port 1 MAC address: ff:ff:ff:ff:ff:ff


    EDIT: Zur Info: Ich habe eine relative alte S952, die die älteren M88TS2020 Tuner nutzt. Damit werden ohne Treiberpaket Knoten unterhalb /dev/dvb erzeugt.


    Bei mir nicht. Der Knoten wird erst erzeugt, wenn ich die Karte angebe. Leider lädt er nicht die Firmware.


    Mit dem Paket läuft es tadellos, das muss man halt immer wieder neu bauen beim Kernelwechsel.


    Bei der LTS mit wenigen Sicherheitsupdates im Jahr war das eigentlich kein Thema - es wird aber schon nervig bei diesem Rolling Release. Deshalb hoffe ich mal, dass wenigstens Dein Paket aus dem AUR so läuft.


    P.S.: Wo ich schon dabei war, habe ich 4.3rc7-manjaro dann auch noch probiert. Keine Besserung.

  • Habe ich das richtig verstanden, dass es bei dir mit Ubuntu Mainline-Kernel ohne Treiberpaket funktioniert hat (der Log-Auszug sieht gut aus), aber mit Manjaro nicht? Oder geht es bei dir prinzipiell nicht ohne Treiberpaket?

  • Hallo olebowle,


    Wie kommst Du drauf?
    Die Ausgabe für den Mainline-Kernel 4.2.5 unter Ubuntu ist ziemlich exakt die gleiche wie für Kernel 4.1.12 unter Manjaro (wenn man davon absieht, dass ich da die 952 genommen hatte). Offensichtlich "erkennen" die Kernel zwar irgendwas und meldet es an, aber leider das Falsche ("Montage M88DS3103" statt "Montage DS3103/TS2022"). So läuft die Karte jedenfalls nicht.
    Und, wie ist das denn: Funktionieren die Karten mit Mainline-Support ohne die Firmware (dvb-fe-ds300x.fw)? Die wird jedenfalls nicht geladen.


    Bislang brauche ich das Treiberpaket also wohl. Die letzten beiden media-builds funktionierten nur eben leider auch nicht mehr ootb. Ohne die Entdeckung, dass man eine andere Karte angeben kann, würde ich auf dem letzten unterstützten Kernel festhängen.


    Wo Du Dich so gut mit dem media-build auskennst, mal eine Frage Off Topic:
    Gibt es hier im Forum vielleicht irgendwo eine Anleitung, wie ich das riesige Paket auf die paar benötigten Treiber reduziere? 99% von dem, was da Minutenlang die Konsole runterläuft, brauche ich doch gar nicht.
    Danke, joohn

  • Ok, dann hatte ich dich falsch verstanden. Wenn es ohne Treibepaket nicht läuft, brauchen wir auch keinen Patch Upstream schicken, um die PCI IDs der S850 bekannt zu machen.


    1. Ohne Firmware wird die Karte nicht laufen.
    2. Mit welchem media-build lief es denn noch ootb?
    3. Im Anhang findest du ein PKGBUILD das vermutlich wieder ootb laufen sollte (also ohne insmod option)


    Ohne die Entdeckung, dass man eine andere Karte angeben kann, würde ich auf dem letzten unterstützten Kernel festhängen.


    Solange das Treibepaket mit dem jeweiligen Kernel baut kann man es auch mit neueren Kerneln benutzen. Insofern verstehe ich nicht, dass du auf einem Kernel festhängst.

    Gibt es hier im Forum vielleicht irgendwo eine Anleitung, wie ich das riesige Paket auf die paar benötigten Treiber reduziere? 99% von dem, was da Minutenlang die Konsole runterläuft, brauche ich doch gar nicht.


    Ich hatte damals mit Copperhead ein Paket geschnürt, dass nur die benötigten Module baut. Das ging ein paar Releases gut, irgendwann ist die Anzahl der Patches explodiert und es war einfach viel zu viel Aufwand das noch zu maintainen. Das Problem ist, dass sich kernelinterne Schnittstellen dauernd verändern und man dementsprechend patchen muss. Wenn man jetzt einen kompletten media-tree nutzt, dann sind die Schnittstellen der Module unterhalb gleichbleibend und man hat kaum Aufwand bei einem neuen Kernelrelease. Allerdings schleppt man damit immer die alten Module mit sich rum und bekommt keine neuen Features/Bugfixes. Schön wäre es folglich den Treibersupport mal wieder auf ein neueren media-tree zu rebasen. Ich habe allerdings keine großen Hoffnungen, dass das noch einmal geschieht, da ein großer Teil der Karten ja mittlerweile von Kernel unterstützt wird.
    Man könnte versuchen mit make menuconf einige Module abzuwählen und zu schauen, ob es auf dem eigenen System noch läuft. Allerdings würde ich das dann wohl eher nicht ins AUR übernehmen, da ich keine Ahnung habe, ob das dann auch noch mit der Hardwarekonfiguration anderer Nutzer funktioniert. Für einen selbst wäre eine angepasste .config aber sicherlich nicht schlecht, wenn man das Paket öfter selber bauen muss.


  • 2. Mit welchem media-build lief es denn noch ootb?


    media_build-bst-14-141106



    Solange das Treibepaket mit dem jeweiligen Kernel baut kann man es auch mit neueren Kerneln benutzen. Insofern verstehe ich nicht, dass du auf einem Kernel festhängst.


    Bauen tun auch die späteren Builds. Ich vermute, der Fehler liegt im Kernel-Modul cx23885:
    Wenn ich dieses Modul mit "systool -vm cx23885" abfrage, hat es unter meiner Ubuntu-LTS mit Kernel 3.16 und media_build-bst-14-141106 die Version "0.0.3". Die "card"-Option war bis dahin wohl nicht nötig (Wert "-1").
    Die neueren Kernel mit Dvbsky-Support, ob mit oder ohne Media-Build, zeigen Version "0.0.4". Die "card"-Option wird benutzt, aber es gibt keinen Eintrag für meine Karte.
    Das ist, wie gesagt, nur eine Vermutung. Leider weiß ich nicht, wie ich die möglichen Werte der beiden Modul-Versionen abfragen kann.



    1. Ohne Firmware wird die Karte nicht laufen.


    Wenn die Karte läuft, habe ich im Log die Zeile "m88ds3103_load_firmware: Waiting for firmware upload (dvb-fe-ds300x.fw)...", und lsmod zeigt ein Modul "dvbsky_m88ds3103".



    3. Im Anhang findest du ein PKGBUILD das vermutlich wieder ootb laufen sollte (also ohne insmod option)


    Ich werde es bei Gelegenheit mal ausprobieren und Dir bescheid geben.

  • Bis media_build-bst-14-141106 wurde deine Karte als "Bestunar PS8512" erkannt. Dabei nahm sie dieselben Initalisierungspfade wie eine S950 (siehe cx23885-cards.c). Das nächste Release (media_build-bst-141219.tar.gz) war ein riesiger Umbau (vermutlich ein Rebase auf einen neueren media-tree), dabei flog die Bestunar PS8512 mit der PCI-ID 14f1:8512 raus. Und eben diese ID habe ich jetzt im PKGBUILD von oben auf die S950 gemappt. Ich bin also ziemlich zuversichtlich, dass es damit dem PKGBUILD wieder ootb laufen sollte. Wenn das der Fall ist, werde ich den Patch ins AUR aufnehmen.

  • Ich bin also ziemlich zuversichtlich, dass es damit dem PKGBUILD wieder ootb laufen sollte. Wenn das der Fall ist, werde ich den Patch ins AUR aufnehmen.


    Irgendwas an dem Konditionalsatz muss ich wohl falsch verstanden haben... ;D


    Sorry, war die letzten beiden Tage kaum zu Hause und finde erst jetzt die Zeit:
    Leider funktioniert der Patch für mich nicht.
    Ohne Modul-Option:


    Und wenn ich die Karte wieder angebe:



    Falsche Karte, falsche Firmware - das ist das Ergebnis, das ich auch ohne Media-Build hätte.


    Ich weiß gar nicht, ob ich das unbedingt patchen würde. Vor allem würde mich auch interessieren, weshalb sie die Karte überhaupt rausgenommen haben. Es muss da ja irgendeinen sachlichen Grund gegeben haben.
    Die Lösung mit der Modul-Option ist ja simpel; wer das media-build bauen kann, kriegt das auch noch hin. Und da S950/952 vom Kernel unterstützt werden, ist man vielleicht sogar auf der sichereren Seite, solange man da nichts ändert.
    Wichtiger wäre fast ein Eintrag im Wiki. Vermutlich sind schon viele S850 unnötigerweise auf dem Müll gelandet, nur weil man nirgendwo Infos findet.

  • Naja, wenn es mit dem Patch nicht will und du mit der insmod option klar kommst ist ja gut. Ich denke es wäre das Beste, wenn du das Wiki aktualisieren würdest. Du besitzt ja schließlich die Karte.


    Du kannst versuchen Max Nibble anzuschreiben, warum der Support für die Karte raus geflogen ist. Aber erwarte keine (schnelle) Antwort. Er hatte damals nicht einmal auf einen von mir eingereichten Patch reagiert.

  • Habe eben eine DVBSky T982 in Betrieb genommen.
    Als System dient ein yaVDR0.5 mit 3.19.8 Mainline Kernel, Firmware aus den openelec Resourcen
    Karte läuft bisher absolut perfekt, femon kommt jedoch mit ihr überhaupt nicht klar.
    Es gibt für die Karte einen closed source Treiber.
    Bringt der irgendwelche Vorteile?

  • Soweit ich weiß bringt der closed source Treiber nix, weil die Werte aus dem closed source Teil in den Kernel eingezogen sind: siehe Commit-Kommentar. Du kannst es aber dennoch mal versuchen, wenn du magst. Für 3.19 wäre dann wohl media_build-bst-150322 das richtige. Um keine vorhandenen Module überschreiben zu müssen würde ich empfehlen

    Code
    # make KDIR26="/lib/modules/$(uname -r)/updates/kernel/drivers/media" media-install

    statt

    Code
    # make install

    auszuführen. Dann landen die neuen Module im updates Ordner und können anschließend wieder sauber entfernt werden, wenn das Treiberpaket keine Besserung ergibt.

  • Moin Leute,
    ich habe mich jetzt auch einen Abend mit der DVBSky S850 rumgeschlagen. Sonst wurde Sie bei mir nur unter Windows betrieben, ging auch ohne Probleme.


    Jetzt hatte ich natürlich das Problem das das Teil unter Linux out of the Box nicht funktioniert, sinnerweise auch nicht mit dem Mediabuild von DVBSky.
    Habe auch mal ne Mail an DVBSky geschrieben was das soll.


    Ich hätte das ganze natürlich per Modprobe Conf Datei lösen können, aber das funktioniert nur mit einer Karte und ich habe zwei.


    Also habe ich kurzer Hand die cx23885-cards.c modifiziert und beim Eintrag für die S950 die Vendor ID etc. auf 14f1:8512 geändert.


    Jetzt werden beide Adapter ohne Probleme erkannt. Vielleicht kann ja jemand was mit den Infos anfangen.

Jetzt mitmachen!

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