Archiv verlassen und diese Seite im Standarddesign anzeigen : SAA7134 Treiber kompilieren
Hallo.
Ich habe für meine TV-Karte den Kernel erfolgreich gepatcht und muss jetzt das Treiber-Modul
kompilieren (siehe hier) (http://bytesex.org/saa7134/).
Nach der Eingabe von 'make' erscheint folgender Fehler:
make -C /lib/modules/2.4.20/build SUBDIRS=/usr/src/saa7134-0.2.1 modules
make[1]: Entering directory `/usr/src/linux-2.4.20'
make -C /usr/src/saa7134-0.2.1 CFLAGS="-D__KERNEL__
-I/usr/src/linux-2.4.20/include -Wall -Wstrict-prototypes -Wno-trigraphs
-O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe
-mpreferred-stack-boundary=2 -march=i686 -DMODULE -DMODVERSIONS -include
/usr/src/linux-2.4.20/include/linux/modversions.h" MAKING_MODULES=1
modules
make[2]: Entering directory `/usr/src/saa7134-0.2.1'
gcc -D__KERNEL__ -I/usr/src/linux-2.4.20/include -Wall
-Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common
-fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i686
-DMODULE -DMODVERSIONS -include
/usr/src/linux-2.4.20/include/linux/modversions.h -nostdinc
-iwithprefix include -DKBUILD_BASENAME=video_buf -DEXPORT_SYMTAB -c
video-buf.c
In file included from video-buf.c:34:
video-buf.h:137: field `field' has incomplete type
video-buf.h:167: field `type' has incomplete type
video-buf.h:189: warning: parameter has incomplete type
video-buf.h:194: warning: parameter has incomplete type
video-buf.c:343: parameter `type' has incomplete type
video-buf.c:343: conflicting types for `videobuf_queue_init'
video-buf.h:189: previous declaration of `videobuf_queue_init'
video-buf.c:412: parameter `type' has incomplete type
video-buf.c:412: conflicting types for `videobuf_status'
video-buf.h:194: previous declaration of `videobuf_status'
video-buf.c: In function `videobuf_status':
video-buf.c:415: structure has no member named `m'
video-buf.c:435: structure has no member named `field'
video-buf.c:436: incompatible types in assignment
make[2]: *** [video-buf.o] Error 1
make[2]: Leaving directory `/usr/src/saa7134-0.2.1'
make[1]: *** [_mod_/usr/src/saa7134-0.2.1] Error 2
make[1]: Leaving directory `/usr/src/linux-2.4.20'
make: *** [default] Error 2
Weiß jemand woran das liegen könnte? :confused:
MfG
dk5hr
Powerful3D
09.12.02, 20:15
Da du sicher keine lust hast länger auf ne antwort warten zu müssen, hab ich dir mal kurz einen Link rausgesucht, wo der kram schritt für schritt erklährt wird.
http://www.ossi-industries.de/document/md9717.html
so wie es aussieht hast du nur ein paar module vergessen vorher zu installieren bzw. kompilieren :)
MfG P3D
@Powerful3D: Vielen Dank für den Link.
Aber ich habe ja schon alles bis zum Kompilieren des Treibers gemacht.
Und das ist der Punkt der nicht klappt (siehe obige Fehlermeldung).
Weiß niemand wo der Fehler liegen könnte?
MfG dk5hr
hast du vorher mal ein "make clean dep" gemacht?
anderenfalls ist da beim kernel-bauen ja nicht alles auf dem neusten stand.
Wenn ich 'make clean dep' im Treiberverzeichnis eingebe, löscht er ein paar Dateien und gibt folgende Meldung aus:
make: *** No rule to make target `dep'. Stop.
Oder soll ich 'make clean dep' vorm Kompilieren des Kernels eingeben?
MfG dk5hr
mmh sorry,
da hab ich mich wohl vertan,
ich dachte du hättest den treiber in den kernel reingepatcht.
das "make clean dep" bezog sich auf den kernel.
Also, ich hab den Kernel mit den Patches von http://bytesex.org/saa7134 gepatcht.
Nach einem neuen Kompilieren des Kernels muss ich noch extra einen Treiber als Modul kompilieren.
Das Patchen und Neukompilieren des Kernels verlief erfolgreich, nur beim Kompilieren des Treibers kommt oben beschriebene Fehlermeldung.
Ist das ein Vanilla 2.4.20 ?
Ja. Die originalen Vanilla 2.4.20 Sources bloß mit den Patches gepatcht.
Heute habe ich den neuen Treiber (Version 0.2.2) runtergeladen und versucht ihn zu kompilieren.
Allerdings kommt wieder ein ähnlicher Fehler wie oben beschrieben, diesmal ist er sogar ein bisschen länger:
make -C /lib/modules/2.4.20/build SUBDIRS=/usr/src/saa7134-0.2.2 modules
make[1]: Entering directory `/usr/src/linux-2.4.20'
make -C /usr/src/saa7134-0.2.2 CFLAGS="-D__KERNEL__ -I/usr/src/linux-2.4.20/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i686 -DMODULE -DMODVERSIONS -include /usr/src/linux-2.4.20/include/linux/modversions.h" MAKING_MODULES=1 modules
make[2]: Entering directory `/usr/src/saa7134-0.2.2'
gcc -D__KERNEL__ -I/usr/src/linux-2.4.20/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i686 -DMODULE -DMODVERSIONS -include /usr/src/linux-2.4.20/include/linux/modversions.h -nostdinc -iwithprefix include -DKBUILD_BASENAME=video_buf -DEXPORT_SYMTAB -c video-buf.c
In file included from video-buf.c:34:
video-buf.h:137: field `field' has incomplete type
video-buf.h:167: field `type' has incomplete type
video-buf.h:189: warning: parameter has incomplete type
video-buf.h:194: warning: `struct v4l2_buffer' declared inside parameter list
video-buf.h:194: warning: its scope is only this definition or declaration, which is probably not what you want
video-buf.h:194: warning: parameter has incomplete type
video-buf.h:196: warning: `struct v4l2_requestbuffers' declared inside parameter list
video-buf.h:197: warning: `struct v4l2_buffer' declared inside parameter list
video-buf.h:199: warning: `struct v4l2_buffer' declared inside parameter list
video-buf.h:201: warning: `struct v4l2_buffer' declared inside parameter list
video-buf.c:343: parameter `type' has incomplete type
video-buf.c:343: conflicting types for `videobuf_queue_init'
video-buf.h:189: previous declaration of `videobuf_queue_init'
video-buf.c:411: warning: `struct v4l2_buffer' declared inside parameter list
video-buf.c:412: parameter `type' has incomplete type
video-buf.c:412: conflicting types for `videobuf_status'
video-buf.h:194: previous declaration of `videobuf_status'
video-buf.c: In function `videobuf_status':
video-buf.c:413: dereferencing pointer to incomplete type
video-buf.c:414: dereferencing pointer to incomplete type
video-buf.c:415: dereferencing pointer to incomplete type
video-buf.c:416: dereferencing pointer to incomplete type
video-buf.c:417: dereferencing pointer to incomplete type
video-buf.c:419: dereferencing pointer to incomplete type
video-buf.c:419: `V4L2_BUF_FLAG_MAPPED' undeclared (first use in this function)
video-buf.c:419: (Each undeclared identifier is reported only once
video-buf.c:419: for each function it appears in.)
video-buf.c:424: dereferencing pointer to incomplete type
video-buf.c:424: `V4L2_BUF_FLAG_QUEUED' undeclared (first use in this function)
video-buf.c:428: dereferencing pointer to incomplete type
video-buf.c:428: `V4L2_BUF_FLAG_DONE' undeclared (first use in this function)
video-buf.c:435: dereferencing pointer to incomplete type
video-buf.c:436: dereferencing pointer to incomplete type
video-buf.c:437: dereferencing pointer to incomplete type
video-buf.c:438: dereferencing pointer to incomplete type
video-buf.c: At top level:
video-buf.c:443: warning: `struct v4l2_requestbuffers' declared inside parameter list
video-buf.c:444: conflicting types for `videobuf_reqbufs'
video-buf.h:196: previous declaration of `videobuf_reqbufs'
video-buf.c: In function `videobuf_reqbufs':
video-buf.c:447: dereferencing pointer to incomplete type
video-buf.c:449: dereferencing pointer to incomplete type
video-buf.c:453: dereferencing pointer to incomplete type
video-buf.c:463: dereferencing pointer to incomplete type
video-buf.c:464: dereferencing pointer to incomplete type
video-buf.c: At top level:
video-buf.c:472: warning: `struct v4l2_buffer' declared inside parameter list
video-buf.c:473: conflicting types for `videobuf_querybuf'
video-buf.h:197: previous declaration of `videobuf_querybuf'
video-buf.c: In function `videobuf_querybuf':
video-buf.c:474: dereferencing pointer to incomplete type
video-buf.c:476: dereferencing pointer to incomplete type
video-buf.c:476: dereferencing pointer to incomplete type
video-buf.c:478: dereferencing pointer to incomplete type
video-buf.c:480: dereferencing pointer to incomplete type
video-buf.c:480: warning: passing arg 1 of `videobuf_status' from incompatible pointer type
video-buf.c: At top level:
video-buf.c:486: warning: `struct v4l2_buffer' declared inside parameter list
video-buf.c:487: conflicting types for `videobuf_qbuf'
video-buf.h:199: previous declaration of `videobuf_qbuf'
video-buf.c: In function `videobuf_qbuf':
video-buf.c:497: dereferencing pointer to incomplete type
video-buf.c:499: dereferencing pointer to incomplete type
video-buf.c:499: dereferencing pointer to incomplete type
video-buf.c:501: dereferencing pointer to incomplete type
video-buf.c: At top level:
video-buf.c:529: warning: `struct v4l2_buffer' declared inside parameter list
video-buf.c:530: conflicting types for `videobuf_dqbuf'
video-buf.h:201: previous declaration of `videobuf_dqbuf'
video-buf.c: In function `videobuf_dqbuf':
video-buf.c:539: dereferencing pointer to incomplete type
video-buf.c:560: dereferencing pointer to incomplete type
video-buf.c:560: dereferencing pointer to incomplete type
video-buf.c:560: dereferencing pointer to incomplete type
video-buf.c:560: dereferencing pointer to incomplete type
video-buf.c:560: dereferencing pointer to incomplete type
video-buf.c:560: dereferencing pointer to incomplete type
video-buf.c:561: warning: passing arg 1 of `videobuf_status' from incompatible pointer type
make[2]: *** [video-buf.o] Error 1
make[2]: Leaving directory `/usr/src/saa7134-0.2.2'
make[1]: *** [_mod_/usr/src/saa7134-0.2.2] Error 2
make[1]: Leaving directory `/usr/src/linux-2.4.20'
make: *** [default] Error 2
Schade, dass die TV-Karte solche Probleme unter Linux macht. :(
Ich hoffe, dass mir jemand helfen kann.
Schliesslich will ich ja nicht immer zum Fernsehen Windoof booten :D
Wenn die TV-Karte endlich funktionieren würde, dann hätte ich einen Grund weniger Windows auf der Platte zu lassen ;)
MfG dk5hr
kippndreser
12.12.02, 22:47
Hallo!
so geht es nicht:
original Kernel unter /usr/src/linux-2.4.20
ge-patch-ter kernel unter /usr/src/linux-2.4.20-v4l
so geht es:
original Kernel unter /usr/src/linux-2.4.20-original gesichert
ge-patch-ter kernel unter /usr/src/linux-2.4.20
dann dann
Andreas
Ich hab meinen Original 2.4.20 Kernel in /usr/src/linux-2.4.20 einfach gepatcht und neu kompiliert.
Funktioniert es deshalb nicht? :confused:
kippndreser
13.12.02, 13:06
seltsam.. bei mir trat derselbe Fehler wie bei dir auf, wenn ich den gepatchten Kernel in einem "anderen" Verzeichnis hatte, z.B. /usr/src/linux-2.4.20-v4l2/
Nachdem ich das nach /usr/src/linux-2.4.20/ umbenannt hatte, gings.
tu nochmal nachkontrollieren ob das mit dem Patchen auch wirklich hingehauen hat, ganz speziell
/usr/src/linux-2.4.20/include/linux/videodev2.h
Wenn die nicht da ist oder neues Datum hat ging was falsch.
@kippndreser: Welche Patchs hast du benutzt? Ich hab nämlich alle von hier (http://bytesex.org/patches/2.4/) benutzt. Kann es vielleicht sein, dass ich gar nicht alle nehmen darf?
kippndreser
13.12.02, 23:29
Das hier ist der "Treiber" für die aldi-karte: http://bytesex.org/saa7134/saa7134-0.2.2.tar.gz
In diesem Archiv ist unter anderem eine README Datei.
da drin steht, daß man den kernel mit diesen beiden dateien patchen muß:
http://bytesex.org/patches/2.4/01_videodev-2.4.20.diff
http://bytesex.org/patches/2.4/11-v4l2-api-2.4.20.diff.gz
und damit sollte es klappen, bei mir gings zumindest.
dann dann
Andreas
p.s.: hast du die videodev2.h datei?
Juhuuuuuu. Endlich hat es geklappt. :cool:
Mein Fehler war, dass ich mit allen Patchs den Kernel gepatcht habe.
Jetzt habe ich nur 01_videodev-2.4.20.diff (http://bytesex.org/patches/2.4/01_videodev-2.4.20.diff) und 11-v4l2-api-2.4.20.diff.gz (http://bytesex.org/patches/2.4/11-v4l2-api-2.4.20.diff.gz ) genommen
und es funktioniert einwandfrei. :D
Vielen Dank an alle, die geholfen haben.
MfG dk5hr
kippndreser
14.12.02, 13:30
@dh5kr:
na optimal!
Es ist aber trotzdem seltsam daß das nicht geht wenn man die anderen Patches auch einspielt, speziell wenn das patchen keine Fehler oder Konflikte fabriziert.
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.