-
-
Save ukn/a2f85e3420ae7d0f64db2274a9bc106b to your computer and use it in GitHub Desktop.
Install the kernal module required for the facetimehd camera to work on Linux
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
set -e | |
export CONFIG_MODULE_SIG=n | |
export CONFIG_MODULE_SIG_ALL=n | |
# For current kernel | |
export KERNELRELEASE=$(cat /proc/version | awk '{print $3}') | |
temp_dir=$(mktemp -d) | |
echo "Installing FacetimeHD camera for $KERNELRELEASE" | |
cd $temp_dir | |
git clone https://github.com/patjak/facetimehd-firmware.git | |
git clone https://github.com/patjak/bcwc_pcie.git | |
cd $temp_dir/facetimehd-firmware | |
pwd | |
make | |
make install | |
cd $temp_dir/bcwc_pcie | |
pwd | |
make | |
make install | |
rm -rf $temp_dir | |
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 | |
# Workaround for depmod being skipped above with error: | |
# Warning: modules_install: missing 'System.map' file. Skipping depmod | |
echo "Generate modules.dep and map files" | |
sudo depmod | |
echo "Adding kernel modules" | |
sudo modprobe -r bdc_pci | |
sudo modprobe facetimehd | |
echo "Install complete" |
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
git clone https://github.com/patjak/bcwc_pcie.git
cd bcwc_pcie
mkdir /usr/src/facetimehd-0.1
cp -Rf ./* /usr/src/facetimehd-0.1
dkms add -m facetimehd -v 0.1
dkms build -m facetimehd -v 0.1
dkms install -m facetimehd -v 0.1 --force
modprobe facetimehd
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hello, I have latest Ubuntu 24.04.1 and when script runs I get this error. Can you help, please:
Copying firmware into '//usr/lib/firmware/facetimehd'
/tmp/tmp.UFC9QVUmI1/bcwc_pcie
make -C /lib/modules/6.8.0-41-generic/build M=/tmp/tmp.UFC9QVUmI1/bcwc_pcie modules
make[1]: Entering directory '/usr/src/linux-headers-6.8.0-41-generic'
warning: the compiler differs from the one used to build the kernel
The kernel was built by: x86_64-linux-gnu-gcc-13 (Ubuntu 13.2.0-23ubuntu4) 13.2.0
You are using: gcc-13 (Ubuntu 13.2.0-23ubuntu4) 13.2.0
CC [M] /tmp/tmp.UFC9QVUmI1/bcwc_pcie/fthd_ddr.o
CC [M] /tmp/tmp.UFC9QVUmI1/bcwc_pcie/fthd_hw.o
CC [M] /tmp/tmp.UFC9QVUmI1/bcwc_pcie/fthd_drv.o
CC [M] /tmp/tmp.UFC9QVUmI1/bcwc_pcie/fthd_ringbuf.o
CC [M] /tmp/tmp.UFC9QVUmI1/bcwc_pcie/fthd_isp.o
CC [M] /tmp/tmp.UFC9QVUmI1/bcwc_pcie/fthd_v4l2.o
CC [M] /tmp/tmp.UFC9QVUmI1/bcwc_pcie/fthd_buffer.o
CC [M] /tmp/tmp.UFC9QVUmI1/bcwc_pcie/fthd_debugfs.o
LD [M] /tmp/tmp.UFC9QVUmI1/bcwc_pcie/facetimehd.o
MODPOST /tmp/tmp.UFC9QVUmI1/bcwc_pcie/Module.symvers
CC [M] /tmp/tmp.UFC9QVUmI1/bcwc_pcie/facetimehd.mod.o
LD [M] /tmp/tmp.UFC9QVUmI1/bcwc_pcie/facetimehd.ko
BTF [M] /tmp/tmp.UFC9QVUmI1/bcwc_pcie/facetimehd.ko
make[1]: Leaving directory '/usr/src/linux-headers-6.8.0-41-generic'
make -C /lib/modules/6.8.0-41-generic/build M=/tmp/tmp.UFC9QVUmI1/bcwc_pcie modules_install
make[1]: Entering directory '/usr/src/linux-headers-6.8.0-41-generic'
INSTALL /lib/modules/6.8.0-41-generic/updates/facetimehd.ko
SIGN /lib/modules/6.8.0-41-generic/updates/facetimehd.ko
DEPMOD /lib/modules/6.8.0-41-generic
Warning: modules_install: missing 'System.map' file. Skipping depmod.
make[1]: Leaving directory '/usr/src/linux-headers-6.8.0-41-generic'
Generate modules.dep and map files
Adding kernel modules
modprobe: FATAL: Module bdc_pci not found.
lovrenco@MacBuntu:~/Documents$