Probleme mit dem erstellen der v4l Treiber für ein ARM System

  • EDIT: Ein make modules_prepare im Kernelsourcenverzeichnis hatte ich vergessen. Nun klappt´s auch mit dem bauen. ;)


    Ich spiele derzeit in jeder freien Minute weiter mit dem Cubieboard herum, da ich die Hoffnung noch nicht aufgegeben habe selbst etwas hin zu bekommen.
    Mittlerweile habe ich ein lauffähiges Trusty Ubuntu mit dem Mainline Kernel 4.2.0-rc1-00062-gc4b5fd3 auf dem Board.
    Um die v4l zu kompilieren benötigt man ja die Kernelsourcen, ich will die Treiber auf dem Cubieboard selbst kompilieren.
    Ich habe daher das Quellverzeichniss des Kernels vom Entwicklungsrechner nach /usr/src/4.2.0-rc1-00062-gc4b5fd3 verschoben.
    Unter /lib/modules/4.2.0-rc1-00062-gc4b5fd3 liegen die beim kompilieren gebauten Kernelmodule.
    Die in dem Ordner befindlichen Symlinks build und source habe ich nach /usr/src/linux-4.2.0 verlinkt.
    So weit so gut (?).


    Wenn ich die Treiber bauen lassen will schlägt dies jedoch recht schnell fehl:


    Code
    make[2]: Entering directory `/usr/src/4.2.0-rc1-00062-gc4b5fd3'
      CC [M]  /root/media_build/v4l/msp3400-driver.o
    scripts/basic/fixdep: 1: scripts/basic/fixdep: Syntax error: "(" unexpected
    make[3]: *** [/root/media_build/v4l/msp3400-driver.o] Error 2
    make[2]: *** [_module_/root/media_build/v4l] Error 2
    make[2]: Leaving directory `/usr/src/4.2.0-rc1-00062-gc4b5fd3'
    make[1]: *** [default] Error 2
    make[1]: Leaving directory `/root/media_build/v4l'
    make: *** [all] Error 2
    build failed at ./build line 491.


    Die Datei fixdep ist eine Binärdatei. Oder meint er die fixdep.c?
    Ich weiss nicht wo ich anfangen könnte mit dem Fehlersuchen...
    Oder ist der Kernel zu neu und damit inkompatibel?
    Ich habe mir ausserdem testweise das Paket
    linux-headers-4.2.0-040200rc1_4.2.0-040200rc1.201507051635_all
    installiert und die Links mal dahin gebogen, funktioniert allerdings genau so wenig.
    :hilfe

  • Durch das fehlende make modules_prepare wurde fixdep nicht neu gebaut und hatte sicherlich eine falsche Architektur.


    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

  • Ich habe im allgemeinen wohl aber ein Problem mit den gebauten Modulen. Sie lassen sich nicht laden.
    es kommt immer die Meldung modprobe:

    Code
    ERROR: could not insert '[i]jeweiliger Modulname[/i]' : Exec format error


    Ich versuche jetzt noch einmal alles sauber von vorn zu beginnen, war zum Ende doch recht chaotisch und ich war mir nicht mehr sicher ob das die Kernelsourcen aus dem heruntergeladenen Paket waren oder die mit denen der Kernel gebaut wurde.
    Oder hat dieser Fehler eine andere Ursache?


    dmesg sagt nach dem versuchten laden:


    Code
    si2157: version magic '4.2.0-rc1-00062-gc4b5fd3-dirty SMP ARMv7 p2v8 ' should be '4.2.0-rc1-00062-gc4b5fd3 SMP ARMv7 p2v8 '


    Der hier beschriebene Workaround fnktioniert nicht, nach modprobe finde ich nach wie vor den gleichen Fehler vor.



    Ich habe auf einer Seite gelesen, dass zur Verwendung der v4l Treiber vor dem kompilieren des Kernels alles was mit DVB zu tun hat deaktiviert werden muss. Ist dem so?

  • Bau doch kernel, module und v4l direkt auf dem ARM ohne cross compiler - der kann in aller Ruhe in der Nacht werkeln.
    Zum Vergleich: Kernel bauen braucht auf einem banana (dual core) etwa 2-2,5h. Dann sollte das cubie doch in vier das gleiche schaffen.

  • Ich habe mir damit geholfen, dass ich den Kernel noch einmal kompiliert habe.
    Allerdings habe ich vorher unter scripts/setlocalversion die Versionskontrolle entschärft.
    Mein neuer alter Kernel ist jetzt nicht mehr "dirty" und die (ebenfalls noch einmal gebauten) Module werden geladen.



    Sieht meines Erachtens erstmal gut aus.
    Werde mich mal an den VDR machen...

  • Wenn jetzt noch die fw passt, wird die Karte funzen.

  • Funktioniert.
    Einige wichtige Plugins funktionieren noch nicht, aber ich denke mein "Projekt" ist auf einem guten Weg.


    Laut syslog funktioniert alles, ich kann jedoch nicht streamen. Kommt nichts an.

  • Ich habe mich da anscheinend zu früh gefreut.
    Mit der channels.conf von meinem anderen VDR empfange ich EPG Daten, sehe ich im kive plugin.
    Der Versuch einen Sender zu streamen schlägt jedoch fehl.
    w_scan scheint etwas zu finden, jedoch hinterlässt es dann doch eine leere channels.conf:




    Woran kann sowas liegen?

  • Ich habe mich da anscheinend zu früh gefreut.
    (..)
    Woran kann sowas liegen?



    Zitat


    Wenn jetzt noch die fw passt, wird die Karte funzen.

  • Das war es zum Glück nicht. Scheint sich um eine Art Hardwareproblem zu handeln.
    Wenn ich den Hub und alles andere entferne, funktioniert es.
    Bin mir nur noch nicht recht schlüssig ob es die Stromversorgung oder die "Peripheriegeräte" sind die da Probleme machen.

Jetzt mitmachen!

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