USB Webcam

From Freephile Wiki

I started out thinking that it would just work... being USB and having already used my Canon digital camera via USB, my external DVD drive via USB, USB printer, USB keyboard and mouse. But no. The camera is a bit trickier. So I decided to use apt-get (actually Synaptic) to search for webcam software and install those to make life easier.

Installed the following packages: camorama (0.17-4) gqcam (0.9.1-3) v4l-conf (3.94-1.0) libzvbi-common (0.2.17-5) libzvbi0 (0.2.17-5) pia (3.94-1.0) scantv (3.94-1.0) xawtv (3.94-1.0) xawtv-plugin-qt (3.94-1.0) xawtv-plugins (3.94-1.0) xawtv-tools (3.94-1.0)

Trying these, they each complained about not having /dev/video0. Some page talked about using modconf to configure the kernel modules in your OS, but modconf doesn't exist on my system.

I tried the freshly installed Video For Linux configuration tool v4l-conf - but it complained about not having /dev/video0

I tried xawtv, not because I was going to watch TV (I don't even have a TV tuner card), but because it supposedly is good at configuring your system and will even make the /dev/video0 file for you if not present. That didn't work.

I searched around for how to make this special device file, and found the command mknod. After man mknod and info coreutils mknod I issued what I thought would be the final magic: mknod /dev/video0 c 81 0; chmod -v 666 /dev/video?

But that didn't appease the aforementioned programs at all. gqcam didn't work. A reboot didn't seem to get the kernel to recognize and load necessary modules automatically for the new hardware. lsusb listed the device, but didn't offer much else. dmesg also did not list any camera related information. I was starting to get puzzled and more motivated.

I found out that I could list the kernel modules available for my architecture with a recursive listing of the proper lib/modules directory, which you can get by inserting your appropriate kernel version: user@liberty:~$ uname -r 2.6.12-1-k7 user@liberty:~$ ls -R /lib/modules/`uname -r`/kernel | grep video video video.ko video1394.ko video /lib/modules/2.6.12-1-k7/kernel/drivers/media/video: video-buf-dvb.ko video-buf.ko videocodec.ko videodev.ko /lib/modules/2.6.12-1-k7/kernel/drivers/media/video/ovcamchip: /lib/modules/2.6.12-1-k7/kernel/drivers/media/video/saa7134: usbvideo.ko /lib/modules/2.6.12-1-k7/kernel/drivers/video: /lib/modules/2.6.12-1-k7/kernel/drivers/video/aty: /lib/modules/2.6.12-1-k7/kernel/drivers/video/backlight: /lib/modules/2.6.12-1-k7/kernel/drivers/video/console: /lib/modules/2.6.12-1-k7/kernel/drivers/video/geode: /lib/modules/2.6.12-1-k7/kernel/drivers/video/i810: /lib/modules/2.6.12-1-k7/kernel/drivers/video/intelfb: /lib/modules/2.6.12-1-k7/kernel/drivers/video/kyro: /lib/modules/2.6.12-1-k7/kernel/drivers/video/matrox: /lib/modules/2.6.12-1-k7/kernel/drivers/video/nvidia: /lib/modules/2.6.12-1-k7/kernel/drivers/video/riva: /lib/modules/2.6.12-1-k7/kernel/drivers/video/savage: /lib/modules/2.6.12-1-k7/kernel/drivers/video/sis:

It seemed like I had plenty of video-related modules installed for my kernel. Needed to do more sleuthing.

The webcam HOWTO at Linux.com seemed to offer good information, but I was not imediately aware that my device used the SPCA50X chipset. What's worse, their page on specific models listed only one Intel camera model.

But then I found info on the Intel CS430 at http://www.qbik.ch/usb/devices/showdev.php?id=153 (aside, if you have a [malformed] URL like http://http//www.foo.com and you're using Firefox, it will use the Google Search 'I'm Feeling Lucky' search option which points to Microsoft.com for all such queries)

That page led me to both the Intel website

and the spca50x project site on sourceforge for the driver

Now I was getting somewhere.

Camera Vendor ID Device ID Bridge Sensor Supported?
Intel PC Camera Pro Pack (CS430)
Intel Pro PC Camera (CS430)
Intel Pro Web Cam
0733 0430 spca505 SAA7113 (or is it the Hitachi HD49323?) Yes


There is a nice page called 'tools' that lists some of the techniques such as cat /proc/bus/usb/devices or usbview for finding out more information about your USB hubs and devices

Once I got to the download page, I realized that it was packaged for many distributions. I then searched for it in synaptic and click done.

I'll have to stop here and pick up later.


Maybe not done after all.

The binary package did not match my kernel version (uname -r) and I think that is why nothing worked even after installing it.

To compile a device driver, and load that into your kernel is somewhat of a challenge. I found a nice site about compiling nVidia drivers for Debian that walks you through the process. I also found that downloading the source and viewing the README was helpful because there is a lot of information in there. There is also the dev mailing list for the project http://lists.zerezo.com/spca50x-devs/

I think I'm going to have to save this for another day.