Skip to content
vrilutza edited this page Oct 17, 2026 · 47 revisions

Welcome to the FacetimeHD linux driver wiki!

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

Installation

See Installation for how to install on your distro

Issues and discussion

Questions and problem reports go to the GitHub issues. 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

The 12-inch MacBook (MacBook8,1, 9,1 and 10,1) needs firmware 5.60.0, which facetimehd-firmware now fetches by default, and the 1675_01XX.dat calibration file.

The driver binds to the camera's PCI ID 14e4:1570; lspci -nn | grep 14e4:1570 shows whether your Mac has it.

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

  • The driver refuses to suspend while any application has the camera device open, even if it is not streaming: it logs camera is in use; close video applications before suspend and the suspend fails. Close video applications before suspending. Otherwise it shuts the camera down on suspend and tries to bring it back up on resume; whether that works may depend on the machine. (See: workarounds)
  • Firmware: facetimehd-firmware fetches version 5.60.0 by default, which the 12-inch MacBook needs. Version 1.43.0, the previous default, is still available with make FW_VER=1.43.0.
  • The default firmware download does not use cpio. The 1.43.0 download (make FW_VER=1.43.0) does, and it needs GNU cpio: BusyBox cpio cannot read Apple's archive format, and GNU cpio 2.11 had a bug that broke it (See: https://bugzilla.redhat.com/show_bug.cgi?id=1318084).
  • Without the sensor calibration (set) file for your camera the image works, but the colors are worse. The kernel then reports something like Direct firmware load for facetimehd/1871_01XX.dat failed with error -2, followed by set file facetimehd/1871_01XX.dat is missing, continuing without calibration. make and make install in facetimehd-firmware install all eleven calibration files along with the firmware.
  • On kernels before 5.12, no /dev/video0 device may appear after loading the module, because the bdc_pci module claims the camera first. Unload or blacklist bdc_pci before loading the facetimehd module: modprobe -r bdc_pci. Linux 5.12 removed bdc_pci, so newer kernels are not affected.
  • If bdc_pci was already loaded, a reboot may be required after installing and compiling the modules, as was the case on a MacBook Pro (13", Late 2013).
  • With a PipeWire that lacks the fixes in 1.4.10, such as 1.4.2 in Debian 13, GNOME Snapshot and other applications that use PipeWire's GStreamer source get no picture, or a single frame, with the current driver (#358). The driver fix is proposed in #359. On Debian 13, PipeWire 1.6.9 from trixie-backports has the PipeWire fixes.

Workarounds

  • You can use facetimehd-toggle to toggle webcam only when needed. This way the driver will be unloaded when not in use, so it cannot block a suspend.

Clone this wiki locally