Skip to content
Patrik Jakobsson edited this page May 12, 2016 · 43 revisions

Welcome to the FacetimeHD linux driver wiki!

The goal of this project is to write a Linux driver for the Broadcom 1570 PCIe webcam.

Current Status

The driver is now able to stream video. It can be accessed through the V4L2 API. It is still experimental so your mileage may vary.

Since this driver depends on vb2_dma_sg_init_ctx, it requires Linux kernel 3.19 or later.
According to Apple the following models contain a Facetime HD camera and should be compatible with this driver:

  • iMac (21,5", since mid 2011)
  • iMac (27", since mid 2011)
  • MacBook Air (since mid 2011)
  • MacBook Pro (15", since early 2011)
  • MacBook Pro (17", since early 2011)
  • MacBook Pro (13", since early 2011)

See Getting Started for instructions on driver installation and usage.

Approach

It's a mix of probing, reverse engineering, reading up on similar hardware, guessing, etc.

Known issues

  • Suspend / resume doesn't work properly. Suspending must be done with the device closed.
  • Only firmware version 1.43 is known to work with the driver. Newer versions might also work but 1.43 is highly recommended.
  • Due to a bug in cpio 2.11 the firmware download script doesn't work. cpio 2.12 or later is required. (See: https://bugzilla.redhat.com/show_bug.cgi?id=1318084)
  • The driver will complain about 1871_01XX.dat (or similarly named) files missing. This error can be ignored. The .dat files contains sensor calibration settings that will improve image quality. The error looks something like this: Direct firmware load for facetimehd/1871_01XX.dat failed with error -2. Ignore it.
  • No /dev/video0 device appears after loading the module. This can be because the bdc_pci module is already loaded. Make sure you unload or blacklist bdc_pci before loading the facetimehd module: modprobe -r bdc_pci.
  • The driver will not compile for 4.5 and later kernels. Will fix this up when we're in good enough shape for mainlining.

How can I help?

  • Code contributions are welcome.
  • Test the driver and report any issues
  • You can also add to the bounty on Bountysource which gets passed on when the driver becomes sufficiently functional.

Note that this was started independently by members of the crowd here to help encourage and thank the developer(s) and never asked for by the developer(s).

https://www.bountysource.com/issues/7700750-basic-functionality

An outline of getting the web cam working in an OS X VM using QEMU.
http://chrisrjones.com/articles/How-to-get-the-broadcom-pci-1570-web-cam-working-in-Linux-using-qemu-with-OS-X-VM

Clone this wiki locally