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 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, Thanks again Filippo _______________________________________________ Linux-uvc-devel mailing list [email protected] https://lists.berlios.de/mailman/listinfo/linux-uvc-devel
