|
Background
There are two major types of Apple iSight cameras - the external firewire camera and the internal USB iSight cameras in the more recent Intel Macs and some of the latter PowerPC Macs. This document focuses on the internal USB type.
The newer MacBooks and MacBookPros coming out have a working iSight out-of-the-box without needing to do anything, but for older iSights, firmware loading is still required. All you have to do is get the firmware out of OS X and place it in the correct location in the filesystem. Let’s do it step by step.
Installation
First you need to get the firmware out of a particular file located on your OS X install (or find it online somewhere( Google "AppleUSBVideoSupport"). I will not link any here because of legal reasons). You can copy it to a USB drive or other location(Save file in downloads) so that you can acess it from Ubuntu. It is located in /System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBVideoSupport.kext/Contents/MacOS/AppleUSBVideoSupport
If you don't Have Mac OSX Then "cd home/"user name"/downloads" (where you Downloaded the File from the Internet), then ift-extract AppleUSBVideoSupport". In a terminal. Ubuntu will Automatically place the file Isight.fw into the folder lib/firmware.
Skip to "install Firmware extractor"
NOTE: The following firmware extraction currently works with the AppleUSBVideoSupport file from OSX 10.4 (Tiger) and 10.5 (Leopard). It will fail with OSX 10.6 (Snow Leopard) (got it successfuly extracted with ift version 1.5.92, which you need to build from source though). However if you are running Snow Leopard, you can use another machine using 10.5 (Leopard) and copy the file AppleUSBVideoSupport from the path above and paste it in any directory of Ubuntu (Later when asked for the driver you can give this path in the terminal and can extract the firmware). Alternatively you can build isight-firmware-tools version 1.5.90 or later from source and use it to extract the firmware; once you do that you can install ubuntu isight-firmware-tools saying no when it offers to extract the firmware from the MacOSX driver (you still need to mount the MacOSX partition as described below) and then place the firmware in /lib/firmware/isight.fw by hand.
The easiest way to get it is by mounting the MacOSX drive under Ubuntu with the lines:
sudo mkdir /MacOSX sudo mount -t hfsplus /dev/sda2 /MacOSX
Then install the firmware extractor and let it do the work for you:
sudo apt-get install isight-firmware-tools
Check that the path begins with /MacOSX/System... or home/"user name"/downloads and then click OK.
If the path is incorrect, you will not be prompted for another location. You must purge the installation before trying again.
sudo apt-get --purge remove isight-firmware-tools sudo apt-get install isight-firmware-tools
When it's done check that the firmware has been found:
ls /lib/firmware/isight.fw
Once that is done, you need to completely SHUTDOWN your Mac (not just reboot) and start it back up again (this clears the hardware state of the camera).
In the future {when, exactly?}, you just need to place the isight.fw file you saved in /lib/firmware/ (If not using Mac OSX ((downloaded the file from the internet). ift-extract already did this part for you).and then shutdown and reboot as instructed above. (note: placing the isight.fw file at /lib/firmware/ uses to hang always the boot process with the message 'unable to enumerate USB device on port 7' repeatedly )
If you want to be a permanent solution just add a script at startup causing the system to load the file isight.fw to /lib/firmware {Why? It doesn't get deleted on reboot}
You will need to copy the file isight.fw to another folder of your choice
example:
cp /lib/firmware/isight.fw /home/free/isight/.
open a text editor and type:
#! /bin/sh
cp /home/free/isight/isight.fw /lib/firmware/.
save the file in the same folder where you saved the isight.fw with the name script-webcam
go to the folder which you saved the script and give the command
chmod +x script-webcam
Now go to System -> Preferences -> Session Aplications click add put a name and then add the script that you did.
Done! Now you just need to shut down and in the next time the webcam will be working
GStreamer Test
Run gstreamer-properties and test video input in the Video tab.
Green Capture Issue
(Observed on Macbook 1,1, Macbook 2,1, Macbook 3,1 and Macbook 4,1)
If testing the video input through gstreamer-properties results in a green-tinted image, try setting Default Input to 'Custom' and in the Pipepline box, enter the following:
v4l2src device="/dev/video0" ! videoscale
Click on Test to see if these new settings correct the issue.
There is a bug report for this problem here.
Ekiga Test
Launch Ekiga (Applications > Internet > Ekiga Softphone)
- Configuration. You may have to select the iSight device.
Edit > Preferences > Devices > Video Devices >
Video plugin: V4L2
- Input device: Built-in iSight
Cheese Test
Cheese is a fun webcam app similar to photobooth in OS X.
First Install Cheese
sudo apt-get install cheese
Then start it from Applications > Graphics > Cheese Webcam Booth
Virtual Machines
Since OSX takes care of the firmware loading itself, there is not much you have to do to use the iSight within a VM. Just enable the Built-in Isight USB device, Then start Cheese. (I could not get Camorama to work. But Cheese works great, athough it does consume a lot of resources. No downloads or modifications necessary.