dvb-treiber, vdr will alles nicht

  • Hallo zusammen,


    ich bin zugegebener Maßen ein LinuxNeuling.
    Mit LinVDR hat alles auf Anhieb geklappt. Da das langweilig ist, ich Linux kennenlernen möchte und der PC später im Netzwerk evtl noch ein paar Zusatzfunktionen übernehen soll, habe ich mich für ein gentoo entschieden.
    Dafür gibt es schließlich auch einige Anleitungen im Internetz.


    Beim ersten Versuch habe ich von allen Anleitungen den Mittelweg genommen. Also immer das Passende. Dabei hat er beim booten dvb_ttpci geladen aber keine firmware gefunden, die ich allerdings schon überall hinkopiert hatte? Naja, das war dann etwas durcheinander, weil ich wirklich alles was im Internet an Tipps für DVB auffindbar war erfolglos durchprobiert habe.


    Dann habe ich bei fdsik wieder angefangen und mich strikt an die im Wiki gehalten. Also auch die gleiche Kernelversion usw. Allerdings gab es bei mir schon bei der Kernelkonfiguration manche beschriebene Optionen nicht(ZB --> Compile AV7110 firmware into the driver). Habe das dann nach besten gewissen gemacht. Läuft ja auch alles soweit (schwierigkeiten mit Netzwerkkarte, 8139too nachtragen müssen).


    Bei der Installation von vdr bekomme ich nach der Eingabe
    make REMOTE=LIRC
    einen Fehler aus

    Code
    dvbdevice.c:1101: error; too many initializers for 'video_still_picture'
    dvbdevice.c:1101: error: invalid conversion from 'char*' to 'int'


    In Zeile 1107 nochmal


    Dann habe ich es wie hier versucht, aber da würde er nur dass paket "media-video/vdr-1.2.1" installieren? Während dem emerge steigt er dann mit einem error(einem anderen, hab jetzt nicht mitgeschrieben) wieder in der dvbdevice.c aus.


    Ich weiß auch nicht ob die dvb-Treiber überhaupt schon verfügbar sind?
    Ich lese immer von im Kernel kompiliert und als Modul laden. Wie äußert sich das? Wenn ich beim Kernel konfigurieren die Optionen anwähle sind sie fest drin? Wenn ich es später nachinstalliere oder mit (m) im Kernel kompilieren sind es Module und ich kann später einfacher updaten?


    Wie kann ich überhaupt schauen, wo mein System momentan steht, ob Module für die TV-Karte oder sonstwaswie vorhanden sind?


    Also wenn mir da jemand helfen könnt..
    Schönen Gruß
    Jens

    Medion Pentium3 350; Hauppauge Nexus-S Rev2.1; Gentoo

    Einmal editiert, zuletzt von Pense ()

  • was steht denn in deinen use flags? (/etc/make.conf)

  • Servus,


    mal was zu den Treibern: Wenn du die DVB-Treiber als Module in den Kernel einkompiliert hast, musst du sie natürlich auch laden! ein "lsmod" zeigt dir, welche Module im System geladen sind. Für meine TT 1.6 habe ich folgende Module laufen:


    Code
    Module                  Size  Used by
    grundig_29504_491       6404  1
    ves1x93                 8464  0
    dvb_ttpci             304784  18
    saa7146_vv             46336  1 dvb_ttpci
    video_buf              17668  1 saa7146_vv
    ttpci_eeprom            3328  1 dvb_ttpci
    saa7146                16296  2 dvb_ttpci,saa7146_vv


    Dazu muss ich folgende Module laden (Laden mit "modprobe"):


    Code
    saa7146
    dvb-ttpci
    ves1x93
    grundig_29504-491


    Ich habe sie einfach in die
    /etc/modules.autoload.d/kernel-2.6
    geschrieben, so werden sie beim Booten automatisch geladen.
    Ich hoffe, ein Teil deiner Fragen wurde beantwortet.


    Gruß,
    Johannes

    Duron 800 auf Asus A7V, 256MB, 160GB Samsung, DVB-S Rev. 1.6
    Gentoo Linux, Kernel 2.6.12-gentoo, VDR 1.3.27, viele Patches und Plugins

  • USE-Flag wie im Wiki beschrieben:
    USE="dvb lirc -gtk -gtk2 -gnome -X -qt -kde -arts -opengl -xmms -xv"


    lsmod bringt nur folgende Module

    Code
    usbcore
    8139too
    mii


    saa7146 und dvb_ttpci kann ich mit modprobe nachladen. Die anderen beiden nicht, da er ein solches Modul nicht findet. Danach bringt lsmod auch wesentlich mehr Module:


    Ich habe aber eigentlich die ganzen Sachen beim Kernel konfigurieren angewählt gehabt. Nicht <m> sondern <*>.. Gut das habe ich von der Netzwerkkarte auch gedacht gehabt. Kann es sein, daß lsmod nur die "nachgeladenen" Module anzeigt?


    der Fehler bei make REMOTE=LIRC bleibt aber noch, auch mit geladenen Modulen. Welche Module wären es für meine Hauppauge Nexus-S Rev2.1? SAA7146 müßte da ja schon richtig sein (zumindest nennt sich der größte IC auf der Karte so)..


    gruß
    Jens

  • Hi,


    so ein Mischmasch aus verschiedenen Anleitungen klappt zumindest nach meiner Erfahrung schlecht oder gar nicht und man hat hinterher überall Dateileichen auf der Platte rum liegen.
    Dein Problem mit der Firmware könnte sein, dass du evt. vergessen hast die option im Kernel compile only driver who needs no extern firmware (oder wie des genau heisst) zu entfernen(einfach anwählen und n drücken). Dann muss natürlich die Firmware ins richtige Verzeichnis kopiert werden und es kommt darauf an, ob die die Treiber als Module "im" Kernel einbaust oder diese "extern" im CVS Verzeichnis der DVB-Treiber lässt. Des weiteren musst du vorher hotplug emergen, da ansonsten das Verzeichnis für die Firmware nicht existiert.
    Hast du in der Datei dvb_driver.c mal nachgeschaut, ob an der von dir genannten Stelle sowas wie __user steht? Wenn ja, dann entfern das Wörtchen dann mal und teste dann erneut. Vorher aber ein make clean machen.

    ___________________________________________________
    CPU: P4 640 RAM: 1GB DDR-RAM 667 DVB-Karte: Nexus S Rev 2.1
    Festplatten: 2 * Seagate 120 GB RAID1 Mainboard: Asus P5GD2 Deluxe
    Raid-Controller: 3ware 8006-2LP Kernel: NA
    VDR-Version: NA Lirc: NA DVB-Treiber: NA

  • Hallo und vielen Dank für Hinweise!


    Naja, der Fehler in der dvbdevice.c kommt an einer Stelle, die eigentlich nichts mit __user zu tun hat. Lustig ist auch das der Autor folgenden Kommentar eingefügt hat:
    "I have absolutely no idea why it works this way, but doesn't work wiith VIDEO_STILLPICTURE. If anyboby ever finds out what could be changed [..]"
    Der Funktionsaufruf bei dem der Fehler kommt lautet
    video_still_picture sp = { buf, blen } bzw
    video_still_picture sp = { (char *)Data, Length }
    Die Fehlermeldung klingt auch eher so, als ob er ein int erwartet und nicht ein Zeiger auf ein Array aus chars?! Aber ich weiß auch nicht wo die ganzen Funktionen stehen..


    ich habe mich diesesmal ja genau an deine Anleitung gehalten! Ich habe lediglich mit einer Stage3 angefangen. Kann es schin daran liegen? Sonst braucht der arme Pentium3 500 hier ja tagelang um das alles zu kompilieren.
    Beim Kernel konfigurieren konnte ich dann manche Optionen nicht wie beschrieben einstellen. zB
    Device Drivers -->
    --> Generic Driver Options -->
    --> Hotplug frimware loading support aktivieren (m)
    gibs nicht!
    Das -->Digital Video Broadcasting Devices sieht bei mir so aus:


    Geht es denn, daß man den ganzen MultimediaDevice Kram aus dem Kernel rauslässt und später manuell nachinstalliert? Oder bringt das dann noch mehr Schwierigkeiten und Geschwindigkeitseinbußen?


    Gruß
    Jens

    Medion Pentium3 350; Hauppauge Nexus-S Rev2.1; Gentoo

    Einmal editiert, zuletzt von Pense ()

  • Achso nochwas, wenn ich direkt


    ACCEPT_KEYWORDS="~x86" emerge -p vdr
    eingebe, dann möchte er nur ein Paket instalieren:
    [ebuild N ] media-video/vdr-1.2.6-r1

  • Nutzt du jetzt eigentlich die CVS Treiber oder die dem Kernel beiliegenden?
    Hast du auch die Option Use only drivers who not need externel firmware deaktiviert? Die Option gibts auch im Device Drivers irgendwo bei den ersten 2, 3 Punkten von oben.


    Wenn du die CVS Treiber nutzt, ist der Spass mit dem OSD Kram bei DVB 4 Linux in nem Untermenü versteckt. Dort kannst du dann die entsprechenden Sachen anwählen. Wenn es nicht klappen sollte, dann sag bescheid, dann lad ich mal meine Kernel config hoch.

    ___________________________________________________
    CPU: P4 640 RAM: 1GB DDR-RAM 667 DVB-Karte: Nexus S Rev 2.1
    Festplatten: 2 * Seagate 120 GB RAID1 Mainboard: Asus P5GD2 Deluxe
    Raid-Controller: 3ware 8006-2LP Kernel: NA
    VDR-Version: NA Lirc: NA DVB-Treiber: NA

  • für mich sieht das so aus als hättest du in

    Code
    Device Driver --->
          Generic Driver Options --->
                [*] Select only drivers that don't need compile-time external firmware


    wenn du dies raus machst hast du die option firmware mit einzubacken

  • Hi,


    [*] Select only drivers that don't need compile-time external firmware
    ja die option ist bei noch drin! Ich hoffe ich komme morgen abend dazu, den Kernel ohne diese Option laufen zu lassen? Ich kann doch einfach mit genkernel --menukonfig all das umändern?


    Du nutzt doch in deiner Anleitung die CVS Treiber?
    Oder wählst im Kernel alles an und er nimmt aber die CVS Treiber, weil die in dem Verzeichnis liegen oder durch das makelinks umgelegt wurde? ? Seh ich das so richtig?
    Was wäre der jeweilige Vorteil?


    Gruß
    Jens


    PS: Eigentlich finde ich es schon arm, daß es auf der Homepage von Hauppauge keinerlei Hinweise auf Linux gibt!

    Medion Pentium3 350; Hauppauge Nexus-S Rev2.1; Gentoo

    Einmal editiert, zuletzt von Pense ()

  • Wenn du die CVS-Treiber mit ./makelinks.sh in den Kernel eingebunden hast, dann sieht der Punkt bei DVB Drivers im Kernel Config ein wenig anders aus. Die Frontends sind in ein Untermenü verschwunden. Das wollte ich damit aussagen. Ausserdem den ganzen Treiber und Frotendskram als Module installieren. Des weiteren musst du natürlich die Datei dvb-ttpci-01.fw (bei genkernel >>vorher<<) in das richtige Verzeichnis verschieben oder kopieren.
    Danach wie gewohnt kompilieren. Wenn der Kernel und die Module fertig kompiliert sind, noch make modules_installl machen. Dann sollte der Kerenl und die Module funktionieren. Jetzt kannst du weiter nach Anleitung vorgehen.

    ___________________________________________________
    CPU: P4 640 RAM: 1GB DDR-RAM 667 DVB-Karte: Nexus S Rev 2.1
    Festplatten: 2 * Seagate 120 GB RAID1 Mainboard: Asus P5GD2 Deluxe
    Raid-Controller: 3ware 8006-2LP Kernel: NA
    VDR-Version: NA Lirc: NA DVB-Treiber: NA

  • Ohja, das genkernel ist mit einem ERROR ausgestiegen..
    Irgendwas ist noch krumm! Hätte ich davor nicht nochmal die CVS Treiber an den Kernel verlinken dürfen?!
    Werde am Wochenende nochmal von vorn beginnen, weiß ja jetzt was ich anders machen muß..

    Medion Pentium3 350; Hauppauge Nexus-S Rev2.1; Gentoo

    Einmal editiert, zuletzt von Pense ()

  • Zitat

    Original von Pense
    Achso nochwas, wenn ich direkt


    ACCEPT_KEYWORDS="~x86" emerge -p vdr
    eingebe, dann möchte er nur ein Paket instalieren:
    [ebuild N ] media-video/vdr-1.2.6-r1


    Könnte es daran liegen, dass Du das Portage Overlay gentoo-de noch nicht eingetragen und mittels gensync gentoo-de aktualisiert hast? Dort kommen nämlich all die schönen, aktuellen vdr*.ebuilds her. :)


    /etc/make.conf

    Code
    PORTDIR_OVERLAY="/usr/local/overlays/gentoo-de"


    /etc/gensync/gentoo-de.syncsource

    Code
    id="gentoo-de"
    description="gentoo.de Portage Overlay"
    rsync="rsync://rsync.gentoo.de/gentoo-de-ebuilds"

    Greetings,
    sun2earth

    AMD Athlon(tm) 64 X2 Dual Core 4000+ Gentoo - Linux
    SAT: Wavefrontier Toroidal T90: Astra, Hotbird, Sirius, Thor

    Einmal editiert, zuletzt von sun2earth ()

  • gensync kennt er nicht..


    Habe jetzt nochmal von vorne angefangen. Diesesmal ist glaub alles richtig im Kernel drin. Habe den -r6, viel mir zu spät ein und eigentlich müssten spätere kernel auch "besser" sein.


    Folgende Sachen musste ich anders machen:
    -"__user" muß drin sein, sonst kommt ein Fehler beim kompilieren des Kernels
    -die Firmware muss in /usr/lib/hotplug/firmware liegen. Und das obwohl in /etc/hotplug/firmware.agent FIRMWARE_DIR=/lib/firmware ist und ich dort die frimware auch abgelegt hatte!


    Die Module dvb-ttpci und saa7146 kann ich dann per Hand laden.


    Wenn ich jetzt die CVS Treiber mit make kompilieren möchte kommt allerdings wieder der selbe Fehler wie im ersten post von mir. Es hängt schon mit dem __user zusammen. Mit der zeile __user meckert er an der Deklaration rum und ohne die Zeile fehlt dem struct natürlich ein member beim reinschreiben.


    Hab es allerdings mit den 1.3.20 versucht.


    Das einzige was war ist: cp /usr/local/src/dvb-kernel/linux/include/linux(?)/dvb/* /usr/include/linux/dvb
    Da kam die Fehlermeldung "ommiting directory". Mit -r habe ich das dann kopiert.


    Weiß noch jemand weiter?
    gruß
    Jens

  • also wenn du die DVB-Treiber mit dem Kernel gemacht hast, brauchst du meines wissens nicht nochmal nen make im cvs Verzeichnis zu machen. Das wäre dann ja das Wasser in den Bach getragen. Du machst diesen Schritt nur wenn du die cvs-Treiber nicht mit dem Kernel übersetzt hast. Wie das allerdings funktioniert musst du entweder hier im Forum, im Wiki oder in der vorhanden Readme nachlesen.

    ___________________________________________________
    CPU: P4 640 RAM: 1GB DDR-RAM 667 DVB-Karte: Nexus S Rev 2.1
    Festplatten: 2 * Seagate 120 GB RAID1 Mainboard: Asus P5GD2 Deluxe
    Raid-Controller: 3ware 8006-2LP Kernel: NA
    VDR-Version: NA Lirc: NA DVB-Treiber: NA

    Einmal editiert, zuletzt von AmTraX ()

  • Nachtrag:
    Zum Thema gensync: Schonmal emerge gensync ausgeführt? Wenn nicht, dann mach dat mal, dann sollte auch ein gensync funktionieren.

    ___________________________________________________
    CPU: P4 640 RAM: 1GB DDR-RAM 667 DVB-Karte: Nexus S Rev 2.1
    Festplatten: 2 * Seagate 120 GB RAID1 Mainboard: Asus P5GD2 Deluxe
    Raid-Controller: 3ware 8006-2LP Kernel: NA
    VDR-Version: NA Lirc: NA DVB-Treiber: NA

  • Sorry, hab mich heute morgen verschrieben. Ich mache schon noch alles wie du beschreibst. Also CVS Treiber im Kernel, wie in der Anleitung. jetzt aber mit -r6 Kernel und VDR 1.3.20


    Ich meinte das im vdr Verzeichnis! Wenn ich dort
    make REMOTE=LIRC oder auch nur make versuche kommt der Fehler wieder. Die dvbdevice.c gehört doch zu den CVS Treibern?
    Sollte ich dann mal die KernelTreiber versuchen?
    Wie bekomme ich das verlinkte von den CVS Treibern wieder raus oder muß ich wieder komplett mit der boot-cd starten und "mkreiserfs /dev/hda3" ;) Mittlerweile kann ich das alles fast schon auswendig.


    EDIT: emerge gensync kennt er kein ebuild für.. Hatte ich gleich als nächstes veruscht..

    Medion Pentium3 350; Hauppauge Nexus-S Rev2.1; Gentoo

    2 Mal editiert, zuletzt von Pense ()

  • Zitat

    Original von Pense
    Sorry, hab mich heute morgen verschrieben. Ich mache schon noch alles wie du beschreibst. Also CVS Treiber im Kernel, wie in der Anleitung. jetzt aber mit -r6 Kernel und VDR 1.3.20


    Ich meinte das im vdr Verzeichnis! Wenn ich dort
    make REMOTE=LIRC oder auch nur make versuche kommt der Fehler wieder. Die dvbdevice.c gehört doch zu den CVS Treibern?
    Sollte ich dann mal die KernelTreiber versuchen?
    Wie bekomme ich das verlinkte von den CVS Treibern wieder raus oder muß ich wieder komplett mit der boot-cd starten und "mkreiserfs /dev/hda3" ;) Mittlerweile kann ich das alles fast schon auswendig.


    Das ist eine gute Frage. Die habe ich mir auch schon des öfteren gestellt und bin dann zu dem Ergebniss gekommen, alles neu aufzusetzen. Nach meinem momentanen Wissensstand hätte/dürfte ein emerge genkernel reichen um zumindest beim kernel wieder mit 0 anzufangen. Vorher natürlich den alten kernel mit rm -R kernel-..... entfernen.


    Zitat

    Original von Pense
    EDIT: emerge gensync kennt er kein ebuild für.. Hatte ich gleich als nächstes veruscht..


    Hätte passen können :D

    ___________________________________________________
    CPU: P4 640 RAM: 1GB DDR-RAM 667 DVB-Karte: Nexus S Rev 2.1
    Festplatten: 2 * Seagate 120 GB RAID1 Mainboard: Asus P5GD2 Deluxe
    Raid-Controller: 3ware 8006-2LP Kernel: NA
    VDR-Version: NA Lirc: NA DVB-Treiber: NA

  • Habe jetzt die original DVB-Treiber vom Kernel. Wieder ein 2.6.10-r6


    Nach USE="lirc" .... emerge vdr
    kommt

    Code
    dvbdevice.h:20:2 VDR requires Linux DVB driver API version 3


    das ganze mehrmals..


    Unter /dev/dvb habe ich einen adapter0, sonst nichts.
    modprofe dvb-ttpci funktioniert. mit lsmod kommen die Module im Prinzip so wie weiter oben geschrieben..
    Wenigstens eine andere Fehlermeldung ;)


    Gute Nacht
    Jens

Jetzt mitmachen!

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