The Webcam HOWTO
Prev |  | Next

# 5. Troubleshooting

## 5.1. Help, I have a USB webcam and don't know exactly what model it is and/or who the manufacturer is. What do I do?

Use lsusb; it can give you an idea of what other USB devices are available on your system, too:

       $  lsusb
       Bus 007 Device 001: ID 0000:0000
       Bus 006 Device 001: ID 0000:0000
       Bus 005 Device 001: ID 0000:0000
       Bus 004 Device 001: ID 0000:0000
       Bus 003 Device 003: ID 0545:8080 Xirlink, Inc. IBM C-It WebCam
       Bus 003 Device 002: ID 046d:0840 Logitech, Inc. QuickCam Express
       Bus 003 Device 001: ID 0000:0000
       Bus 002 Device 003: ID 051d:0002 American Power Conversion Back-UPS Pro 500/1000/1500
       Bus 002 Device 001: ID 0000:0000
       Bus 001 Device 001: ID 0000:0000

The numbers after 'ID' are the Vendor and Product numbers, respectively. They can then be looked up in the Linux USB ID catalog.

If lsusb is not available to you, and you have support for `/proc` filesystem support and USB-filesystem support, issue the following at the command line:

       $  cat /proc/bus/usb/devices

You should receive output including (but not necessarily limited to) the following:

       T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=3 Spd=12 MxCh=0
       D:  Ver= 1.01 Cls=ff(vend.) Sub=ff Prot=ff MxPS=8 #Cfgs=1
       P:  Vendor=0545 ProdID=8080 Rev= 3.0a
       S:  Product=USB IMAGING DEVICE

The line beginning "T:" is the USB bus the device is attached to. The "P:" indicates (obviously) the vendor and product ID, which are catalogued at the linux USB Project homepage.

## 5.2. Help, I can't find the camera device in `/dev`!

Assuming your connection type is supported, and your camera is working, see Section 3.1.

## 5.3. Help, I can see the camera device (both in person and as a device node in `/dev`), but I can't access it!

See Section 3.2.

## 5.4. Help, my camera has a driver that is source-only, i.e., has to be built by me! Where do I start?

First, check if your Linux distribution offers a pre-compiled binary of the driver. You can then load it as you normally would for a module. If that is not the case, be sure you have kernel sources installed. You will also need at a minimum GNU make, gcc, binutils and perhaps other programs installed depending on your distribution. (Debian users should see the next section for instructions specific to that distribution.)

Download the driver source (in this example named `src.tar.gz`) and uncompress/untar it:

       $  tar -xvzf src.tar.gz

Then, change to the directory of your kernel source:

       #  cd /usr/src/linux

Make the necessary source files:

       #  make oldconfig # make dep

Now, change to the directory where you unpacked the driver source and read the README and/or INSTALL files for instructions on how to make the driver. Usually this involves some combination of "make" "make all" and/or "make install." Assuming it compiles correctly, you can simply load the new module with modprobe. If you have any problems, see Section 5.7.

## 5.5. I am using Debian GNU/Linux. Is there an easier way to go through all this kernel compiling stuff and building of source modules?

It is far simpler, in your author's humble opinion, to use the automated `kernel-package` utility. First, install it and the dependencies using apt-get. Next, install the kernel source that you want (e.g., apt-get install kernel-source-2.X.X). Untar the bzip2'd kernel source with tar -xvjf and then make a symbolic link called `linux` that points to the new source:

       #  ln -s /usr/src/kernel-source-2.X.X /usr/src/linux

Then cd /usr/src/linux and clean: make-kpkg clean, followed by make menuconfig or make xconfig as you would if compiling a new kernel. Next, you can use make-kpkg kernel_image and then install your new kernel package that has been deposited in `/usr/src` with dpkg -i ../kernel-image-2.X.X. Next, you can get the pre-packaged source driver using `apt`. So, in the case of the Quickcam Express, the package is `qc-usb-source`:

       #  apt-get install qc-usb-source

...and untar the archive:

       #  tar -xvzf qc-usb-modules.tar.gz

This will uncompress the source into the `/usr/src/modules` directory. The final step, while still in `/usr/src/linux` is to make the modules with kernel-package:

       #  make-kpkg modules_image

Install the new package, in `/usr/src/`, called `qc-usb-modules-[arch].deb` using dpkg -i. Finally, load the module:

       #  modprobe quickcam

Check the documentation in /usr/share/doc/kernel-package for any problems.

## 5.6. Help, my camera is supported by a driver that has to be patched into my kernel! What do I do?

See the section on patching of the Kernel-HOWTO at The Linux Documentation Project.

The short and unguaranteed version of patching, by your humble author, goes as follows: Be sure you have the same prerequisites outlined in Section 5.4 installed. First, on the command line or in an xterm change to the source directory of the kernel version you are (or will be) running with the camera patch (in this example named `patch.diff`).

       #  cd /usr/src/linux
       #  patch -p1 -E patch.diff

You should see a confirmation that the 'hunks' were successfully applied. At this point, you can make menuconfig or whatever program you use to recompile, enabling the appropriate support. If any of the hunks failed, or you run into any problems in addition to the link referenced above you, should consult man patch and Section 5.7.

## 5.7. Help--as in, where can I get more of it?

See the video4linux mailing list headquarters at https://listman.redhat.com/mailman/listinfo/video4linux-list.

## 5.8. Help, I want to contribute to Video4Linux support in Linux! Who do I get in touch with?

See this page.

Prev | Home | Next
Framegrabbing Applications |  | Gnu Free Documentation License