Last active
November 14, 2025 17:06
-
-
Save giannello/367b868618950e5687ef344d82d1e204 to your computer and use it in GitHub Desktop.
Install fprintd-tod with support for Broadcom readers on Debian testing
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
| #!/usr/bin/env sh | |
| #################################################################### | |
| ### ____ _____ ____ ___ _ _ _ ___ _ _ _ __ __ ### | |
| ### | _ \| ____| __ )_ _| / \ | \ | | / _ \| \ | | | \ \ / / ### | |
| ### | | | | _| | _ \| | / _ \ | \| | | | | | \| | | \ V / ### | |
| ### | |_| | |___| |_) | | / ___ \| |\ | | |_| | |\ | |___| | ### | |
| ### |____/|_____|____/___/_/ \_\_| \_| \___/|_| \_|_____|_| ### | |
| #################################################################### | |
| ####### _ _ ___ _ _ ____ _ _ _ _ _____ _ _ ######## | |
| ####### | \ | |/ _ \ | | | | __ )| | | | \ | |_ _| | | | ######## | |
| ####### | \| | | | | | | | | _ \| | | | \| | | | | | | | ######## | |
| ####### | |\ | |_| | | |_| | |_) | |_| | |\ | | | | |_| | ######## | |
| ####### |_| \_|\___/ \___/|____/ \___/|_| \_| |_| \___/ ######## | |
| #################################################################### | |
| TEMPDIR=$(mktemp -d) | |
| # Install build dependencies | |
| sudo DEBIAN_FRONTEND=noninteractive apt -qq build-dep -y libfprint-2-2 | |
| # Clone the closed-source library and firmware | |
| cd "${TEMPDIR}" || exit | |
| git clone --depth=1 --branch jammy git://git.launchpad.net/libfprint-2-tod1-broadcom | |
| cd libfprint-2-tod1-broadcom || exit | |
| sudo cp lib/udev/rules.d/60-libfprint-2-device-broadcom.rules /usr/lib/udev/rules.d/60-libfprint-2-device-broadcom.rules | |
| sudo chown -R root:root /usr/lib/udev/rules.d/60-libfprint-2-device-broadcom.rules | |
| sudo mkdir -p /usr/lib/x86_64-linux-gnu/libfprint-2/tod-1 | |
| sudo cp usr/lib/x86_64-linux-gnu/libfprint-2/tod-1/libfprint-2-tod-1-broadcom.so /usr/lib/x86_64-linux-gnu/libfprint-2/tod-1/libfprint-2-tod-1-broadcom.so | |
| sudo chown -R root:root /usr/lib/x86_64-linux-gnu/libfprint-2/tod-1/libfprint-2-tod-1-broadcom.so | |
| sudo cp -r var/lib/fprint/fw /var/lib/fprint/ | |
| sudo chown -R root:root /var/lib/fprint/fw | |
| # Clone libfprint, switch to the correct tag, patch and build | |
| # LIBFPRINT_VERSION=$(dpkg-query --showformat='${Version}' --show fprintd | cut -d '-' -f 1) | |
| LIBFPRINT_VERSION=$(dpkg-query --showformat='${Version}' --show libfprint-2-2 | cut -d '-' -f 1 | cut -d ":" -f 2) | |
| cd "${TEMPDIR}" || exit | |
| git clone --branch v${LIBFPRINT_VERSION}+tod1 --depth=1 https://gitlab.freedesktop.org/3v1n0/libfprint.git | |
| cd "${TEMPDIR}"/libfprint || exit | |
| sed -e "/subdir('tests')/s/^/#/g" -i meson.build | |
| sed -e "/subdir('examples')/s/^/#/g" -i meson.build | |
| meson build --prefix=/usr | |
| cd build || exit | |
| meson compile | |
| sudo cp libfprint/tod/libfprint-2-tod.so.1 /usr/lib/x86_64-linux-gnu/libfprint-2-tod.so.1 | |
| sudo chown root:root /usr/lib/x86_64-linux-gnu/libfprint-2-tod.so.1 | |
| sudo ln -sf /usr/lib/x86_64-linux-gnu/libfprint-2-tod.so.1 /usr/lib/x86_64-linux-gnu/libfprint-2-tod.so | |
| sudo cp libfprint/libfprint-2.so.2 /usr/lib/x86_64-linux-gnu/ | |
| sudo chown root:root /usr/lib/x86_64-linux-gnu/libfprint-2.so.2 | |
| ## Remove file incorrectly copied in a previous revision of this gist | |
| sudo rm -f /usr/lib/x86_64-linux-gnu/libfprint-2/tod-1/libfprint-2-tod.so.1 | |
| cd "${TEMPDIR}" | |
| # Configure fprintd to not sleep | |
| sudo mkdir -p /etc/systemd/system/fprintd.service.d | |
| cat > override.conf <<EOF | |
| [Service] | |
| ExecStart= | |
| ExecStart=/usr/libexec/fprintd --no-timeout | |
| EOF | |
| sudo cp override.conf /etc/systemd/system/fprintd.service.d/override.conf | |
| sudo udevadm control --reload-rules | |
| sudo systemctl daemon-reload | |
| sudo systemctl restart fprintd | |
| rm -rf "${TEMPDIR}" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks! It works with dell latitude 7330 on debian 13 trixie (so stable, not testing). Thanks to that script I am not forced to switching to ubuntu, but to debian, which in my opinion is better... But there is one line, I had to change: git clone --depth=1 --branch jammy git://git.launchpad.net/libfprint-2-tod1-broadcom must have been changed to git clone --depth=1 --branch ubuntu/jammy git://git.launchpad.net/libfprint-2-tod1-broadcom, because git threw an error, that jammy branch is not found, but after that fix is works perfect! And even after suspend it works (at least in my case).