-
-
Save giannello/367b868618950e5687ef344d82d1e204 to your computer and use it in GitHub Desktop.
| #!/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 ubuntu/latest 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}" |
Just to add after some further testing, if I wait about 1 minute after starting enroll it seems to register my prints, so at least I know the sensor is physically working now, but I get a certain amount through the registration and then it locks up:
Using device /net/reactivated/Fprint/Device/0
Enrolling right-index-finger finger.
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-unknown-error
Checking the service logs it shows ongoing registration at the time but at the point of failure above I get one of two errors:
Apr 27 13:21:55 peitho fprintd[1538]: Device reported an error during enroll: Enrollment failed : Device status = (11)
Apr 27 13:24:55 peitho fprintd[1538]: Device reported an error during enroll: Device disabled to prevent overheating.
I have tried reinstalling the script/driver using ubuntu/jammy as suggested earlier in the thread, but that had the same exact outcome, so I have reinstalled again using the default ubuntu/latest.
I have also tried resetting my TPM chip in the BIOS as a post I found suggested that previously registered Windows Hello data, which is held in the reader's local memory, could be blocking registration in Linux - no dice. :(
Hello, I wonder if someone could assist me - I have completed the script install for the broadcom driver on my Dell Latitude 5430 with Debian 13, and everything appears to be installed and running correctly:
However, every time I try to run fprintd-enroll or attempt through the GUI in Settings for my user account, it doesn't 'bring anything up' or confirm reads at all with a response either in the GUI or CLI, as if it's just not doing anything, yet the above says everything is online and working.
Pulling my hair out a bit now so going to go for a cup of tea and think about anything else until someone might have an idea!!
Thanks in advance, Iain.