Treiber der Cine-CTv6/DDBridge/CI in den Kernel integrieren

  • Ich werde mich darum kümmern, die Patches auf der linux-media-Mailingliste einzureichen.


    Außerdem habe ich ein Dual-CI mit DDBridge und ein CT-FlexModul.
    Kompilieren und C kann ich auch, werde also die Patches testen und auch überarbeiten können.
    Bloß beim Start brauche ich ein wenig Hilfe von Wissenden, weil ich nur raten kann, welche Dateien da betroffen sind.


    Lars.

  • Also mindestens Testen kann ich auch, ich habe eine Cine CT V6 mit einem Flex V2, also 4 Tuner. Übersetzen kriege
    ich sicherlich hin, bin auf virtualisiertem Ubuntu Precise, kann aber evtl. auch was anderes booten. Willst Du aber
    wahrscheinlich gar nicht, oder?


    Ansonsten bin ich wahrscheinlich eher nutzlos :D, also so mit git und lkml oder i2c.


    GrK.

  • mini73 : Ich finds super, dass du dich in dieses Abenteuer stürzen willst.


    Treiber für die Grundkarte (CT V6) könnte ich auch testen.


    Grüße, Peter

    VDR1: vdr-latest, arch x86_64, Octopus net 2 x Duoflex C/C2/T2 , NUC7i3BNH, Crucial MX300 2TB, LG LM 669S
    VDR2: RasPI 2, MLD
    VDR-User #81

    Linux is the best OS I have ever seen -- Albert Einstein

  • Prima, dass es schon ein paar Tester gibt.


    Ich wollte sowieso mal in die Treiberentwicklung rein schnüffeln, dann kann ich es auch mit einem sinnvollen Projekt machen. :)


    Dass es mit den media-Leuten nicht einfach wird, ist mir klar, lese die Liste schon ein paar Jahre. Aber da lasse ich mich nicht aus der Ruhe bringen. Aber erst mal brauche ich ein paar Tage, um mich überhaupt einzuarbeiten.


    Lars.

  • Moin,


    weil Du in dem anderen Thread Deine Hardwareinfo gepostet hattest, hier meine:



    Module anscheinend: ddbridge, cxd2099, tda18212dd, stv0367dd


    Die *dd sind modifizierte Versionen der "normalen".



    Gruß,
    Karlson.

  • Ralph Metzler hat bestimmt welche. Aber so tief wollte ich erst mal gar nicht einsteigen. Es sind ja funktionierende Patches da, die werde ich versuchen, so aufzubereiten, dass sie von den media Leuten angenommen werden.


    Lars

  • Ralph Metzler hat bestimmt welche.

    Die wirst du nicht bekommen. Das habe ich schon für den cxd2099ar auf der Cine S2 versucht. Auf den anderen Karten ist ein FPGA und die Register Belegung wird von DD auch nicht verraten. Die Firma will hier nicht zu viel preisgeben, weil da sehr viel Entwicklungsarbeit drinnen steckt. Ich verstehe das und solange Ralph die Daten hat und Treiber dafür baut ist das auch OK für mich.
    Die Zusammenarbeit mit Ralph ist bis jetzt auch OK gewesen, vom technischen Standpunkt aus betrachtet. Er ist ein sehr guter Techniker, der weiß was er tut an der Ecke der Schnittstelle zu den Chips. An den Kernel Schnittstellen würde ich manches ein wenig anders machen, aber auch hier ist vieles nur deshalb so gemacht, weil es schnell gehen musste. Ich habe mich bis jetzt aber nur mit dem CI Interface via cxd2099ar und der Schnittstelle zum generischen CAM Protokolltreiber beschäftigt. Wenn man das in den Kernel bekommen möchte, dann muss man hier ein wenig anders machen. Das würde ich aber übernehmen. Man könnte fürs Erste eben die alte Schnittstelle belassen, damit man es leichter rein bringt und in einem nächsten Schritt dann die Kernel interne Schnittstelle angreifen. Das betrifft aber alle derzeit im Kernel unterstützten CI Treiber. Wie viele das genau sind und wie man die Schnittstelle ev, Kompatibel hin bekommt, muss ich mir dann genau anschauen.


    LG
    Jasmin

  • Ok, dann schaue ich mir erst mal Frontend, Tuner und Bridge an. Ich hoffe, am Wochenende mal einen ersten Blick auf die Dateien werfen zu können, damit ich mir mal ein Bild machen kann.


    Lars.

  • Datenblätter stehen gewöhnlich unter NDA, dürfen also nicht weitergegeben werden. Entsprechende Anfragen sind zwecklos.


    CU
    Oliver

  • Hallo,
    ich könnte ebenfalls als Tester mithelfen.


    Habe eine DD Octopus V3 zusammen mit einer DuoFlex C/T/T2 (v3) erworben und bisher unter Linux (3.7.11 / 3.11.x) kein Glück gehabt. Nach der SelbstBuild Anleitung verstand mein Linux wenigstens die Octopus V3 (wegen DeviceID=x05)...aber ansonsten zeigt das Log nur:
    Port 0 (TAB 1): NO MODULE
    Port 1 (TAB 2): NO MODULE
    Port 2 (TAB 3): NO MODULE
    Port 3 (TAB 4): NO MODULE


    lcpci sagt:
    03:00.0 Multimedia controller [0480]: Digital Devices GmbH Device [dd01:0005]
    Subsystem: Digital Devices GmbH Device [dd01:0004]


    Unter Windows7 läuft die Karte problemlos nach vielleicht 20Klicks.


    Es ist übrigens völlig egal ob ich das ganze unter Linux native oder Linux per KVM virtualisiert mit pci passtrough probiere, tut beides nicht.


    Langer Rede, kurzer Sinn: wenn ich irgendwie beitragen kann die DuoFlex v3 zum Laufen zu bringen würde mich das freuen. Allerdings bin ich kein Programmierer (also nicht auf der x86 Plattform).


    Grüße
    putty

  • Hallo,


    einige Bemerkungen zu den Themen im Thread:


    - Übernahme der Patches von Oliver


    Ich dachte eigentlich ich hätte alle (soweit noch relevanten) Änderungen von Oliver übernommen. Was fehlt da noch?
    Bzgl. Coding-Style habe ich mir auch Mühe gegeben jetzt immer alles einzuhalten. Es können an ein paar Stellen noch ein paar Spaces fehlen aber weitesgehend sollte alles stimmen.


    - cxd2099

    Warum der und nicht ddbridge- und ngene-Treiber im staging sind ist mir total unklar. Der cxd2099-Treiber legt selbst keinerlei Devices an und könnte von anderen Bridges (die keine Daten an ihn senden können) ohne API-Probleme benutzt werden.


    Inzwischen habe ich das "ci"-Device eingeführt, um Daten an ein CI zu schickt und wieder abzuholen. Das sollte also eigentlich kein Problem mehr sein.

    - Registerbelegung FPGA:
    Die ist eigentlich durch ddbridge-regs.h und den Source-Code schon relativ klar. Die Doku die existiert enthält da nicht viel mehr Infos.


    - Support Duoflex C/T/T2/C2 etc.

    Ist in dddvb-0.9.10 enthalten.


    - "dd"-Tuner/demods

    Die Problemchen damit hat Oliver schon angesprochen.
    Die "dd"-Treiber sind keine veränderten Versionen der anderen Treiber
    sondern aus den Windows-Treibern von DigitalDevices entstanden.
    Es war eben einfacher die nur anzupassen. Teilweise behandeln sie auch
    Sachen wie Kalibrierung, spur-detection, Master/Slave-Version, etc.
    besser bzw. überhaupt.


    - Octopus Net

    Die aktuellen Treiber unterstützen auch die Octopus Net, wo der FGPA
    nicht per PCIe angebunden ist. Wegen sehr großer Übereinstimmung
    der Registerblöcke lohnt sich eine Trennung nicht.
    Bzgl. Kernel-Integrierung und der neuen Directory-Struktur
    müßte der Teil aber in das platform-Verzeichnis, ddbridge in pci, der Rest
    (ddbridge-core) in common? Viel Spaß ...

    - Modulator

    Für die Modulator-Karte (Resi 10-Kanal DVB-C) habe ich auch neue "mod"-Devices
    eingeführt. Dazu gab es auch noch keine Standard-API.
    Auch hier macht es Sinn das im ddbridge-Treiber zu belassen, da der DMA-Block
    identisch ist und das "redirect" auch z.B. von DVB-S-Empfänger zu
    DVB-C-Modulator funktioniert. So kann man mit 10 Tunern/Demods und einer
    Modulator-Karte ohne CPU-Benutzung direkt 10 Transponder umsetzen.


    Allgemein kann man alle Files aus dddvb einfach an die richtigen Stellen
    im Kernel-Tree kopieren und es läuft ohne Probleme. Man müßte dann
    "nur" noch die "dd"-Treiber mit den existierenden mergen, ein diff machen und
    das an die PTB füttern. Aber das ist halt der nervige Teil.


    Gruss,
    Ralph


  • Allgemein kann man alle Files aus dddvb einfach an die richtigen Stellen
    im Kernel-Tree kopieren und es läuft ohne Probleme. Man müßte dann
    "nur" noch die "dd"-Treiber mit den existierenden mergen, ein diff machen und
    das an die PTB füttern. Aber das ist halt der nervige Teil.


    Vom nervigen Teil mal abgesehen ist das doch schon mal eine spannende Aussage.
    Das bedeutet doch, dass man unser mediabuild-dkms stark verschlanken könnte und es deutlich
    weniger Konflikte mit anderen Kernel-Modulen geben würde. Das ist ja im Prinzip das was
    Copperhead mit seinem Paket schon tut, nur dass diese Vorgehensweise aus kundigem Mund
    bestätigt wurde.
    mini73 , wäre das nicht eine lohnende Aktion? Oder wolltest du da lieber tiefer einsteigen?


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Moin,


    Das klingt in der Tat interessant. Ich denke, heute werde ich mal ein paar Stunden investieren und Source usw. lesen.


    Vielen Dank, Ralph!
    Überhaupt für den Treiber und die Tipps.


    Lars

  • Anscheinend kommt uns gerade jemand zuvor:
    http://www.mail-archive.com/li….kernel.org/msg67980.html


    Den Thread muss ich jetzt erst mal lesen. :)


    Lars.

  • Eher Portal doof. Weil da ein @ drin ist, macht es automatisch email-Tags drum...
    Müsste jetzt gehen.


    Lars.