1

My Macbook Air runs Elementary OS 0.4.1 Loki and my webcam is not working out of the box. First thing I've done was trying to identify the precise device

lsusb

Bus 002 Device 002: ID 05ac:8406 Apple, Inc. 
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 05ac:0291 Apple, Inc. 
Bus 001 Device 006: ID 05ac:828f Apple, Inc. 
Bus 001 Device 002: ID 0a5c:4500 Broadcom Corp. BCM2046B1 USB 2.0 Hub (part of BCM2046 Bluetooth)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

lspci

02:00.0 Multimedia controller: Broadcom Corporation 720p FaceTime HD Camera

What I can assume, first of all, is that the webcam is not recognised as an usb device but as a pci one.

Sincerely speaking, I don't know if this represent a problem or not.

However, as far as I can see, the unique solution online is bcwc_pcie driver. This driver was created for FacetimeHD (Broadcom 0x1570) PCIe webcam.

I've followed the Get started wiki page, extracting the firmware and, then, installing it, but I really can't make the webcam working. To sum up what I did was:

  • Going to my Documents folders

cd Documents

  • sudo apt-get install curl xz-utils cpio
  • git clone https://github.com/patjak/bcwc_pcie.git
  • cd bcwc_pcie/firmware/
  • enter preformatted text here
  • $ make
  • # make install

The result was:

luca@lucabook:~/Documents/bcwc_pcie/firmware$ make

Checking dependencies for driver download...
/usr/bin/curl
/usr/bin/xzcat
/bin/cpio

Downloading the driver, please wait...


Found matching hash from OS X, El Capitan 10.11.3
==> Extracting firmware...
 --> Decompressing the firmware using gzip...
 --> Deleting temporary files...
 --> Extracted firmware version 1.43.0

luca@lucabook:~/Documents/bcwc_pcie/firmware$ sudo su
root@lucabook:/home/luca/Documents/bcwc_pcie/firmware# make install
Copying firmware into '//lib/firmware/facetimehd'
root@lucabook:/home/luca/Documents/bcwc_pcie/firmware# 

Now, after the firmware extraction, I installed it (following the Ubuntu/Debian instructions):

  • sudo apt-get install linux-headers-4.10.0-42-generic linux-headers-4.10.0-42-lowlatency git kmod libssl-dev checkinstall
  • removed the "old" bcwc_pcie driver directory

    rm -rf bcwc-pcie/

  • git it again:

    $ git clone https://github.com/patjak/bcwc_pcie.git

Now make the kernel module:

luca@lucabook:~/Documents/bcwc_pcie$ make
make -C /lib/modules/4.10.0-42-generic/build M=/home/luca/Documents/bcwc_pcie modules
make[1]: Entering directory '/usr/src/linux-headers-4.10.0-42-generic'
  CC [M]  /home/luca/Documents/bcwc_pcie/fthd_ddr.o
  CC [M]  /home/luca/Documents/bcwc_pcie/fthd_hw.o
  CC [M]  /home/luca/Documents/bcwc_pcie/fthd_drv.o
  CC [M]  /home/luca/Documents/bcwc_pcie/fthd_ringbuf.o
  CC [M]  /home/luca/Documents/bcwc_pcie/fthd_isp.o
  CC [M]  /home/luca/Documents/bcwc_pcie/fthd_v4l2.o
  CC [M]  /home/luca/Documents/bcwc_pcie/fthd_buffer.o
  CC [M]  /home/luca/Documents/bcwc_pcie/fthd_debugfs.o
  LD [M]  /home/luca/Documents/bcwc_pcie/facetimehd.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/luca/Documents/bcwc_pcie/facetimehd.mod.o
  LD [M]  /home/luca/Documents/bcwc_pcie/facetimehd.ko
make[1]: Leaving directory '/usr/src/linux-headers-4.10.0-42-generic

And make install it:

luca@lucabook:~/Documents/bcwc_pcie$ sudo su
root@lucabook:/home/luca/Documents/bcwc_pcie# make install
make -C /lib/modules/4.10.0-42-generic/build M=/home/luca/Documents/bcwc_pcie modules_install
make[1]: Entering directory '/usr/src/linux-headers-4.10.0-42-generic'
INSTALL /home/luca/Documents/bcwc_pcie/facetimehd.ko
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:178
sign-file: certs/signing_key.pem: No such file or directory
DEPMOD  4.10.0-42-generic
make[1]: Leaving directory '/usr/src/linux-headers-4.10.0-42-generic'

To end the installation, I only run depmod and loaded the kernel module:

root@lucabook:/home/luca/Documents/bcwc_pcie# depmod
root@lucabook:/home/luca/Documents/bcwc_pcie# modprobe facetimehd

Listing the active modules, this is what I can see:

root@lucabook:/home/luca/Documents/bcwc_pcie# lsmod | grep facetimehd
facetimehd            102400  0
videobuf2_dma_sg       16384  1 facetimehd
videobuf2_v4l2         24576  1 facetimehd
videobuf2_core         40960  2 facetimehd,videobuf2_v4l2
videodev              172032  3 facetimehd,videobuf2_core,videobuf2_v4l2

The question is, why my webcam is still not working?

Thanks in advance for your help!

2 Answers 2

1

I had the exact same problem, MacBook Air late 2014. On Elementary Os Loki 4.1 Kernel: 4.9

after doing everything exactly the same as you, I ran:

sudo modprobe -r facetimehd
sudo modprobe -r bdc_pci
sudo modprobe facetimehd

And now the camera works perfectly.

It's here in "additional notes": https://github.com/patjak/bcwc_pcie/wiki/Get-Started#devvideo-not-created

1
  • Thank you guys!! i have installed ubuntu 18 in a 8gb usb and is running now on an Macbook air with facetime support by following your instructions with some minor adjustments due to version of headers.
    – Dave Mess
    Commented Nov 20, 2020 at 17:24
0

I unfortunately continue to get this after the 'make install' step. Any ideas?

Tonys-MacBook-Air:/usr/src/facetimehd-0.1# sudo make install

make -C /lib/modules/5.15.0-56-generic/build M=/usr/src/facetimehd-0.1 modules_install make[1]: Entering directory '/usr/src/linux-headers-5.15.0-56-generic' arch/x86/Makefile:142: CONFIG_X86_X32 enabled but no binutils support INSTALL /lib/modules/5.15.0-56-generic/extra/facetimehd.ko SIGN /lib/modules/5.15.0-56-generic/extra/facetimehd.ko At main.c:160:

  • SSL error:02001002:system library:fopen:No such file or directory: ../crypto/bio/bss_file.c:69
  • SSL error:2006D080:BIO routines:BIO_new_file:no such file: ../crypto/bio/bss_file.c:76 sign-file: certs/signing_key.pem: No such file or directory DEPMOD /lib/modules/5.15.0-56-generic Warning: modules_install: missing 'System.map' file. Skipping depmod. make[1]: Leaving directory '/usr/src/linux-headers-5.15.0-56-generic' root@Tonys-MacBook-Air:/usr/src/facetimehd-0.1# printf "done\n\n"; done

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.