USB Webcam

From Freephile Wiki
Jump to navigation Jump to search

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.