Posts Tagged ‘videodev.h’

microdia USB 0c45:627b in Ubuntu 11.04 Natty Narwhal

Saturday, April 30th, 2011

Ok, this is not a tech blog, but I am a techie, and I discovered something today that hopefully helps someone someplace.

I just upgraded to the latest Ubuntu 11.04 on an old laptop with a built-in webcam.  The official kernel driver for the webcam sucks, but you can get a good one here:

git clone http://repo.or.cz/r/microdia.git

You’ll have to make this yourself.  There’s a link to to do that below.  First note, however, that the files reference an include file that no longer ships with Ubuntu.  That is videodef.h — an include file for V4L version 1, which is no longer supported.

So , you’ll need to edit out a line in sn9c20x-queue.c.

Change:

#include <linux/videodev.h>

to

/* #include <linux/videodev.h> */

(i.e. comment it out).

Then follow the rest of these instructions:  http://ubuntuforums.org/showpost.php?p=7456689&postcount=4

You’ll also need to remove the standard-issue sn9c20x driver (gspca_sn9c20x) from /lib/modules/(linux kernel version)/kernel/drivers/media/video/gspca:

sudo rmmod gspca_sn9c20x

I just moved it to my homedir so it wouldn’t be probed:

mv /lib/modules/(whatever)/kernel/drivers/media/video/gspca_sn9c20x.ko  ~

And put the sn9c20x.ko driver in:

cp /(wherever you ran make)/sn9c20x.ko /lib/modules/(whatever)/kernel/drivers/media/video

depmod -ae

Voila.  Webcam works again.  Whatever videodev.h provides has been replaced elsewhere.  For Skype you’ll still want to use compatibility libraries, running it this way:

LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so /usr/bin/skype

Hope that helps someone!

#!/bin/bash
LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so /usr/bin/skype