Monday, 15 September 2008

Getting your Creative Live! Webcam to work on Linux

This is for those of you with a Creative Live! Notebook Webcam - which IDs itself as 041e:4068 if you type "lsusb" on the command line - you'll get something like:

Bus 001 Device 002: ID 041e:4068 Creative Technology, Ltd

The issue with this baby is that it sends JPEG-compressed data, which your computer needs to decompress. For older kernels (2.6.24 and before) you can install the ov51x-jpeg driver. This contained JPEG decompression right in the kernel module. However this was only a part-time project (merci Romain) and not a permanent solution.

For newer kernels (2.6.27), there's a newer and less crazy trick - though obviously it would be nice to have things work out of the box so that Linuxhater won't laugh at us. In the meantime, go to this page to understand what's going on. Then download libv4l and untar it in your home directory.

You will now need the kernel headers for your latest kernel version. (That is, you need videodev2.h in /usr/include/linux.) This is probably best done by installing the package "linux-libc-dev" - at least, that works for me on Ubuntu. You can install the package from synaptic or with "sudo apt-get install linux-libc-dev". Make sure, of course, that it is the right one for your 2.6.27 kernel. (At the moment, I have to add the intrepid sources by hand.)

Now you are ready to go. In a terminal, go into the untarred directory "libv4l-0.1" and type "make". If this completes successfully, you should have some nice files ending in ".so" in a new subdirectory called "lib". Next, follow the instructions in the README file, by entering

export LD_LIBRARY_PATH=`pwd`/lib
export LD_PRELOAD=`pwd`/lib/v4l1compat.so

on the command line. Finally - with your camera plugged in - type "camorama" (or start another webcam application if you prefer - for me, camorama works but "cheese" doesn't). You should now see yourself on screen.