Hi Jonathan, On Friday 06 February 2009 17:56:23 Jonathan Roberts wrote: > Hi all, > > I am having a few problems with both a Quickcam Pro 9000 and a Creative > Live Optia AF camera on an embedded platform. Before I start digging > into the cause of the problems I thought I have better move to the > latest version of the UVC driver. > > The version of the driver that I have working was the last revision in > the old SVN repository. With this version I simply modified the makefile > to point to my Kernel directory and specified my tool chain on the > command line with a CROSS_COMPILE=.... parameter. > > With the latest version of UVC that I checked out of mercurial today, > the build process has become much more involved the build environment > does not seem to have any built in support for cross compilers unless I > am missing something. > > In order to cross compile the UVC module I modified the root makefile to > add a definition of CROSS_COMPILE and then changed the targets to: > > install: > $(MAKE) -C $(BUILD_DIR) CROSS_COMPILE=$(CROSS_COMPILE) install > %:: > $(MAKE) -C $(BUILD_DIR) CROSS_COMPILE=$(CROSS_COMPILE) > $(MAKECMDGOALS) > > In the v4l/Makefile I changed the SRCDIR and the OUTDIR to point to my > kernel source tree.
You're right, the current linuxtv.org build system doesn't support cross compilation out of the box. As this isn't uvcvideo specific, could you report the problem to the linux-media mailing list ? I'm sure they will welcome a fix. > Everything seems to build ok, but when I try and insert the module on my > target I get an error from insmod: > > insmod: cannot insert './uvcvideo.ko': unknown symbol in module > > dmesg shows the following: > > uvcvideo: disagrees about version of symbol video_devdata > uvcvideo: Unknown symbol video_devdata > uvcvideo: disagrees about version of symbol video_unregister_device > uvcvideo: Unknown symbol video_unregister_device > uvcvideo: disagrees about version of symbol video_device_alloc > uvcvideo: Unknown symbol video_device_alloc > uvcvideo: disagrees about version of symbol video_register_device > uvcvideo: Unknown symbol video_register_device > uvcvideo: disagrees about version of symbol video_usercopy > uvcvideo: Unknown symbol video_usercopy > uvcvideo: disagrees about version of symbol video_device_release > uvcvideo: Unknown symbol video_device_release > > I gather that this shows some sort of missmatch between the environment > that the module was built for and the environment on the target board. > Is that correct? Are these issues related to these messages that I get > when the modules are built?: > > WARNING: /uvcvideo/v4l/v4l2-common: 'v4l2_chip_ident_i2c_client' > exported twice. Previous export was in drivers/built-in.ko [snip] > Building the old code against the same kernel results in a module that > installs correctly, so I guess I have misconfigured something, but I am > not sure what! Any suggestions would be greatfully received. linuxtv.org Mercurial trees come with their own version of the video4linux subsystem. You will need to disable v4l in your kernel and use the modules provided by the uvcvideo tree. Best regards, Laurent Pinchart _______________________________________________ Linux-uvc-devel mailing list [email protected] https://lists.berlios.de/mailman/listinfo/linux-uvc-devel
