Hi Filippo, On Saturday 23 February 2008, Filippo Argiolas wrote: > Il giorno ven, 22/02/2008 alle 09.02 +0100, Filippo Argiolas ha scritto: > > Il giorno gio, 21/02/2008 alle 23.45 +0100, Laurent Pinchart ha scritto: > > > uvc_compat.h defines macros, structures and functions not available in > > > older kernels to enable the UVC driver to be built on Linux kernels > > > starting at 2.6.15. > > > > > > Which macros are defined depends on the kernel version. As the v4l-dvb > > > tree includes V4L2 headers more recent than the kernel you are building > > > for, uvc_compat.h will redefine symbols. > > > > > > You can safely modify uvc_compat.h to remove all macros and structures > > > that are already defined in v4l-dvb. > > > > I've removed all redefinitions from uvc_compat.h untill I got no > > warnings and errors, the driver compiled successfully but if I try to > > insmod it gives me again an unknonw symbol error: > > > > [EMAIL PROTECTED]:~/linux-uvc$ sudo insmod uvcvideo.ko > > insmod: error inserting 'uvcvideo.ko': -1 Unknown symbol in module > > > > [EMAIL PROTECTED]:~/linux-uvc$ dmesg > > [ 1402.632000] uvcvideo: disagrees about version of symbol video_devdata > > [ 1402.632000] uvcvideo: Unknown symbol video_devdata > > [ 1402.632000] uvcvideo: disagrees about version of symbol > > video_unregister_device > > [ 1402.632000] uvcvideo: Unknown symbol video_unregister_device > > [ 1402.632000] uvcvideo: disagrees about version of symbol > > video_device_alloc > > [ 1402.632000] uvcvideo: Unknown symbol video_device_alloc > > [ 1402.632000] uvcvideo: disagrees about version of symbol > > video_register_device > > [ 1402.632000] uvcvideo: Unknown symbol video_register_device > > [ 1402.632000] uvcvideo: disagrees about version of symbol > > video_device_release > > [ 1402.632000] uvcvideo: Unknown symbol video_device_release > > > > Note that I tried removing redefinitions one by one and even changing > > line 143: > > #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26) to > > #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,26) > > > > Both methods give no compile errors but the unknown symbol error is the > > same. > > Any idea? > > Thank you again! > > > > Filippo > > Great!! I've solved it! :D :D
Congratulations :-) > I don't know if this is the right way to do it but it worked. It seems > that, when uvcvideo.mod.c is created, version checksums are taken > from /lib/modules/`uname -r`/build/Module.symvers. But this checksums > are not updated with v4l-dvb mercurial symbol versions, so I've copied > Module.symvers from the v4l-dvb tree to linux-uvc tree and recompiled. > Now version checksums are ok, so the module loads with no error :D. > Please tell me if I did something wrong, Your explanation makes sense and your solution seems correct. The v4l-dvb installation process should update Module.symvers. You should send a mail to the v4l-dvb developers to complain about that. Thanks for posting the solution on the list, that will probably be helpful for other v4l-dvb users. Best regards, Laurent Pinchart _______________________________________________ Linux-uvc-devel mailing list [email protected] https://lists.berlios.de/mailman/listinfo/linux-uvc-devel
