Hmm, it looks like the headers supplied by v4l-dvb are more "up-to-date" than the ones in the default ubuntu kernel (2.6.17-10-generic). In the file uvc_compat.h a check is performed to decide which version of the headers you have based on the LINUX_VERSION_CODE. So my kernel reports that it's at a version lower than 2.6.18 and the uvc_compat.h file then tries to define some things that are already in the headers supplied by v4l-dvb. So I changed the check so that I pass for a more up-to-date kernel and the module then builds fine without complaints. However, when loading the module I still get complaints about unresolved symbols? $ sudo insmod uvcvideo.ko insmod: error inserting 'uvcvideo.ko': -1 Unknown symbol in module $ dmesg [17185392.912000] uvcvideo: disagrees about version of symbol video_devdata [17185392.912000] uvcvideo: Unknown symbol video_devdata [17185392.912000] uvcvideo: disagrees about version of symbol video_unregister_device [17185392.912000] uvcvideo: Unknown symbol video_unregister_device [17185392.916000] uvcvideo: disagrees about version of symbol video_device_alloc [17185392.916000] uvcvideo: Unknown symbol video_device_alloc [17185392.916000] uvcvideo: disagrees about version of symbol video_register_device [17185392.916000] uvcvideo: Unknown symbol video_register_device [17185392.916000] uvcvideo: disagrees about version of symbol video_device_release [17185392.916000] uvcvideo: Unknown symbol video_device_release Damn, I was hoping that would have fixed it.:-) Perhaps I should check to see what uvcvideo relies on. -Brandon Drummond On Sat, 2007-01-27 at 16:04 -0800, Brandon Drummond wrote: > Ah, yes that makes sense. Unfortunately, after making the appropriate > kernel links the quickcam express module (qc-usb-0.6.5) rufuses to > build. I was using the module that comes in the ubuntu distribution > before, and I applied the kernel links command before trying to build my > own so I'm not sure if it's really the v4l-dvb headers that are causing > the problem. I do, however, own another webcam who's driver I have been > successfully compiling using the original headers that now refuses to > build with the headers supplied by the v4l-dvb distribution. It's the > linux-uvc driver https://linux-uvc.berlios.de/ > I receive the following errors when trying to compile using the supplied > headers: > Building USB Video Class driver... > make[1]: Entering directory `/usr/src/linux-headers-2.6.17-10-generic' > CC [M] /media/sda4/nijusan/drivers/linuxuvc/uvc_driver.o > In file included from /media/sda4/nijusan/drivers/linuxuvc/uvcvideo.h:8, > > from /media/sda4/nijusan/drivers/linuxuvc/uvc_driver.c:45: > /media/sda4/nijusan/drivers/linuxuvc/uvc_compat.h:11: error: > redefinition of ‘struct v4l2_ext_control’ > /media/sda4/nijusan/drivers/linuxuvc/uvc_compat.h:22: error: > redefinition of ‘struct v4l2_ext_controls’ > /media/sda4/nijusan/drivers/linuxuvc/uvc_compat.h:57: error: nested > redefinition of ‘enum v4l2_frmsizetypes’ > /media/sda4/nijusan/drivers/linuxuvc/uvc_compat.h:57: error: > redeclaration of ‘enum v4l2_frmsizetypes’ > /media/sda4/nijusan/drivers/linuxuvc/uvc_compat.h:58: error: > redeclaration of enumerator ‘V4L2_FRMSIZE_TYPE_DISCRETE’ > include/linux/videodev2.h:292: error: previous definition of > ‘V4L2_FRMSIZE_TYPE_DISCRETE’ was here > /media/sda4/nijusan/drivers/linuxuvc/uvc_compat.h:59: error: > redeclaration of enumerator ‘V4L2_FRMSIZE_TYPE_CONTINUOUS’ > include/linux/videodev2.h:293: error: previous definition of > ‘V4L2_FRMSIZE_TYPE_CONTINUOUS’ was here > /media/sda4/nijusan/drivers/linuxuvc/uvc_compat.h:60: error: > redeclaration of enumerator ‘V4L2_FRMSIZE_TYPE_STEPWISE’ > include/linux/videodev2.h:294: error: previous definition of > ‘V4L2_FRMSIZE_TYPE_STEPWISE’ was here > /media/sda4/nijusan/drivers/linuxuvc/uvc_compat.h:64: error: > redefinition of ‘struct v4l2_frmsize_discrete’ > /media/sda4/nijusan/drivers/linuxuvc/uvc_compat.h:70: error: > redefinition of ‘struct v4l2_frmsize_stepwise’ > /media/sda4/nijusan/drivers/linuxuvc/uvc_compat.h:80: error: > redefinition of ‘struct v4l2_frmsizeenum’ > /media/sda4/nijusan/drivers/linuxuvc/uvc_compat.h:94: error: nested > redefinition of ‘enum v4l2_frmivaltypes’ > /media/sda4/nijusan/drivers/linuxuvc/uvc_compat.h:94: error: > redeclaration of ‘enum v4l2_frmivaltypes’ > /media/sda4/nijusan/drivers/linuxuvc/uvc_compat.h:95: error: > redeclaration of enumerator ‘V4L2_FRMIVAL_TYPE_DISCRETE’ > include/linux/videodev2.h:332: error: previous definition of > ‘V4L2_FRMIVAL_TYPE_DISCRETE’ was here > /media/sda4/nijusan/drivers/linuxuvc/uvc_compat.h:96: error: > redeclaration of enumerator ‘V4L2_FRMIVAL_TYPE_CONTINUOUS’ > include/linux/videodev2.h:333: error: previous definition of > ‘V4L2_FRMIVAL_TYPE_CONTINUOUS’ was here > /media/sda4/nijusan/drivers/linuxuvc/uvc_compat.h:97: error: > redeclaration of enumerator ‘V4L2_FRMIVAL_TYPE_STEPWISE’ > include/linux/videodev2.h:334: error: previous definition of > ‘V4L2_FRMIVAL_TYPE_STEPWISE’ was here > /media/sda4/nijusan/drivers/linuxuvc/uvc_compat.h:101: error: > redefinition of ‘struct v4l2_frmival_stepwise’ > /media/sda4/nijusan/drivers/linuxuvc/uvc_compat.h:108: error: > redefinition of ‘struct v4l2_frmivalenum’ > make[2]: *** [/media/sda4/nijusan/drivers/linuxuvc/uvc_driver.o] Error 1 > make[1]: *** [_module_/media/sda4/nijusan/drivers/linuxuvc] Error 2 > make[1]: Leaving directory `/usr/src/linux-headers-2.6.17-10-generic' > make: *** [uvcvideo] Error 2 > > This is a v4l2-only driver. I notice there are some incompatibilities > between the v4l-dvb's videodev2.h header file and the uvc_compat.h > header supplied by the wedcam module. What are the differences between > the stock v4l headers and those supplied by the v4l-dvb distribution? > > Cheers, > -Brandon Drummond > > On Fri, 2007-01-26 at 22:31 -0800, Trent Piepho wrote: > > On Fri, 26 Jan 2007, Brandon Drummond wrote: > > > [17181665.160000] Linux video capture interface: v2.00 > > > [17181665.196000] quickcam: disagrees about version of symbol > > > video_devdata > > > [17181665.196000] quickcam: Unknown symbol video_devdata > > > > > > At first glance one would assume that this arose from compilation under > > > a different kernel, but that is not the case. I am aware that this is a > > > known issue, but I have a couple of questions: > > > > Effectively, it _is_ from compiling under a different kernel. The modules > > from v4l-dvb, like videodev.ko, were compiled using the source from > > v4l-dvb. The out of tree quickcam driver was compiled using the source > > from your kernel. videodev.ko and quickcam.ko were compiled with different > > versions of header files they both use, like videodev.h, and so the two > > modules will not work together. > > > > You have this same problem if you try to compile the latest ALSA sources > > and use those modules with a sound driver that isn't part of the ALSA > > source. > > > > A solution would be the use the "make kernel-links" command in v4l-dvb, > > which will install the v4l-dvb source into your kernel source. Now if you > > compile quickcam against that upgraded kernel source, it should use the > > same headers that v4l-dvb used, and so work with the v4l-dvb modules. > > > _______________________________________________ > linux-dvb mailing list > linux-dvb@xxxxxxxxxxx > http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb _______________________________________________ linux-dvb mailing list linux-dvb@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb