This page enumerates the steps we have taken to make the Logitech Quickcam Pro 4000 functional under Linux. Although targeted at the Slackware 8.1
distribution of Linux, this description should be sufficiently generic to
be easily adapted to any other Linux distribution. We use Linux kernel version
2.4.18
Overview
The steps will be
replace some files in the kernel source code
recompile the kernel with appropriate module options enabled
edit some system files to automatically load modules at system startup time
Details
Step 0.
Ensure the kernel source code is available. Usually this is at /usr/src/linux,
where linux is a symbolic link to linux-2.4.18 (or similar version).
Step 1.
The Quickcam Pro 4000 works under Linux using the Philips usb camera driver.
Download philips usb driver replacement files (source code for the core "pwc" module).
Download decompressor module (the "pwcx" module). This is a binary module compiled with linux-2.4.18.
Its worth a look at the the Philips usb webcam site which provides these downloads.
Unpack the pwc files somewhere, e.g. /tmp, where 'tar zxvf pwc-8.8.tar.gz'
will produce a new directory named "pwc-8.8" which contains 2 further directories
named "kernel-2.4" and "kernel-2.5". Copy all the files in the kernel-2.4
directory which begin with "pwc" into the usb driver directory of the kernel
source code tree, i.e. from /usr/src/linux/drivers/usb, run 'cp /tmp/pwc-8.8/kernel-2.4/pwc*
.' and then cd to /usr/src/linux/Documentation and run 'cp /tmp/pwc-8.8/kernel-2.4/philips.txt
.' (you could even read that file!).
Now unpack the pwcx module file somewhere, e.g. /tmp, where 'tar zxvf usb-pwcx-8.2.2.tar.gz'
will produce a new directory named "usb-pwcx-8.2.2" which contains a number
of files. One of these files, pwcx-i386.o, should be copied into /lib/modules/2.4.18/misc/
(this path may be different, depending on your kernel version).
Step 2.
The pwc files copied into the kernel source code tree need to be compiled.
Go to /usr/src/linux and run 'make menuconfig' (or whatever your preferred kernel configuration method is).
From the top level menu, select "Code maturity level options" item and enable
"Prompt for development and/or incomplete code/drivers".
Now go to the top level's "USB support" menu item and enable, as modules,
the "Support of USB", "UHCI (Intel PIIX4, VIA, ...)", "USB Audio support"
and "USB Philips Cameras" items.
** Additionally, especially if you run other "ordinary" camera capture cards
(like Hauppauge's TV-Go etc.), you may want enable other modules from the
multimedia devices section. In this case, go to the top level's "Multimedia
devices" section and enable "Video for Linux" as a module, then go to the
"Video for Linux" menu item and enable the items you need (e.g. "BT848" for
TV-Go) .
Now recompile the kernel & modules, then install them in the normal way.
Details on this procedure are beyond the scope of these instructions but
are widely available elsewhere.
Step 3.
Before rebooting the system, we edit some files to enable auto-loading of
the modules when they are required. The details here are for a Slackware
system, others systems will have slightly different methods.
Edit /etc/rc.d/rc.modules; find the line /sbin/modprobe usb-uhci and ensure
it is not commented out i.e. remove any leading hash characters. If this
file is executable, then its contents (esp. the /sbin/modprobe usb-uhci command)
are run at startup time and so the usb-uhci module is loaded.
** In non slackware systems (or those without an existing rc.modules file)
you could add the '/sbin/modprobe usb-uhci' command to the /etc/rc.d/rc.local
file.
Now edit the /etc/modules.conf file, adding the following lines:
# Video driver
#
alias char-major-81 videodev
alias char-major-81-0 pwc
options pwc size=vga leds=250,250 fps=25 mbufs=3 compression=0
post-install pwc /sbin/insmod --force -k /lib/modules/2.4.18/misc/pwcx-i386.o >/dev/null 2>&1 || :
#
Now reboot the system to the new kernel. If all has gone well you should
have, at least, the following "usb-uhci" and "usbcore" modules loaded (check
this by running 'lsmod'). You may already also have "pwcx-i386", "pwc" and
"videodev" modules loaded but if not, they will be automatically loaded when
a video capture application tries to access the video device /dev/video0.
Of course that depends on correct video devices having been created in /dev.
They may also be loaded manually by running 'modprobe pwcx-i386".
Applications
We primarily want to use the Quickcam with the vic application for use in Access Grid sessions. Unfortunately both the ANL standard vic and its parent UCL vic do not work as expected. An alternative that does work is OpenMash vic.
Another video capture program used with the Quickcam Pro 4000 is xawtv.
Even if you don't use the program itself, it's MAKEDEV.v4l script may be
useful for creating the video devices required in /dev.