On Thursday 21 February 2008, Filippo Argiolas wrote: > Il giorno gio, 21/02/2008 alle 12.03 -0800, Brandon Philips ha scritto: > > What are those errors? > > Ok here's a summary of the errors I get with different situations: > > 1. uvcvideo bundled with ubuntu gutsy (kernel 2.6.22-14-generic) after > the v4l-dvb mercurial installation, dmesg output: > > [26144.476000] uvcvideo: disagrees about version of symbol video_devdata > [26144.476000] uvcvideo: Unknown symbol video_devdata > [26144.476000] uvcvideo: disagrees about version of symbol > video_unregister_device > [26144.476000] uvcvideo: Unknown symbol video_unregister_device > [26144.476000] uvcvideo: disagrees about version of symbol > video_device_alloc > [26144.476000] uvcvideo: Unknown symbol video_device_alloc > [26144.476000] uvcvideo: disagrees about version of symbol > video_register_device > [26144.476000] uvcvideo: Unknown symbol video_register_device > [26144.476000] uvcvideo: disagrees about version of symbol > video_device_release > [26144.476000] uvcvideo: Unknown symbol video_device_release > > > 2. After running make kernel-links from the v4l-dvb tree (it updates > symlinks in /lib/modules/`uname -r`/build to point to the v4l-dvb source > tree), I get these compile errors with linux-uvc: > > In file included from /home/pippo/linux-uvc/uvcvideo.h:8, > from /home/pippo/linux-uvc/uvc_driver.c:45: > /home/pippo/linux-uvc/uvc_compat.h:147:1: warning: > "V4L2_CTRL_CLASS_CAMERA" redefined > In file included from include/linux/videodev.h:16, > from /home/pippo/linux-uvc/uvc_driver.c:36: > include/linux/videodev2.h:798:1: warning: this is the location of the > previous definition > In file included from /home/pippo/linux-uvc/uvcvideo.h:8, > from /home/pippo/linux-uvc/uvc_driver.c:45: > /home/pippo/linux-uvc/uvc_compat.h:150: error: nested redefinition of > ‘enum v4l2_power_line_frequency’ > /home/pippo/linux-uvc/uvc_compat.h:150: error: redeclaration of ‘enum > v4l2_power_line_frequency’ > /home/pippo/linux-uvc/uvc_compat.h:151: error: redeclaration of > enumerator ‘V4L2_CID_POWER_LINE_FREQUENCY_DISABLED’ > include/linux/videodev2.h:874: error: previous definition of > ‘V4L2_CID_POWER_LINE_FREQUENCY_DISABLED’ was here > /home/pippo/linux-uvc/uvc_compat.h:152: error: redeclaration of > enumerator ‘V4L2_CID_POWER_LINE_FREQUENCY_50HZ’ > include/linux/videodev2.h:875: error: previous definition of > ‘V4L2_CID_POWER_LINE_FREQUENCY_50HZ’ was here > /home/pippo/linux-uvc/uvc_compat.h:153: error: redeclaration of > enumerator ‘V4L2_CID_POWER_LINE_FREQUENCY_60HZ’ > include/linux/videodev2.h:876: error: previous definition of > ‘V4L2_CID_POWER_LINE_FREQUENCY_60HZ’ was here > /home/pippo/linux-uvc/uvc_compat.h:165: error: nested redefinition of > ‘enum v4l2_exposure_auto_type’ > /home/pippo/linux-uvc/uvc_compat.h:165: error: redeclaration of ‘enum > v4l2_exposure_auto_type’ > /home/pippo/linux-uvc/uvc_compat.h:166: error: redeclaration of > enumerator ‘V4L2_EXPOSURE_MANUAL’ > include/linux/videodev2.h:1077: error: previous definition of > ‘V4L2_EXPOSURE_MANUAL’ was here > /home/pippo/linux-uvc/uvc_compat.h:167: error: redeclaration of > enumerator ‘V4L2_EXPOSURE_AUTO’ > include/linux/videodev2.h:1076: error: previous definition of > ‘V4L2_EXPOSURE_AUTO’ was here > /home/pippo/linux-uvc/uvc_compat.h:168: error: redeclaration of > enumerator ‘V4L2_EXPOSURE_SHUTTER_PRIORITY’ > include/linux/videodev2.h:1078: error: previous definition of > ‘V4L2_EXPOSURE_SHUTTER_PRIORITY’ was here > /home/pippo/linux-uvc/uvc_compat.h:170: error: redeclaration of > enumerator ‘V4L2_EXPOSURE_APERTURE_PRIORITY’ > include/linux/videodev2.h:1080: error: previous definition of > ‘V4L2_EXPOSURE_APERTURE_PRIORITY’ was here > make[2]: *** [/home/pippo/linux-uvc/uvc_driver.o] Error 1 > make[1]: *** [_module_/home/pippo/linux-uvc] Error 2 > make: *** [uvcvideo] Error 2
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. Best regards, Laurent Pinchart _______________________________________________ Linux-uvc-devel mailing list [email protected] https://lists.berlios.de/mailman/listinfo/linux-uvc-devel
