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.
-
-
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:
Code
Alles anzeigen00:00.0 Multimedia controller: Digital Devices GmbH Octopus DVB Adapter Subsystem: Digital Devices GmbH Cine CT V6.1 DVB adapter Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Interrupt: pin A routed to IRQ 31 Region 0: Memory at fe100000 (64-bit, non-prefetchable) [size=64K] Capabilities: [50] Power Management version 3 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [70] MSI: Enable+ Count=1/2 Maskable- 64bit+ Address: 00000000fee0800c Data: 41c1 Capabilities: [90] Express (v1) Endpoint, MSI 00 DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop- MaxPayload 128 bytes, MaxReadReq 512 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend- LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s, Latency L0 unlimited, L1 <1us ClockPM- Surprise- LLActRep- BwNot- LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk- ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt- Capabilities: [100 v1] Vendor Specific Information: ID=0000 Rev=0 Len=00c <?> Kernel driver in use: DDBridge Kernel modules: ddbridge
Module anscheinend: ddbridge, cxd2099, tda18212dd, stv0367dd
Die *dd sind modifizierte Versionen der "normalen".
Code
Alles anzeigen[ 34.787483] WARNING: You are using an experimental version of the media stack. [ 34.787483] As the driver is backported to an older kernel, it doesn't offer [ 34.787483] enough quality for its usage in production. [ 34.787483] Use it with care. [ 34.787483] Latest git patches (needed if you report a bug to linux-media@vger.kernel.org): [ 34.787483] dfb9f94e8e5e7f73c8e2bcb7d4fb1de57e7c333d [media] stk1160: Build as a module if SND is m and audio support is selected [ 34.787483] 9f1595245574a2dc1fb375df665e4d9fe336a9c4 [media] cx23885-video: fix two warnings [ 34.787483] 5bc08e1921e46101457d3be09835697490177fdd [media] cx23885[v4]: Fix interrupt storm when enabling IR receiver [ 34.787483] experimental: 4f70550f5de950677b8254be73ec04f7c9cd66ba experimental: Do not patch out-of-tree drivers. [ 34.787483] ngene-octopus-test: 406ffecccbec6e22da954a07b7398292330bc767 ddbridge: Add ID of Digital Devices Octopus V3. [ 34.957972] Digital Devices PCIE bridge driver, Copyright (C) 2010-11 Digital Devices GmbH [ 34.958554] DDBridge 0000:00:00.0: enabling device (0000 -> 0002) [ 34.958668] DDBridge 0000:00:00.0: Xen PCI mapped GSI18 to IRQ30 [ 34.958678] DDBridge driver detected: Digital Devices DVBCT V6.1 DVB adapter [ 34.958696] HW 00010007 REG 00010003 [ 34.961388] Port 0 (TAB 1): DUAL DVB-C/T [ 34.963033] Port 1 (TAB 2): DUAL DVB-C/T [ 34.963681] Port 2 (TAB 3): NO MODULE [ 34.965115] DVB: registering new adapter (DDBridge) [ 34.965118] DVB: registering new adapter (DDBridge) [ 34.965120] DVB: registering new adapter (DDBridge) [ 34.965121] DVB: registering new adapter (DDBridge) [ 35.714023] stv0367 found [ 36.213232] tda18212dd: ChipID 4724 [ 36.213696] tda18212dd: PowerState 01 [ 36.338808] DDBridge 0000:00:00.0: DVB: registering adapter 0 frontend 0 (STV0367 DVB-C DVB-T)... [ 36.340001] stv0367 found [ 36.600233] tda18212dd: ChipID 4724 [ 36.600660] tda18212dd: PowerState 00 [ 36.852626] DDBridge 0000:00:00.0: DVB: registering adapter 1 frontend 0 (STV0367 DVB-C DVB-T)... [ 36.853871] stv0367 found [ 37.111161] tda18212dd: ChipID 4724 [ 37.111587] tda18212dd: PowerState 01 [ 37.220630] DDBridge 0000:00:00.0: DVB: registering adapter 2 frontend 0 (STV0367 DVB-C DVB-T)... [ 37.221865] stv0367 found [ 37.479572] tda18212dd: ChipID 4724 [ 37.479999] tda18212dd: PowerState 00 [ 37.780612] DDBridge 0000:00:00.0: DVB: registering adapter 3 frontend 0 (STV0367 DVB-C DVB-T)...
Gruß,
Karlson. -
Wo findet man eigentlich Dokumentation über den Chipsatz dieser Karte?
Das wäre vielleicht noch sinnvoll, wenn man das ganz oben anpinnen könnte. -
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 MODULElcpci 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
-
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.htmlDen Thread muss ich jetzt erst mal lesen.
Lars.
-
Anscheinend kommt uns gerade jemand zuvor:
http://www.mail-archive.com/linux-[email…]/msg67980.html
Link kaputt?Gerald
-
Eher Portal doof. Weil da ein @ drin ist, macht es automatisch email-Tags drum...
Müsste jetzt gehen.Lars.
-
Kannst du aber beim Posten abschalten. Im 'Einstellungen' Tab
-
Jup, hab's gefunden. Danke
Lars.
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!