Getting the Camera to Work in Fedora 25 on the Macbook Pro 13″

The Macbook Pro 13″ (otherwise known by the codename MacbookPro12,1), has pretty good Linux support for a Macbook. The hardware is beautiful and everything works now that the camera is supported. Here are the steps needed to make it work.

The information for this article has primarily come from the FacetimeHD (Broadcom 1570) project instructions. This article focuses on Fedora, so if you want instructions for another distro, look on the project page.

First, check you have the correct hardware:

root@sage:/usr/src/bcwc_pcie 
★ dmidecode | grep -i "Product Name"
    Product Name: MacBookPro12,1
    Product Name: Mac-E43C1C25D4880AD6

It should say MacbookPro12,1 above. If it says anything else, don’t continue (unless you know the laptop has the “FaceTime HD” camera.

1. Install kernel development package:

dnf install kernel-devel

2. Download the driver source (safely)

Note that we’re not doing this as root. It’s poor practice to git clone or build anything as root. It’s just unneccessary.

cd /usr/src
sudo mkdir bcwc_pcie
sudo chown $(whoami):$(whoami) bcwc_pcie
git clone https://github.com/patjak/bcwc_pcie.git

3. Extract the firmware

cd bcwc_pcie/firmware
make
sudo make install

4. Build the driver source

cd /usr/src/bcwc_pcie/
make

The next command might generate some errors. These can be safely ignored as long as you don’t care about secure boot or driver signing. The errors are:

At main.c:158:
- SSL error:02001002:system library:fopen:No such file or directory: bss_file.c:175
- SSL error:2006D080:BIO routines:BIO_new_file:no such file: bss_file.c:182
sign-file: certs/signing_key.pem: No such file or directory

Keeping this in mind, install and initiate the drivers:

sudo make install
sudo depmod
sudo modprobe facetimehd

5. Test

I like to use the application called “cheese” to test webcams:

dnf install cheese
cheese