Terratec Cinergy 2400i DT Treiber (GPL)

  • Moin Moin,


    seit ein paar Stunden läuft mein VDR mit einer Cinergy 2400i. Beinahe hätte ich die Karte wegen fehlender Linux-Unterstützung unter den Hammer gebracht. Gestern bin ich jedoch zufällig auf das Thema Media-Pointer MP-S2 DVB-S2 Twin Tuner geraten. Da diese Karte ebenfalls auf dem nGene-Chip von Micronas basiert wurde mein Interesse geweckt.


    Im o.g. Thema wurden schon ein paar Patches veröffentlicht. Ich hab diese mit minimalen Ergänzungen in den "Original Treiber" eingebaut und einen funktionierenden Treiber kompilieren können (Kernel 2.6.31).


    DANKE!


    Kernelmeldung beim Laden der Module:


    Was geht:

    • Es werden 2 Devices mit jeweils einem Frontend erzeugt (adapter0/frontend0, adapter1/frontend0)
    • Beide Tuner sind im VDR verwendbar
    • Alle in Berlin verfügbaren Sender wurden mit w_scan gefunden


    Die Quellen:
    Das originale Treiber-Paket von media-pointer.de
    ...Treiber-Patch im Anhang


    bis denne
    ZicZac


    [edit 19.11.2009]
    Hab den Patch nochmal ein wenig geändert:
    - Keine Fehlermeldungen/Warnungen mehr beim Kompilieren der für die Karte benötigten Module
    - Module werden beim Systemstart automatisch geladen
    - Deklarationsfehler aus Patch ngene-sm-3 in ngene_snd.c beseitigt
    [/edit]


    [edit 20.11.2009]
    Noch ein paar Korrekturen:
    - Keine Fehlermeldungen/Warnungen mehr beim Kompilieren (bei Kernel 2.6.31)
    - Patch im Anhang: ngene-sm-5.tar.gz
    Das wars erstmal. Die Karte läuft jetzt seit 2 Tagen ohne "Absturz" mit dem Treiber aus dem 1. Patch (ngene-sm-3). Trotz intensiven EPG-Scans im VDR (Timout auf 1 Std. eingestellt). Ich lade jetzt mal die Treiber mit dem letzten Patch und hoffe, dass es so bleibt.
    [/edit]

  • Moin Moin,


    ich hab noch ein bischen am Treiber gebastelt:

    • Modul dvb-ngene in ngene umbenannt, siehe README
    • Tunerfrequenzen in drxd.c und ngene_core.c (vorher ngene.c) korrigiert
    • Es werden nur noch die Module kompiliert, welche für die Cinergy 2400i benötigt werden
    • neuer Patch im Anhang


    Status:

    • Ist der automatische EPG-Scan im VDR deaktiviert, so läuft die Karte absolut fehlerfrei durch.
    • Mit aktiviertem EPG-Scan hatte sich die Karte manchmal während eines Scans "aufgehängt" (siehe Code). Ein Reload der Module half dann auch nicht mehr. Der Rechner musste neu gestartet werden. Ich habe probeweise mal "ScanTimeout" in eitscan.h (VDR sources) von 20 auf 40 Sekunden gesetzt. Bringt's allerdings auch nicht.


    Code
    kernel: ngene: Command timeout cmd=04 prev=04
    kernel: Error in pll_set
    kernel: ngene: Command timeout cmd=03 prev=04
    kernel: Can't read SC_RA_RAM_LOCK__A status = ffffffff


    ZicZac

  • Hi ZicZac,


    erstmal großen Dank für deine Mühen und Anstrengungen! Ich habe die selbe Karte und warte schon ewig auf einen Linuxtreiber, genau genommen hatte ich die Karte schon ausgebaut - da ich komplett auf Linux ugestiegen bin - und wollte sie verscherbeln. Dann bin ich dieses WE über deinen Thread gestolpert...


    Nun habe ich allerdings ein kleines Problem. Vielleicht kannst du mir ja helfen? So habe ich den Treiber mit deinem Patch installiert und konnte die Karte wunderbar benutzen, beide Tuner usw. alles wie man sich es nur erträumen kann. Allerdings habe ich das Problem, dass das jetzt, nach einem Neustart, nicht mehr funktioniert. Genau genommene kann ich das notwendige Module einfach nicht mehr laden. Als System benutze ich ein Ubuntu Karmic 64bit, Kernel 2.6.31-15. Die entsprechende Meldung lautet:


    Code
    ng@ng-daheim:~$ modprobe ngene FATAL: Error inserting ngene (/lib/modules/2.6.31-15-generic/extra/ngene.ko): Operation not permitted
    ng@ng-daheim:~$ sudo modprobe ngene [sudo] password for ng: FATAL: Error inserting ngene (/lib/modules/2.6.31-15-generic/extra/ngene.ko): Unknown symbol in module, or unknown parameter (see dmesg)


    die dazugehörige dmesg-Ausgabe:


    Nun gut, für Hilfe bzw. einen Ratschlag wäre ich wirklich dankbar! Insbesondere da mir einfach nicht so recht klar ist wo der Konflikt liegt.


    UPDATE:


    Ich denke ich habe den Fehler gefunden. Das Problem war das ich mir eingebildet habe v4l-dvb über mercurial neu installieren zu müssen, danach lief das Einbinden des Modules nicht mehr (s.o.). Ich habe also die mercurial-Installation von v4l-dvb wieder entfernt. Jetzt wird das Module wieder ohne Beanstandung eingebunden.



    Allerdings wird die Karte nicht durch Kaffeine, Me TV gefunden, woran das liegt...ich habe keine Ahnung. Außerdem, da es sich hier um das vdr-portal handelt war es mglw. nicht vollkommen korrekt diesen Thread mit meinem Ubuntu Schwierigkeiten vollzuschreiben, insofern habe ich bei ubuntuusers einen alten Thread wieder aufleben lassen:
    http://forum.ubuntuusers.de/to…2400i-dt/?highlight=2400i

  • Moin Moin,


    um den Treiber mit v4l-dvb-mercurial zu kompilieren, müsstest Du die Sourcen in v4l-dvb "einbauen". Hab's bisher nicht probiert.
    Wenn ich um die Weihnachtstage genug Zeit habe, so werde ich mal versuchen den Treiber komplett zu integrieren. Das ist allerdings eine etwas größere Aktion. Das ngene-Modul soll dann das schon in den Quellen vorhandene drxd-Modul (drx397xD) benutzen. Auch müssen die Tunerdaten (DTT7520X, MT3X0823) noch in dvb-pll integriert werden.
    Vielleicht wäre damit auch das "Can't read SC_RA_RAM_LOCK__A status" Problem behoben. Verursacht wird es durch das jetzige drxd-Modul (drxd_hard.c).


    Bis dahin benutze ich den separaten Treiber und lasse den automatischen EPG-Scan im VDR deaktiviert.

    Hardware: AVerTV 771, DVBSKy S952
    Software: VDR 1.7.25, xineliboutput, vaapi
    System: Gentoo Linux (x86_64), Kernel 3.4.4
    Bastelkiste: Terratec Cinergy 2400i DT, Hauppauge Nova-TD Stick

    Einmal editiert, zuletzt von ZicZac ()

  • Hey,


    bin eigentlich auch so erstmal recht, um nicht zu sagen ziemlich, zufrieden. Für meine Zwecke, also mal Nachrichten schauen u.ä. reicht es allemal. Wenn es natürlich noch besser und schöner wird finde ich das auch gut ;)


    Kurz noch ein Wort zu meinem oben angedeuteten Problem, das hatte nichts mit dem Treiber zu tun. Ich hatte nur irgendwie den vdr-Daemon laufen und das nicht gemerkt, dass wiederum mochte mein System nicht. Nachdem ich den Daemon beendet hatte kein Problem mehr :)


    Danke nochmal!


    kurz noch ein UPDATE, aktueller Link ins ubuntuusersforum:
    http://forum.ubuntuusers.de/to…400i-laeuft-unter-ubuntu/

  • Hi ZicZac!


    Vielleicht kannst du mir nochmal etwas helfen, da ich wohl mit meiner Prognose läuft total problemlos etwas optimistisch war. ;) Ich glaube das Problem, dass sich bei mir aufgetan hat bezieht sich auf die epg-Scans. Wenn ich das richtig beobachtet habe schmiert die Karte bzw. der Treiber bei eben diesen ab. Dann hilft nur noch ein Neustart, das kann einem den Fernsehgenuss etwas vermiesen. Du hattest das ja schon angekündigt...
    Jetzt habe ich aber kein vdr laufen, sondern benutze Kaffeine bzw. MeTV. Bei MeTv habe ich versucht die epg-Scans mittels der dazu vorhandenen Funktion (--disable-epg-thread) zu deaktivieren, das klappt aber leider nicht. Jetzt stellt sich mir die Frage, wie könnte ich das unter Ubuntu hinbekommen bzw. mit welchem Programm?

  • Hallo ngsonst,


    Was sagt Syslog dazu? Such' mal in /var/log/messages nach "Can't read SC_RA_RAM_LOCK__A status".


    Ich habe versucht den o.g. Fehler (EPG) zu beseitigen. Ob es mir gelungen ist wird sich erst heute Abend zeigen. Weiterhin gibts noch minimale Änderungen bei der Ansteuerung der Tuner. Leider ist das Alles nur ein Umhergestocher, da ich z.B. vom Thomson DTT7520 (Tuner) nirgendwo Daten finde.
    Also: Wenn meine letzte Bastelei was gebracht hat, dann "klebe" ich noch einen überarbeiteten Patch an den Beitrag.


    bis denne
    ZicZac

    Hardware: AVerTV 771, DVBSKy S952
    Software: VDR 1.7.25, xineliboutput, vaapi
    System: Gentoo Linux (x86_64), Kernel 3.4.4
    Bastelkiste: Terratec Cinergy 2400i DT, Hauppauge Nova-TD Stick

    Einmal editiert, zuletzt von ZicZac ()

  • Hi ZicZac!


    Einerseits habe ich mir die /var/log/messages mal genauer angesehen und es handelt sich um das "Can't read SC_RA_RAM_LOCK__A status"-Problem. Andererseits habe ich festgestellt, dass sich bei MeTV der Zugriff auf dan EPG durch aus abschalten lässt, dazu habe ich dann folgenden Befehl im Terminal eingegeben:

    Code
    ng@ng-daheim:~$ me-tv --disable-epg-thread --disable-epg --read-timeout 20
    Me TV 1.0.0
    04.12.2009 15:05:04: Changing channel to Phoenix
    04.12.2009 15:05:04: Auf Signalsperre warten …
    04.12.2009 15:05:05: Signalsperre erhalten
    04.12.2009 15:05:05: Channel changed to Phoenix


    Daraufhin lief das Ganze schon wesentlich besser. Ich habe dann mal drei Instanzen MeTV laufen lassen, die zwei 2400i Tuner und eine USB-Karte, und einen kleinen Testlauf (inkl. einiger 5 minütiger Aufnahmen) veranstaltet. Das lief eigentlich ziemlich gut, allerdings kam es nach etwa anderthalb Stunden wieder zur selben Fehlermeldung:



    Ich muss allerdings sagen, dass das schon ein riesen Fortschritt ist, da dieses Problem vorher immer schon nach ca. 15 Minuten auftrat.


    Nun gut, ich werde mir das weiterhin noch etwas genauer ansehen. Sollte deine Bastelei etwas bringen wäre das natürlich toll! Leider kann ich dir da nicht so eher helfen, da ich dann doch eher "nur" ein begeisterter Anwender bin.

  • Hallo ngsonst,


    sieht bisher ganz gut aus. Ich hab gerade wenig Zeit. Neuer Patch im Anhang.


    bis denne
    ZicZac


    ps: Ich bin auch nur'n begeisterter Anwender.

  • Hallo ZicZac,


    ich bin gerade dabei einen vertiefenden Test des neuen Patches laufen zu lassen. Vorab kann ich allerdings schon mal feststellen, dass der neue Patch mindestens so gut läuft wie der vorherige und dass mit EPG, insofern schon mal ein Komfortgewinn!


    Ansonsten hatte ich dennoch den ein oder anderen Abbruch der folgenden Art:


    Code
    Dec  5 19:12:26 ng-daheim kernel: [  150.410348] ngene: Command timeout cmd=03 prev=04
    Dec  5 19:12:26 ng-daheim kernel: [  150.410357] Can't read SC_RA_RAM_LOCK__A status = ffffffff


    Diese treten allerdings vor allem in zwei Fällen auf, einerseits wenn ich versuche die beiden Tuner mit me-tv zu schnell hintereinander anzusprechen und andererseits wenn ich die Absicht habe mit beiden Tunern gleichzeitig aufzuzeichnen. Zu erstem Fall lässt sich wohl nur feststellen, dass die Ansteuerung der Tuner schlicht nicht die schnellste ist, ich persönlich habe die "--read-timeout"-Option mittlerweile auf 35 Sekunden hoch gesetzt. Zum zweiten Fall will ich nur hinzufügen, dass das durchaus schon gut gegangen ist, im Endeffekt ist das nach meiner bisherigen Erfahrung aber eher eine Sache des Glücks, also ob es klappt oder nicht.


    Eine andere Erfahrung die machen musste war folgende (me-tv-)Fehlermeldung:


    Code
    Xine engine terminating normally
    05.12.2009 19:25:39: Stopping engine
    05.12.2009 19:25:39: Quitting Engine
    05.12.2009 19:25:39: Failed to wait for engine to exit: waitpid returned -1
    05.12.2009 19:25:39: Killing engine
    05.12.2009 19:25:39: Engine stop complete
    05.12.2009 19:25:39: Engine stopped


    Es war mir erst nicht vollkommen klar woran, gut xine eben, das liegt, da die Meldung nach einem Reboot erfolgte und ich vorab einen mehrstündigen erfolgreichen Testlauf durchlaufen ließ. Ich kann auch nicht wirklich sagen was das Problem war, nur das es sich nicht wiederholt hat nachdem ich den neuesten Nvidia-Treiber (Nvidia-vdpau 190.42) aus dem ppa installiert habe. Nun gut, das nur für diejenigen die mglw. auf die selbe Meldung stoßen.


    Soweit erstmal von mir, Nicolai


    ps: mglw. auch nur begeisterter Anwender, aber mit etwas mehr Know-How ;)

  • Hallo Nicolai,


    jetzt bin ich mit meinem Latein am Ende. Bei mir läuft die Karte mit letztem Patch-07-Treiber seit 04.12. ohne Absturz durch. Auch ich hab zum Test ein paar Aufnahmen mit beiden Tunern gleichzeitig gemacht und den EPG-Scan im VDR auf 3 Std. eingestellt. Das Umschaltverhalten ist in der Tat nicht "goldig".


    Hast Du mal versucht die Karte in einen anderen PCIe-Slot zu stecken? Vielleicht ist es doch ein Fehler in der IRQ-Behandlung.


    bis denne
    ZicZac

    Hardware: AVerTV 771, DVBSKy S952
    Software: VDR 1.7.25, xineliboutput, vaapi
    System: Gentoo Linux (x86_64), Kernel 3.4.4
    Bastelkiste: Terratec Cinergy 2400i DT, Hauppauge Nova-TD Stick

    Einmal editiert, zuletzt von ZicZac ()

  • Hallo ZicZac,


    ich weiß leider auch nicht weiter... Ich habe die Karte jetzt mal in den zweiten PCIe-Slot verfrachtet, in der Hoffnung, dass du mit deiner Vermutung recht hast. Soweit so gut erstmal, d.h. bisher kein Abbruch. Aber mir fehlt auch etwas die Zeit für ausgiebige weitere Tests, sodass ich das wahrscheinlich erst wieder zum Wochenende machen kann. Allerdings läuft mein PC daheim mal munter den ganzen Tag, ich hoffe natürlich, dass die Karte auch heute Abend noch fröhlich das Fernsehsignal ausspuckt. Das wäre dann schon mal ein Indiz dafür, dass du recht hattest.


    Grüße, Nicolai

  • Hi,


    ich habe, wie gesagt, die Karte in den anderen PCIe-Slot verfrachtet und seitdem keine Abbrüche mehr gehabt. Es sieht also so aus als hätte es tatsächlich an meinem PC mglw dem Board gelegen. Ist mir irgendwie auch gleich, jetzt scheint es erstmal zumindest gut zu funktionieren! Den neuen Patch konnte ich noch nicht ausprobieren, werde ich die nächsten Tage mal machen. Soweit erstmal ein kurzes Update.


    Update (10.12.):


    Bei mir läuft die Karte mittlerweile und immer noch gut, d.h. keine, also gar keine, Abbrüche mehr. Ich habe unterdessen auch den Treiber inklusive dem Patch 9 installiert, womit sich auch die Umschaltgeschwindigkeit erheblich verbessert hat. Zwei, drei kurze und längere Testläufe mit ein paar "Extremsituationen" haben auch keine weiteren Schwierigkeiten offenbart.


    Insofern erstmal einen großen DANK an dich ZicZac!!!

  • Moin Moin,


    - Cleanup, Freeze -


    Das ist der letzte Patch für den "alten" ngene-Treiber. Da der Treiber bei mir zuverlässig und stabil läuft, ist die "Arbeit" für mich abgeschlossen. Jetzt wird nur noch zu dvb-v4l portiert.


    cu
    ZicZac

  • Zitat

    Original von ZicZac
    Moin Moin,


    - Cleanup, Freeze -


    Das ist der letzte Patch für den "alten" ngene-Treiber. Da der Treiber bei mir zuverlässig und stabil läuft, ist die "Arbeit" für mich abgeschlossen. Jetzt wird nur noch zu dvb-v4l portiert.


    FYI, in http://vdrportal.de/board/thread.php?threadid=87049 geht es auch um einen ngene-Treiber. twoofseven ist gerade dabei, den Code reif für den Kernel zu machen. Dazu bauen wir ein HG-Repository mit bereinigtem Code zur Übergabe an linuxtv auf.


    Falls es sich (was ich vermute) im Prinzip um denselben Treiber handelt, könntest Du Deine Karte per Patch in unseren Treiber integrieren. Man muß ja nicht die ganze Arbeit mehrfach machen...


    CU
    Oliver

  • Hallo UFO,


    twoofseven hatte mich wegen der Treiberintegration schon vor ein paar Tagen per E-Mail angeschrieben. Grundsätzlich handelt es sich ja um den selben Treiber. Die Gemeinsamkeiten hören jedoch nach der nGene-PCIe-bridge auf. Momentan bin ich dabei den Treiber funktional in die dvb-v4l Quellen zu integrieren. D.h. Ansteuerung des schon in den dvb-v4l Sourcen vorhandenen drx397xD + verwendete DVB-T Tuner.
    Wenn dieser Schritt vollzogen ist, kann man "mergen". Vorher bringt das nix. Das hatte ich auch twoofseven so geschrieben.
    Ein ganz wichtiger Schritt ist da noch die Trennung von Treiber und Firmware. Diese steht nicht unter der GPL. In der jetzigen "Form" wäre eine Integration in den Kernel ausgeschlossen. Ich habe mal mit dem "load_firmware" Parameter für das ngene-Modul umhergefummelt. Die Funktion lief allerdings immer auf'n Hammer.


    Ich bin nicht sicher, ob das Alles dieses Jahr noch was wird. Ab nächste Woche ist meine "Hütte" mit 11 Personen mehr als voll. Da werde ich wenig Zeit für dieses Thema finden.


    cu
    ZicZac

    Hardware: AVerTV 771, DVBSKy S952
    Software: VDR 1.7.25, xineliboutput, vaapi
    System: Gentoo Linux (x86_64), Kernel 3.4.4
    Bastelkiste: Terratec Cinergy 2400i DT, Hauppauge Nova-TD Stick

  • Zitat

    Original von ZicZac
    Hallo UFO,


    twoofseven hatte mich wegen der Treiberintegration schon vor ein paar Tagen per E-Mail angeschrieben. Grundsätzlich handelt es sich ja um den selben Treiber. Die Gemeinsamkeiten hören jedoch nach der nGene-PCIe-bridge auf.


    Klar.


    Zitat


    ...
    Ein ganz wichtiger Schritt ist da noch die Trennung von Treiber und Firmware. Diese steht nicht unter der GPL. In der jetzigen "Form" wäre eine Integration in den Kernel ausgeschlossen. Ich habe mal mit dem "load_firmware" Parameter für das ngene-Modul umhergefummelt. Die Funktion lief allerdings immer auf'n Hammer.


    Das alles werden wir ohnehin machen...


    Zitat


    Ich bin nicht sicher, ob das Alles dieses Jahr noch was wird. Ab nächste Woche ist meine "Hütte" mit 11 Personen mehr als voll. Da werde ich wenig Zeit für dieses Thema finden.


    Ich wollte nur sicherstellen, daß nicht 2 fast identische ngene-Treiber gleichzeitig submitted werden.


    Falls Du einverstanden bist, machen wir die Konvertierung des ngene-Teils für linuxtv (Codingstyle, Firmware usw.). Für Deinen Demod + Tuner bräuchtest Du dann "nur" noch passende Patches zu liefern.


    CU
    Oliver

  • Hallo UFO,


    Zitat

    Ich wollte nur sicherstellen, daß nicht 2 fast identische ngene-Treiber gleichzeitig submitted werden.


    Klar! Ich hatte nicht vor einen 2. Treiber zu erstellen. Nur bin ich noch lange nicht so weit wie ihr aus der DVB-S(2) Abteilung.


    Zitat

    Für Deinen Demod + Tuner bräuchtest Du dann "nur" noch passende Patches zu liefern.


    Da sitze ich gerade dran und scheitere hoffentlich nicht.


    Ich hatte mir die Quellen von twoofseven schon einmal angesehen. Wieso habt ihr den ngene-Treiber eigentlich unter media/video abgelegt und nicht unter media/dvb (wie z.B. pluto2). Laut Micronas-Statement im README wird es keine Karten mit Analog-In/Out mehr geben:


    Zitat

    V4L2 support for analog TV and HDTV is currently no longer supported. There is no time to write the necessary fixes due to changes in the V4L2 kernel subsystem. It will probably be completeley dropped in the future and only pure digital TV cards will be supported.


    Egal. Es freut mich auf jeden Fall, dass für gute Hardware auch gute Linux-Unterstützung in Sicht ist.


    bis denne
    Sven

    Hardware: AVerTV 771, DVBSKy S952
    Software: VDR 1.7.25, xineliboutput, vaapi
    System: Gentoo Linux (x86_64), Kernel 3.4.4
    Bastelkiste: Terratec Cinergy 2400i DT, Hauppauge Nova-TD Stick


  • Keine Sorge, im überarbeiteten Code wird der Treiber dann unter media/dvb/ngene liegen.


    Btw, der Code muß für den Kernel entsprechend Codingstyle/checkpatch formatiert werden. Patches gegen das alte GIT-Repository werden also für das neue HG-Repository wahrscheinlich angepaßt werden müssen.


    Mach' Dir also nicht zu viel Arbeit mit dem alten Code. Sobald das neue Repository reif für Patches ist, gebe ich Bescheid.


    Gruß,
    Oliver

Jetzt mitmachen!

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