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!