2.1. Drivers and Modules
For your webcam to work you will need support for the connection and support for the actual camera hardware. Those who are already versed in kernels and modules and how to load them should skip to Section 2.2 , which addresses support of the connection type. If you know your USB, IEEE 1394 or whatever bus you will be connecting your camera to is already configured and working, you should move on to the list of specific webcam hardware listed in Section 2.3 .
Webcam drivers are usually available one of three ways: within the kernel, as a compilable stand alone module, or available as a pre-compiled (packaged) binary driver from your Linux distribution.
2.1.1. Module or In-Kernel?
As a rule, often the stock kernel, or working part of the operating system, of your initial installation may already have support for what you need. Your Linux distribution vendor has likely enabled the most common options already, including the bus, or connection type, and drivers for common camera models. The driver exists either as a loadable module or within the already running kernel.
An easy way to tell if the driver is enabled is to use the dmesg command piped into less (for easy paging) to look for an acknowledgement that it was loaded when your system started up:
$ dmesg | less
...which may yield something like the following, depending on your hardware:
Dec 18 17:35:18 localhost kernel: hub 5-0:1.0: USB hub found
Dec 18 17:35:18 localhost kernel: hub 5-0:1.0: 2 ports detected
Dec 18 17:35:18 localhost kernel: Linux video capture interface: v1.00
Dec 18 17:35:18 localhost kernel: quickcam: QuickCam USB camera found (driver version QuickCam USB $Date: 2005/01/07 13:29:53 $)
Dec 18 17:35:18 localhost kernel: quickcam: Kernel:2.6.7 bus:1 class:FF subclass:FF vendor:046D product:0840
Dec 18 17:35:18 localhost kernel: quickcam: Sensor HDCS-1000/1100 detected
Dec 18 17:35:18 localhost kernel: quickcam: Registered device: /dev/video0
Dec 18 17:35:18 localhost kernel: usbcore: registered new driver quickcam
If you don't see it, the particular driver may exist as a loadable module. If you know what that module is named, try using find ; in this example we are looking for the 'ibmcam' module:
$ find /lib/modules -name ibmcam.o
Note that up until the 2.4 series modules had the suffix .o ; for 2.6+ series kernels this was replaced with .ko .
You can get a list of all modules available by typing the following at the command line:
$ ls -R /lib/modules/'uname -r'/kernel
Where 'uname -r' , surrounded by forward tick marks, is your kernel version number. The following output is an example of what you might find in a USB webcam-ready kernel , where everything is loaded as a module (all but the relevant lines have been edited for brevity):
./usb: usbvideo.o usbcore.o ibmcam.o
Once you know which module your camera needs you can find out if it is already loaded by typing the following at the command line:
# lsmod
As shown by the prompt above, you will need to have root privileges to do this. You should get output similar to the following:
cdrom 29312 0 (autoclean) [sr_mod]
usb-ohci 17888 0 (unused)
usbcore 56768 0 [scanner ibmcam usbvideo usb-ohci]
ibmcam 39680 0
Most stock kernels are compiled with kmod , which enabling automatic loading of necessary modules when the appropriate hardware is detected. It may not always do so, however, so if you don't have the particular module you're
* License

