Skip to content
JPtheJP edited this page Dec 22, 2015 · 43 revisions

Welcome to the bcwc_pcie wiki!

The goal of this project is to write a Linux driver for the Broadcom 1570 PCIe webcam.

Approach

It's a mix of probing, reverse engineering, reading up on similar hardware, guessing, etc.

Current Status

The driver is now able to stream video. It can be accessed through the V4L2 API. It is still experimental so you mileage may vary.

Known issues

  • Suspend / resume doesn't work.
  • Only firmware version 1.43 (latest OSX El Capitan) works with the driver.
  • A script for extracting the sensors calibration settings files (set files) from the OSX driver is missing. This is however not required to to use the driver but will increase the image quality.

How can I help?

  • Code contributions are welcome.
  • Test the driver and report any issues
  • You can also add to the bounty on Bountysource which gets passed on when the driver becomes sufficiently functional.

Note that this was started independently by members of the crowd here to help encourage and thank the developer(s) and never asked for by the developer(s).

https://www.bountysource.com/issues/7700750-basic-functionality

An outline of getting the web cam working in an OS X VM using QEMU.
http://chrisrjones.com/articles/How-to-get-the-broadcom-pci-1570-web-cam-working-in-Linux-using-qemu-with-OS-X-VM

Get Started

You can contribute and test this module without touching your Mac's Hard Disk. You just need an USB 3.0 key to install your Linux on, on top of your Linux installation Media. Best of both worlds, try Linux until you're ready to commit your internal drive. Please check [linux.com article] (https://www.linux.com/learn/tutorials/718439-how-to-run-fedora-linux-on-the-macbook-air-without-touching-the-ssd)

You want to dump the FaceTime drivers while still under OS X. Commands below works on OS X 10.11.2:

  • Download the driver (zip version) and extract it
  • Under bcwc_pcie-master/firmware edit the "extract_from_ox.sh" script
  • Line 2, replace IN=AppleCameraInterface with IN=/System/Library/Extensions/AppleCameraInterface.kext/Contents/MacOS/AppleCameraInterface
  • md5sum is missing from a vanilla OS X 10.11 installation, replace "md5sum" by "md5 -r" (lines 7 & 24)
  • Line 5, replace the hash value so it states: OSX_HASH=ccea5db116954513252db1ccb639ce95
  • Execute the script: ./extract_from_ox.sh
  • Result should be like: $ ./extract_from_osx.sh Found matching hash (ccea5db116954513252db1ccb639ce95) Firmware successfully extracted (4e1d11e205e5c55d128efa0029b268fe)

Get Started on Fedora

As of 2015.12, Fedora 23 is current. It will not recognize the internal WiFi card (Broadcom) so you need either the Thunderbolt Ethernet adapter, or any USB Ethernet Adapter known to work on Fedora. Install Fedora.

Once installed, update it: sudo dnf update

You should get everything working (including keyboard backlight, screen brightness, sound) but the FaceTime camera and the WiFi card. Adding the Wifi drivers is outside of this document, and is [well documented - see steps 5 & 6] (http://mattoncloud.org/2014/02/05/fedora-20-on-a-macbook-air/).

Now download the driver. (more to come)

Clone this wiki locally