Difference between revisions of "USB Webcam"

From Freephile Wiki
Jump to navigation Jump to search
(tagged)
(Detailing the saga of getting my webcam working with my Free OS)
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
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.
+
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:
 
Installed the following packages:
camorama (0.17-4)
+
camorama (0.17-4)
gqcam (0.9.1-3)
+
gqcam (0.9.1-3)
v4l-conf (3.94-1.0)
+
v4l-conf (3.94-1.0)
libzvbi-common (0.2.17-5)
+
libzvbi-common (0.2.17-5)
libzvbi0 (0.2.17-5)
+
libzvbi0 (0.2.17-5)
pia (3.94-1.0)
+
pia (3.94-1.0)
scantv (3.94-1.0)
+
scantv (3.94-1.0)
xawtv (3.94-1.0)
+
xawtv (3.94-1.0)
xawtv-plugin-qt (3.94-1.0)
+
xawtv-plugin-qt (3.94-1.0)
xawtv-plugins (3.94-1.0)
+
xawtv-plugins (3.94-1.0)
xawtv-tools (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.
 
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.
Line 20: Line 20:
 
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 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
+
I searched around for how to make this special device file, and found the command mknod.  After  
man mknod
+
man mknod  
and
+
and  
info coreutils mknod
+
info coreutils mknod  
 
I issued what I thought would be the final magic:
 
I issued what I thought would be the final magic:
mknod /dev/video0 c 81 0; chmod -v 666 /dev/video?
+
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.
 
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:
 
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
+
user@liberty:~$ uname -r
2.6.12-1-k7
+
2.6.12-1-k7
user@liberty:~$ ls -R /lib/modules/`uname -r`/kernel | grep video
+
user@liberty:~$ ls -R /lib/modules/`uname -r`/kernel | grep video
video
+
video
video.ko
+
video.ko
video1394.ko
+
video1394.ko
video
+
video
/lib/modules/2.6.12-1-k7/kernel/drivers/media/video:
+
/lib/modules/2.6.12-1-k7/kernel/drivers/media/video:
video-buf-dvb.ko
+
video-buf-dvb.ko
video-buf.ko
+
video-buf.ko
videocodec.ko
+
videocodec.ko
videodev.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/ovcamchip:
/lib/modules/2.6.12-1-k7/kernel/drivers/media/video/saa7134:
+
/lib/modules/2.6.12-1-k7/kernel/drivers/media/video/saa7134:
usbvideo.ko
+
usbvideo.ko
/lib/modules/2.6.12-1-k7/kernel/drivers/video:
+
/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/aty:
/lib/modules/2.6.12-1-k7/kernel/drivers/video/backlight:
+
/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/console:
/lib/modules/2.6.12-1-k7/kernel/drivers/video/geode:
+
/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/i810:
/lib/modules/2.6.12-1-k7/kernel/drivers/video/intelfb:
+
/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/kyro:
/lib/modules/2.6.12-1-k7/kernel/drivers/video/matrox:
+
/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/nvidia:
/lib/modules/2.6.12-1-k7/kernel/drivers/video/riva:
+
/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/savage:
/lib/modules/2.6.12-1-k7/kernel/drivers/video/sis:
+
/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.
 
It seemed like I had plenty of video-related modules installed for my kernel.  Needed to do more sleuthing.
  
The [http://www.linux.com/howtos/Webcam-HOWTO/hardware.shtml 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 [http://www.linux.com/howtos/Webcam-HOWTO/devices.shtml page on specific models]
+
The [http://www.linux.com/howtos/Webcam-HOWTO/hardware.shtml 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 [http://www.linux.com/howtos/Webcam-HOWTO/devices.shtml page on specific models]  
 
listed only one Intel camera model.
 
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)
 
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
+
That page led me to both the Intel website  
 
* http://www.intel.com/support/createshare/sb/cs-015528.htm
 
* http://www.intel.com/support/createshare/sb/cs-015528.htm
 
* http://support.intel.com/support/createshare/camerapack/v5/provideo/
 
* http://support.intel.com/support/createshare/camerapack/v5/provideo/
Line 73: Line 73:
 
and the [http://spca50x.sourceforge.net/spca50x.php?page=cams spca50x project site] on sourceforge for the driver
 
and the [http://spca50x.sourceforge.net/spca50x.php?page=cams spca50x project site] on sourceforge for the driver
  
Now I was getting somewhere.
+
Now I was getting somewhere.  
 
{| border="1" cellpadding="2"
 
{| border="1" cellpadding="2"
 
| Camera || Vendor ID || Device ID || Bridge || Sensor || Supported?
 
| Camera || Vendor ID || Device ID || Bridge || Sensor || Supported?
 
|-
 
|-
| Intel PC Camera Pro Pack (CS430)<br /> Intel Pro PC Camera (CS430)<br /> Intel Pro Web Cam
+
| Intel PC Camera Pro Pack (CS430)<br /> Intel Pro PC Camera (CS430)<br /> Intel Pro Web Cam  
 
| 0733
 
| 0733
| 0430
+
| 0430  
| spca505
+
| spca505  
| SAA7113 (or is it the Hitachi HD49323?)
+
| SAA7113 (or is it the Hitachi HD49323?)  
 
| Yes
 
| Yes
 
|}
 
|}
  
 
There is a nice page called '[http://spca50x.sourceforge.net/spca50x.php?page=tools 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.
 
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 [http://home.comcast.net/~andrex/Debian-nVidia/index.html compiling nVidia drivers for Debian] that walks you through the process.  I also found that [http://packages.debian.org/unstable/misc/spca5xx-source 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.
 
 
[[Category:Multimedia]]
 
[[Category:Video]]
 
[[Category:Help]]
 
[[Category:Howto]]
 
[[Category:USB]]
 

Revision as of 23:42, 7 March 2006

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


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