Hallo,
ich versuche geraden den Treiber für die S2-6400 zu übersetzen.
Unter Linux Mint 12 Lisa bin ich mit der Beschreibung von http://www.vdr-wiki.de/wiki/index.php…0_-_DVB_Treiber erfolgreich gewesen.
Unter Ubuntu 12.10. schlägt make ziemlich schnell fehl:
...
CC [M] /usr/local/src/media_build_experimental/v4l/altera-lpt.o
CC [M] /usr/local/src/media_build_experimental/v4l/altera-jtag.o
CC [M] /usr/local/src/media_build_experimental/v4l/altera-comp.o
CC [M] /usr/local/src/media_build_experimental/v4l/altera.o
CC [M] /usr/local/src/media_build_experimental/v4l/au0828-core.o
In file included from /usr/local/src/media_build_experimental/v4l/../linux/include/media/v4l2-device.h:25:0,
from /usr/local/src/media_build_experimental/v4l/au0828.h:30,
from /usr/local/src/media_build_experimental/v4l/au0828-core.c:28:
/usr/local/src/media_build_experimental/v4l/../linux/include/media/v4l2-subdev.h:523:49: warning: 'struct v4l2_subdev_edid' declared inside parameter list [enabled by default]
/usr/local/src/media_build_experimental/v4l/../linux/include/media/v4l2-subdev.h:523:49: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
/usr/local/src/media_build_experimental/v4l/../linux/include/media/v4l2-subdev.h:524:49: warning: 'struct v4l2_subdev_edid' declared inside parameter list [enabled by default]
In file included from /usr/local/src/media_build_experimental/v4l/au0828.h:36:0,
from /usr/local/src/media_build_experimental/v4l/au0828-core.c:28:
/usr/local/src/media_build_experimental/v4l/dvb_frontend.h:358:23: error: field 'interleaving' has incomplete type
make[3]: *** [/usr/local/src/media_build_experimental/v4l/au0828-core.o] Error 1
make[2]: *** [_module_/usr/local/src/media_build_experimental/v4l] Error 2
make[2]: Leaving directory `/usr/src/linux-headers-3.5.0-23-generic'
make[1]: *** [default] Error 2
make[1]: Leaving directory `/usr/local/src/media_build_experimental/v4l'
make: *** [all] Error 2
Display More
I habe noch herausgefunden, dass der undefinierte type fe_interleaving eigentlich in /usr/src/linux.../include/linux/dvb/frontend.h definiert ist und zwar direkt nach fe_hierarchy.
In meinen Headerfiles fehlt der typedef.
I habe noch versucht die fehlerhafte Zeile in dvb_frontend.h auszukommentieren, da ich die Hoffung hatte, dass 'interleaving' gar nicht gebraucht wird.
Leider hat das einige Objectfiles später zum nächsten Fehler geführt. Jetzt hat sich der Kompiler beklagt, dass "SYS_DTMB" nicht definiert ist.
Da es sich hierbei wieder um eine Definition aus einem linux header handelt, bin ich mir ziemlich sicher, dass meine media_build_experimental Sourcen nicht zu meinen Kernelheadern passen.
Eine Idee, was ich falsch mache?