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

Reply via email to