Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save cobaohieu/b29f4e378b6ecf8851835988ce45c436 to your computer and use it in GitHub Desktop.
Save cobaohieu/b29f4e378b6ecf8851835988ce45c436 to your computer and use it in GitHub Desktop.
Installing the FaceTime HD Camera Driver for Macbook Pro 2015 on Ubuntu 22.04 or later

Guide how to install FaceTimeHD Driver for Macbook Pro 2015 on Ubuntu 22.04 or later

This guide provides step-by-step instructions to install the FaceTimeHD driver for MacBook webcams on Linux (Debian/Ubuntu).
The process includes installing prerequisites, extracting firmware, and building/installing the driver using two methods.

To get full source code without use many times git clone as below

Please clone this repo here and don't forget skip some step, then move to Copy Firmware

cd ~; git clone https://github.com/cobaohieu/facetimehd.git

Prerequisites

Install the necessary software packages before proceeding.

Package Command
GCC 12 sudo apt install -y gcc-12
Utilities sudo apt install -y xz-utils curl cpio make dwarves
Kernel Headers sudo apt install -y linux-headers-generic git kmod libssl-dev checkinstall
Build Tools sudo apt install -y debhelper dkms
MPlayer sudo apt install -y mplayer

Firmware Extraction

Extract the sensor calibration files and firmware for the FaceTimeHD driver.

Step Command/Description
Clone Repository Clone the driver and firmware repositories:
git clone https://github.com/patjak/facetimehd.git
cd facetimehd/firmware
git clone https://github.com/patjak/facetimehd-firmware.git .
Download BootCamp Package Download from Apple Support or check Windows drivers on Apple.com.
Unzip the package:
cd ~/Downloads/
unzip bootcamp5.1.5769.zip -d ~/Downloads/bootcamp5.1.5769/
Extract Driver Extract AppleCamera64.exe:
unrar x bootcamp5.1.5769/BootCamp/Drivers/Apple/AppleCamera64.exe
Verify AppleCamera.sys:
ls bootcamp5.1.5769/BootCamp/Drivers/Apple/ | grep AppleCamera.sys
Extract Firmware Files Extract .dat files:
dd bs=1 skip=1663920 count=33060 if=AppleCamera.sys of=9112_01XX.dat
dd bs=1 skip=1644880 count=19040 if=AppleCamera.sys of=1771_01XX.dat
dd bs=1 skip=1606800 count=19040 if=AppleCamera.sys of=1871_01XX.dat
dd bs=1 skip=1625840 count=19040 if=AppleCamera.sys of=1874_01XX.dat
Copy Firmware Copy .dat files to firmware directory:
sudo scp *.dat /lib/firmware/facetimehd/
Compile Firmware Compile and install firmware (reference):
cd ~/facetimehd/firmware
sudo make
sudo make install

Note: For detailed firmware extraction instructions, see Extracting the Sensor Calibration Files.

Method 1: Debian

Build and install the kernel module for Debian (More detail click here).

Step Command/Description
Build Kernel Module cd ~/facetimehd
sudo make
Install with Checkinstall or Make Generate a Debian package for easy uninstallation:
sudo checkinstall
Alternatively:
sudo make install
Update Kernel Modules depmod
Load Module modprobe facetimehd
Verify Module Check loaded modules:
lsmod | grep facetimehd
Test Camera Open camera with MPlayer:
mplayer -vo gl tv://
Troubleshoot If not working, reload the module:
sudo modprobe -r facetimehd
sudo modprobe facetimehd
If camera quality is poor, reboot your MacBook.

Method 2: Ubuntu

Step 1: build and install the kernel module for Ubuntu (More detail click here).

Step Command/Description
Compile Driver cd ~/facetimehd
sudo make
Install Driver sudo make install
Update Kernel Modules depmod
Remove bdc_pci (if exists) sudo modprobe -remove --quiet bdc_pci
Load Driver sudo modprobe facetimehd
Fix BTF Error If you see Skipping BTF generation error:
cd ~/facetimehd
sudo cp /sys/kernel/btf/vmlinux /usr/lib/modules/`uname -r`/build/
Verify Module lsmod | grep facetimehd
Test Camera mplayer -vo gl tv://
Troubleshoot If not working, reload the module:
sudo modprobe -r facetimehd
sudo modprobe facetimehd
If camera quality is poor, reboot your MacBook.

Step 2: DKMS Installation

Step Command/Description
Remove Old Package sudo dpkg -r bcwc-pcie
Create Directory sudo mkdir /usr/src/facetimehd-0.1
Copy Files cd ~/facetimehd
sudo cp -r * /usr/src/facetimehd-0.1/
Clean Previous Build cd /usr/src/facetimehd-0.1/
sudo rm backup-*tgz bcwc-pcie_*deb
sudo make clean
Register with DKMS sudo dkms add -m facetimehd -v 0.1
Build Module sudo dkms build -m facetimehd -v 0.1
Build Debian Packages sudo dkms mkdsc -m facetimehd -v 0.1 --source-only
sudo dkms mkdeb -m facetimehd -v 0.1 --source-only
Copy Debian Package sudo cp /var/lib/dkms/facetimehd/0.1/deb/facetimehd-dkms_0.1_all.deb /root/
Clean DKMS sudo rm -r /var/lib/dkms/facetimehd/
Install Package sudo dpkg -i /root/facetimehd-dkms_0.1_all.deb
Verify Module lsmod | grep facetimehd
Test Camera mplayer -vo gl tv://
Troubleshoot If not working, reload the module:
sudo modprobe -r facetimehd
sudo modprobe facetimehd
If camera quality is poor, reboot your MacBook.

Notes

Many thanks to

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment