Skip to content
Hamish Mcintyre-Bhatty edited this page Apr 18, 2021 · 43 revisions

Welcome to the FacetimeHD linux driver wiki!

This repository contains a Linux driver for the Apple FacetimeHD PCIe webcams.


See Installation for how to install on your distro

Issues and discussion

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

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.

Confirmed to work on MacBook Pro (13", Late 2013) by Hamish McIntyre-Bhatty.

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:
  • 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.
  • A reboot may be required after installing and compiling the modules, as was the case on a MacBook Pro (13", Late 2013).