Enable the built-in Apple FaceTime HD camera on 2013–2015 Intel MacBooks running Ubuntu/Linux
This project provides an automated installer that makes the Apple FaceTime HD camera work reliably on older Intel MacBooks running Linux. It eliminates the need for manual driver compilation, firmware extraction, and patching by wrapping everything into a single, reproducible installation script.
- Automatically builds and installs the
facetimehd(bcwc_pcie) driver using DKMS - Downloads and extracts the required Apple firmware
- Configures automatic driver rebuilds after kernel updates
- Optionally tunes power management for better battery life and quieter fans
- MacBookPro11,1
- MacBookPro11,2
- MacBookPro11,3
- Other 2013–2015 Intel MacBooks with FaceTime HD (BCM1570)
- Ubuntu 22.04 LTS and newer
- Ubuntu 24.04 LTS
- Other Debian-based distributions (may require adaptation)
- Linux kernel 6.x series
- Automatic rebuild support via DKMS
Ensure your system is up to date:
sudo apt update && sudo apt upgrade -yClone the repository and run the installer:
git clone https://github.com/godwill1224/facetimehd-ubuntu-macbook.git
cd facetimehd-ubuntu-macbook
chmod +x scripts/*.sh
sudo ./scripts/install.shReboot your system to load the driver:
sudo rebootAfter rebooting, test the camera:
# Check if the driver loaded
lsmod | grep facetimehd
# List video devices
v4l2-ctl --list-devices
# Test with Cheese
cheeseYou should see the "Apple FaceTime HD" camera listed as /dev/video0.
The camera should now work automatically with:
- Cheese (GNOME Camera)
- Google Meet
- Zoom
- Microsoft Teams
- Any application using V4L2 (Video4Linux2)
Reduce heat and fan noise while improving battery life:
sudo ./scripts/power-tune.shThis script installs and configures TLP with optimized settings for MacBooks.
If the camera doesn't work after installation, see the troubleshooting guide.
Camera not detected:
# Reload the driver
sudo modprobe -r facetimehd
sudo modprobe facetimehdNo /dev/video0:
# Check DKMS status
dkms status
# Check kernel logs
dmesg | grep facetimehdPermission denied:
# Add your user to the video group
sudo usermod -aG video $USER
# Log out and back inFor detailed troubleshooting, see TROUBLESHOOTING.md.
To completely remove the driver and firmware:
sudo ./scripts/uninstall.shThis will:
- Remove the DKMS module
- Delete firmware files
- Clean up configuration changes
The installer automates these steps:
- Install dependencies: Ensures build tools and kernel headers are available
- Clone driver source: Downloads the
facetimehddriver repository - Register with DKMS: Enables automatic rebuilds on kernel updates
- Build kernel module: Compiles the driver for your current kernel
- Extract firmware: Downloads and installs Apple's proprietary camera firmware to
/lib/firmware/facetimehd/ - Load driver: Inserts the
bcwc_pciekernel module
DKMS (Dynamic Kernel Module Support) ensures the driver rebuilds automatically whenever you update your kernel, eliminating manual maintenance.
facetimehd-ubuntu-macbook/
├── scripts/
│ ├── install.sh # Main installation script
│ ├── uninstall.sh # Removal script
│ └── power-tune.sh # Optional power optimization
├── docs/
│ ├── TROUBLESHOOTING.md # Detailed troubleshooting guide
│ └── POWER.md # Power management documentation
├── dkms.conf # DKMS configuration
├── README.md # This file
├── CONTRIBUTING.md # Contribution guidelines
├── CHANGELOG.md # Version history
└── LICENSE # MIT License
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
Ways to help:
- Report bugs or compatibility issues
- Test on different MacBook models
- Improve documentation
- Submit patches or enhancements
This project builds upon excellent work from the open-source community:
- Driver: patjak/facetimehd – Reverse-engineered FaceTime HD driver
- Power management: TLP – Advanced power management for Linux
- Linux camera stack: V4L2, PipeWire, GStreamer, GNOME
This installer simply automates and packages their work into an easy-to-use tool.
This project is licensed under the MIT License. See LICENSE for details.
If you encounter issues:
- Check the troubleshooting guide
- Search existing issues
- Open a new issue with:
- MacBook model (
sudo dmidecode -s system-product-name) - Ubuntu version (
lsb_release -a) - Kernel version (
uname -r) - Output of
dkms statusandlsmod | grep facetimehd
- MacBook model (
Made with ❤️ for the Linux + MacBook community