Click this image to return to the front page.

Using an Apple iSight Firewire (IEEE 1394) camera on Linux

Last Update: March 27th, 2023


Short Version

Not possible, since about 2010.




Long Version

I think I hit all the relevant keywords in that title...

I have a handful of these cameras and I ended up spending several evening hammering on this problem. I wanted to share what I found to help those poor souls wandering through Google results, trying to do the same thing. It's not entirely obvious what happened, and hopefully this will prevent the same frustration I ended up going through.

Okay, onwards:

First off, the (original) Apple iSight camera connects over what was retroactively labeled IEEE 1394A - aka Firewire.
When they designed it, the engineers at Apple built it to the Industrial and Instrumentation Digital Camera (aka IIDC) specification. This spec, developed by the 1394 Trade Association, described a standardized command and control software interface for cameras used in industrial, scientific, and machine vision applications. Think microscope cameras, autonomous vehicles, and factory production lines.

(Incidentally, this means the iSight has some unique and unusual capabilities for a humble 'web camera', very similar to other industrial/machine vision cameras - for example, it performs no compression on the captured image, just streaming raw data to the computer. I'm curious to know if the internal image sensor has a global shutter.)

Thus the Apple iSight is essentially identical (software-wise) to cameras produced by various industry heavyweights, for example Point Grey (now FLIR).

(If you've seen one of Googles early Street View vehicles, I'm pretty sure you've seen one of Point Greys "Ladybug" 360-degree Firewire cameras.)

Okay, so, we need software.
Enter Coriander, the only open source implementation of an IIDC control application. (If you know of others, please let me know.)

See, the problem isn't a missing driver for the iSight, or any Firewire camera for that matter.
They're all just Firewire devices, Linux will enumerate them just fine, and make them available in /dev like any other device.
In order to get any data from those cameras, the user needs an application to communicate with the camera over the Firewire bus. This software need to tell the camera to turn on, to start sending data, and adjust white balance or focus or what-have-you.

Coriander does this, and goes above and beyond by offering automated capture capabilities (including an FTP client), and even implements a loopback device in /dev to pipe the captured video as a Video4Linux source, making it available for a whole range of other software.

Great! Just install Coriander, right?

Once upon a time, Coriander was included in the Ubuntu (and presumably Debian) software repositories. It has since been removed.
Coriander requires (among other things) the following kernel modules: ohci1394, video1394, ieee1394, and raw1394.

In 2010, the kernel used in Ubuntu was changed to Linux 2.6.37. At that point, the above modules were fully replaced with the new and improved firewire_core module, which collected all the different libraries into a single monolithic library.
The Ubuntu documentation has all the exact details here.

As far as I can tell, Coriander was never updated to support the new firewire_core kernel modules, and thus stopped working. It was probably removed from the repos in the same year.
The last release of Coriander (2.0.1) was on May 27th, 2010.

Thus, the Apple iSight (Firewire/IEEE 1394) camera cannot be used on any recent Linux system, and hasn't been supported for about 13 years at this point.


That said, the cameras do have a microphone and, amusingly, that device appears to enumerate and operates perfectly, at least on Ubuntu 22.04 LTS. It's just a standard Firewire audio device, and apparently those device are still well supported.





I want to take a moment to give a sincere thanks to Damien Douxchamps.
This guy maintained Coriander and libdc1394 for over a decade, and was only compensated (quoting the website) "11 donated cameras, USD 400, a very nice 1394B cable and (at least) 16 T-Shirts".
When was the last time you got ten years of development for four hundred bucks and some spare hardware/merch?

If you scroll to the bottom of the intro page of Coriander, there is an extensive list of universities, research institutes, companies, and defense contractors who, at one time or another, used the software.