->
Update, 17/08/08: There is no longer any need to switch to the Experimental branch, if you are using the following Microdia cameras:
0c45:6027, 0c45:608f, 0c45:60ec, 0c45:60fe, 0c45:60c0, 0c45:613b, 0c45:613c, 0c45:624e, 0c45:624f, 0c45:6242, 0c45:6253, 0c45:6260, 0c45:6270, 0c45:627b, 0c45:8105
Keep up to date on the current supported webcams: http://groups.google.com/group/microdia/web/project-status?hl=en
The webcam (Acer Orbicam) on my Acer Aspire 5052 has been somewhat of a bane - with no drivers available, it has been one of the last stumbling blocks of getting all of my hardware working in Linux (the Ubuntu 8.04 Distro, Hardy Heron, in my case). That is until I ambled across, quite by accident, the Microdia Google Group. These guys are the epitome of Open Source development in action - a group of widely distributed people who are collaborating to solve a common problem: to get the Microdia webcams supported under Linux. And they’re doing a fantastic job so far.
Note: I should first mention that the drivers are still heavily under development, and although they are not (for some webcams) to the point where they can be used for Skype, for example, major progress has been made, and there is now finally communication with my webcam, to the point where I can successfully output video to mplayer. Therefore, this post is not quite yet a HowTo on getting a Microdia webcam fully function, but a step towards helping people installing and testing the drivers under development.
So, here’s how I’ve got to the stage of seeing myself in mplayer…
Information Gathering
Note: this section is only relevant if you’re interested in the workings of the camera, or would like to aid the driver developers by supplying information about your webcam. If you just want to compile and install the drivers, scroll down to Driver Compiling and Installing.
Firstly, I had to determine i) whether or not my Webcam was in fact a Microdia camera, and ii) the model number, so in a Terminan, I ran:
lsusb
Which output, amongst other information about the rest of my USB devices:
Bus 003 Device 002: ID 0c45:6260 Microdia
confirming that my Acer Orbicam is a Microdia device. The two hex values 0c45:6260 represent the Vendor ID and Product ID respectively - 0c45 being Microdia, and 6260 the Product itself. In order to create my meagre contribution to the Microdia Group, I had to gather some more information about the device’s bridge and sensor. Firstly, I needed the USB Device Descriptors, which were obtained by running:
sudo lsusb -d 0c45:6260 -v > ~/Desktop/0c45_6260_device_descriptors.txt
I then needed to discover the Bridge and Sensor types, which thankfully could be found in the Windows driver file, snp2std.inf:
%USBPCamDesc% = SN.USBPCamVGA,USB\VID_0c45&PID_6260 ; SN9C201 + OV7670ISP
Which tells me:
Bridge: SN9C201
Sensor: OV7670
The full guide to gathering information for your webcam can be found at the Microdia group, here.
Driver Compiling and Installing
The driver code is controlled by git, which I installed by running:
sudo apt-get install git-core gitk git-gui git-doc curl
Also, before downloading and installing the drivers, I ran:
sudo apt-get install kernel-package linux-source build-essential
To grab the Linux source etc. Once finished, I created a directory to set up my local git repository and downloaded the driver code:
cd ~/Documents
mkdir webcam
cd webcam
git clone http://repo.or.cz/r/microdia.git
The final command executes git, and tells it to clone the remote repository. The files are downloaded to a sub directory called microdia, from which I ran the rest of the commands:
cd microdia
Note: If you have any of the following Microdia cameras, you’ll need to switch to the Experimental branch:
6242, 624e, 624f, 6270, 627b, 62bb, 145f:013d, 045e:00f4
Switch to the Experimental branch by running:
git checkout --track -b v4l2-experimental origin/v4l2-experimental
I then compiled the code:
make
and received this error, but it’s not important:
make: ctags: Command not found
make: *** [ctags] Error 127
Once compiled, the module can be inserted to the kernel for testing:
sudo insmod ./microdia.ko
I also received the following error:
insmod: error inserting ‘microdia.ko’: -1 Unknown symbol in module
so had to run the following first:
sudo modprobe videodev
sudo modprobe compat-ioctl32
and then I could insert the module:
sudo insmod ./microdia.ko
Finally, to test, I ran:
mplayer tv:// -tv noaudio:driver=v4l2:width=640:height=480:outfmt=yuy2:device=/dev/video0:fps=30
you may need to change /dev/video0 to /dev/video1 - also, if you don’t have mplayer, it needs installing:
sudo apt-get install mplayer
The only thing is… it’s currently a mirror image, hehehe:
Finally…
If everything looks good, and the camera works well, it can be installed permanently by running the following:
strip -g microdia.ko
sudo cp microdia.ko /lib/modules/`uname -r`/kernel/drivers/media/video/usbvideo/
sudo depmod -a
However, only do this if you are comfortable with the driver, and happy that it is stable on your system!
References



Since Skype is a Qt application, it is possible to customise the interface using an application called 

Twitter
Facebook










Recent Comments