Apple iSight / UVC driver
In 2006, I finally did the right thing: I bought a Mac. But this is not going to be Yet Another Fanboy-site. Because I noticed quickly that, although other people had done amazing work already, a lot was still to be done to get a decent OS to run on this pretty piece of hardware. Particularly, I set my focus on the built-in iSight, the webcam on the top of the screen.
How it started
There being no driver, my only choice was to write one myself, which I finished at the DDC in 2006. Since then, I've made small modifications to keep up with latest Apple firmware releases and to address user issues when those pop up. This page should try to unify this into a single location.
This driver does not stand on itself, though. It is a quick hack based on top of the excellent Linux UVC driver by Laurent Pinchart (the very same Laurent that I worked together with in the old Zoran/DC10+ days). I simply hacked some stuff to work around the parts where Apple engineers decided not to follow the spec, and with help of Johannes Berg, I managed to get the Apple firmware to load such that you don't need to boot OS X to get the cam to work under Linux.
Work is currently ongoing to merge this into the main UVC tree and to get that into the main kernel.
Features
The driver supports capture at all framerates and framesizes that the webcam supports. All USB-based hardware models (so not the firewire iSights!) are supported.
- MacBook (all models), MacBook Pro (15" and 17"), iBook (e.g. the 20").
- Both Intel- and PPC-based models.
- Capture has been tested on GStreamer, Ekiga and mplayer.
Availability
Releases are available from My FreeDesktop.org homedir. The latest release is 0.1.0-e. A patch against the UVC tree is also available.
FAQ
- Will you use the in-kernel firmware loading?
- Will the driver be included in the kernel?
- How can I test whether it works?
- Ekiga won't show anything!
- I see a cropped image in ekiga, but it works on the GStreamer commandline!
- It doesn't work in mplayer!
- What about <my favourite application>?
We may. Debate on this subject is ongoing, and nobody, not even the kernel maintainers themselves, appear to agree on whether this should be supported. Just use whatever you have right now, add a line to /etc/modprobe.conf to load the firmware before the driver (e.g. install uvc /usr/sbin/extract /path/to/AppleUSBVideoSupport && /sbin/modprobe --ignore-install uvc). Make sure to not add your uvc driver to a bootimage.
Once the iSight patch is merged into the UVC tree, we may attempt to merge it upstream in mainstream kernel.
$ gst-launch-0.10 v4l2src use-fixed-fps=false ! video/x-raw-yuv,format=\(fourcc\)UYVY,width=640,height=480 ! ffmpegcolorspace ! ximagesink
Install the Ekiga v4l2 plug-in.
In gconf-editor, change /apps/ekiga/devices/video from 0 to 1 (this changes video size from QCIF to CIF).
Install a newer version of mplayer.
Ask its authors to support webcams. If common webcams work, the UVC should work without any modifications. Make sure the app supports v4l2, since we don't support v4l1, only v4l2. v4l1 is deprecated in the kernel.