Facetime HD Webcam Driver For Debian/Ubuntu

So, this is my first time building and distributing a DEB package, and it may not work as intended. I don’t have a second Mac on hand that I can test with, but I’m posting this for any other Mac users out there that are having a hard time getting the internal webcam working. The process to do it manually is rather tedious, and documentation is lacking. This is also a DKMS package, which means any time your kernel gets updated, the driver should be automatically added to the new kernel, making reinstalling it unnecessary. I’ve also extracted the color profiles from the Bootcamp driver, so color correction should also work properly. Credits for the actual driver go to patjak.

Supported Models

  • 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

Updates

11/11/2022 – Rebuilt this on Linux 6 for a proper DKMS package. Updated zip is at the link below.

Install Instructions

download zip

First, we grab and install the firmware from Apple. This requires a couple dependencies. After installing those, we clone the firmware extractor repository, and install the firmware.

$ sudo apt install git cpio curl xz-utils
$ sudo su - && cd /usr/local/src
$ git clone https://github.com/patjak/facetimehd-firmware.git && cd facetimehd-firmware
$ make && make install
$ exit 

Now, cd to the directory where you downloaded the ZIP archive above, and extract it.

$ unzip facetimehd-dkms_0.1_all-20221111.zip -d facetimehd && cd facetimehd

After this, use dpkg to install the package, and copy the color profiles to the correct location. This location may vary depending on your distribution, so replace it as needed.

$ sudo dpkg -i facetimehd-dkms_0.1_all-20221111.deb
$ sudo cp Color\ Profiles/*.dat /usr/lib/firmware/facetimehd

Reboot, and use something like Cheese, Discord, or Google Meet to test. You can also use mplayer with the command below:

$ mplayer tv://

Other Distributions

If you don’t use a Debian or Ubuntu based distro, there are also RPM packages for RHEL based distributions, a PKGBUILD for Arch based distributions, and packages for OpenSUSE. Here are instructions for Gentoo as well.