spca5xx on the ts7400

Thursday, June 19 2008 @ 05:23 PM MDT

Contributed by: holla

My ts7400 is taking pictures.

I have a Logitech USB QuickCam camera, ID 046d:092e. My desktop running 2.6.23.x can acquire images via the gspca from http://mxhaard.free.fr/download.html.

But what about the ts7400 running 2.4.26-ts11 with the TS Debian SD card.

I extracted and configured the source in /usr/src/linux, remember to 'make dep'.
cd /usr/src/linux
make menuconfig
Multimedia devices -> <M> Video For Linux
make modules
insmod drivers/media/video/videodev.o
If that all works, then
make modules_install
will put videodev.o in the correct place and setup the /lib/modules/2.4.26-ts11/build link correctly (which you'll need for the next step).


I extracted spca5xx-v4l1goodbye.tar.gz into /usr/src/spca5xx-v4l1goodbye
cd /usr/src/spca5xx-v4l1goodbye
I commented out 'CFLAGS += -mpreferred-stack-boundary=2' line, my gcc 3.3.6 was complaining about it.
make and take a break, the ts7400 isn't the speediest compiler
insmod spca5xx.o
dmesg
usb.c: registered new driver spca5xx
drivers/usb/spca5xx.c: USB SPCA5XX camera found.Logitech QuickCam chat (SPCA561A)
drivers/usb/spca5xx.c: [spca5xx_probe:5485] Camera type S561
drivers/usb/spca5xx.c: [spca5xx_getcapability:1767] maxw 352 maxh 288 minw 160 minh 120
drivers/usb/spca5xx.c: spca5xx driver 00.60.00.1 registered

Hey, the driver found my camera.

Took an image with
vgrabbj -d /dev/video0 -f first.jpg

------------

My first insmod spca5xx.o failed with 'unresolved symbol' errors.

root@ts7000[30]: insmod spca5xx.o
spca5xx.o: spca5xx.o: unresolved symbol video_devdata
spca5xx.o: spca5xx.o: unresolved symbol video_register_device
spca5xx.o: spca5xx.o: unresolved symbol video_unregister_device
spca5xx.o: spca5xx.o: unresolved symbol video_usercopy
spca5xx.o: spca5xx.o: unresolved symbol video_device_release
spca5xx.o: spca5xx.o: unresolved symbol video_device_alloc

I checked the kernels symbol table and found they existed but had version info.

root@ts7000[47]: grep video_devdata /proc/ksyms
d4062118 video_devdata_Ra6b6756c [videodev]

So I removed module versioning under 'Loadable module support' -> [ ] Set version information on all module symbols then recompiled. Checking the kernel symbol table again, this time no versioning.

root@ts7000[81]: grep video_devdata /proc/ksyms
d4062118 video_devdata [videodev]

insmod spca5xx.o completed successfully.



0 comments



http://www.embeddedlinuxinterfacing.com/article.php?story=20080619172334704