Skip to content
maximilianduell edited this page Mar 12, 2019 · 43 revisions

Welcome to the FacetimeHD linux driver wiki!

The goal of this project is to write a Linux driver for the FacetimeHD (Broadcom 0x1570) PCIe webcam.

Issues and discussion

There is no mailing list for the driver but some discussions take place at #facetimehd on irc.freenode.net

Feel free to join and ask your questions, or help out by answering other people. Issues can be reported here on github but please make sure your issue is not already answered and/or not covered in the "Known issues" section below.

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.

Note that this module requires Linux kernel 4.4 or later (it is currently unknown which earlier kernels it will work with).

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)
  • Thunderbolt display

See Getting Started for instructions on driver installation and usage.

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.

How can I help?

  • Code contributions are welcome.
  • Test the driver and report any issues

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