I have an old webcam (Creative PD1001) which is not officially supported on Linux. Fortunately, Endpoints EPCAM USB Camera Driver is known to work with PD1001 on many Linux distros.

To get the driver built on Ubuntu 8.04 however, I needed to make some minor changes to epcam.c. The kernel version I was compiling against is 2.6.24-19-generic. To get the 0.7.3 driver build successfully, I needed to comment out #include <linux/config.h> and then ran

KBUILD_NOPEDANTIC=1 make install

If you do not want to setup the environment variables for the build, you could just modify the #include statements to where the kernel header files are located:

#include "/usr/src/linux-headers-2.6.24-19-generic/include/linux/module.h"
#include "/usr/src/linux-headers-2.6.24-19-generic/include/linux/version.h"
#include "/usr/src/linux-headers-2.6.24-19-generic/include/linux/init.h"
#include "/usr/src/linux-headers-2.6.24-19-generic/include/linux/fs.h"
#include "/usr/src/linux-headers-2.6.24-19-generic/include/linux/vmalloc.h"
#include "/usr/src/linux-headers-2.6.24-19-generic/include/linux/slab.h"
#include "/usr/src/linux-headers-2.6.24-19-generic/include/linux/proc_fs.h"
#include "/usr/src/linux-headers-2.6.24-19-generic/include/linux/pagemap.h"
#include "/usr/src/linux-headers-2.6.24-19-generic/include/linux/usb.h"
#include "/usr/src/linux-headers-2.6.24-19-generic/include/asm/io.h"
#include "/usr/src/linux-headers-2.6.24-19-generic/include/asm/semaphore.h"


After the build the driver is automatically installed and when the webcam is plugged in, it should be recognized by apps such as camorama (note: /dev/video0 is automatically created when the webcam is connected).


Be Sociable, Share!