Skip to content

Instantly share code, notes, and snippets.

@Stono
Created February 27, 2017 10:35
Show Gist options
  • Save Stono/990ea9f0b3c41606c292f00382d421bf to your computer and use it in GitHub Desktop.
Save Stono/990ea9f0b3c41606c292f00382d421bf to your computer and use it in GitHub Desktop.
Install the kernal module required for the facetimehd camera to work on Linux
#!/bin/bash
set -e
export CONFIG_MODULE_SIG=n
export CONFIG_MODULE_SIG_ALL=n
export KERNELRELEASE=${1}
echo "Installing FacetimeHD camera for $KERNELRELEASE"
cd /tmp
git clone https://github.com/patjak/bcwc_pcie.git
cd bcwc_pcie/firmware
make
make install
cd ..
make
make install
rm -rf /tmp/bcwc_pcie
if [ ! -d "/etc/modules-load.d" ]; then
mkdir -p "/etc/modules-load.d"
fi
cat > "/etc/modules-load.d/facetimehd.conf" << EOL
videobuf2-core
videobuf2_v4l2
videobuf2-dma-sg
facetimehd
EOL
echo "Install complete."
@urbantrout
Copy link

@gonzaloFigueras You need to install curl

@avtkal
Copy link

avtkal commented May 2, 2020

I get stucked here:
/tmp/bcwc_pcie/firmware$ make
make: *** No targets specified and no makefile found. Stop.

Could someone help with this?
Thank you!

@atulpendse
Copy link

Same error for me on Fedora 32

[apendse@apendse-fedora firmware]$ pwd
/data/workspace/bcwc_pcie/firmware

[apendse@apendse-fedora firmware]$ sudo make
make: *** No targets specified and no makefile found. Stop.

@ukn
Copy link

ukn commented Jul 3, 2020

Had to modify the script a bit but got it working on Linux Mint 19.3 (kernel 5.4.0-40-generic)
https://gist.github.com/ukn/a2f85e3420ae7d0f64db2274a9bc106b

@petrstepanov
Copy link

Thanks @ukn I've just tried your script on Fedora 32. I had to comment out line #43:
https://gist.github.com/petrstepanov/73e1eeaeca8b56bf4bca2a367f18fe95
and it worked great. Enjoying my camera now!

@DavefromGA
Copy link

Thanks Stono for this script. I ended up using it as the base for what I was trying to solve. I did try it like you instructed, but it wouldnt work on my machine. I have a 2015 MacBook Pro... I though about it a while and realized that the only time I need this to run is when I update the kernel, since this is when it kills the install. So I just changed the script to do the apt update then automatically just run your script and basically reinstall the driver immediately after the kernel update. Works perfectly. I put it on my page if your interested in seeing how I did it. Thank you for helping me get my camera running again.

@ca4ti
Copy link

ca4ti commented Nov 23, 2024

Update :

lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.10
Release: 24.10
Codename: oracular

apt-get install pahole

ln -sf /boot/System.map-$(uname -r) /usr/src/linux-headers-$(uname -r)/System.map

ln -sf /usr/lib/modules/$(uname -r)/vmlinux.xz /boot/

install this version : https://gist.github.com/petrstepanov/73e1eeaeca8b56bf4bca2a367f18fe95

@ca4ti
Copy link

ca4ti commented Nov 23, 2024

lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.10
Release: 24.10
Codename: oracular

apt-get install pahole

ln -sf /boot/System.map-$(uname -r) /usr/src/linux-headers-$(uname -r)/System.map

ln -sf /usr/lib/modules/$(uname -r)/vmlinux.xz /boot/

install this version : https://gist.github.com/petrstepanov/73e1eeaeca8b56bf4bca2a367f18fe95

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment