Beelink CS-Ian Chan
Hi Ian,
Step 1:
❯ cd eh577-libfprint
~/eh577-libfprint main
❯ bash setup.sh clean
EH577 fingerprint driver — build & install
Fetches the EgisTec EH577 driver from Microsoft’s official Update Catalog
(your own licensed copy) and builds a native Linux driver around its matcher.
No EgisTec code is bundled or redistributed by this project.
Do you own an EH577 (1c7a:0577) device and want to proceed? [y/N] y
==> checking prerequisites
==> [¼] downloading the vendor matcher from Microsoft Update Catalog
==> resolving download URL from Microsoft Update Catalog (updateID 3b1a2465-bcea-430a-9da5-88f690ff39b1)
https://catalog.s.download.windowsupdate.com/c/msdownload/update/driver/drvs/2019/01/e87e1b0b-7dbc-4414-bfc0-e943862c7164_dd784a9bddcf1302c6a73b11e56f6b7449fc48d8.cab
==> downloading the driver package (.cab) from Microsoft
==> extracting EgisTouchFPEngine0577.dll
==> verifying checksum (must match the pinned official copy)
OK: wrote windows-driver/EgisTouchFPEngine0577.dll (411112 bytes, sha256 verified against the pinned official package)
==> [2/4] building the matcher engine (.so) from your downloaded copy
[gen] WARN patch rva 0×1a80e: unexpected bytes 00 90
[gen] WARN patch rva 0×1a821: unexpected bytes 89 4c
[gen] wrote egimage.bin: 442368 bytes (sizeofimage), hdrsize=1024 nsec=6
built eh577-engine.so (556560 bytes)
INSTALL (root): place the .so where fprintd can reach it and LABEL it a shared library
install -Dm0755 eh577-engine.so /usr/lib/libfprint-2/eh577-engine.so
semanage fcontext -a -t textrel_shlib_t ‘/usr/lib/libfprint-2/eh577-engine.so’
restorecon -v /usr/lib/libfprint-2/eh577-engine.so
The eh577 libfprint driver dlopen()s this .so instead of memfd-loading the PE.
==> [¾] building libfprint + the eh577 driver (side-by-side; distro libfprint untouched)
==> installing driver files into the tree
==> registering the driver in meson
eh577 already present
==> configuring + building (only the eh577 driver)
~/eh577-libfprint main
❯ rm -rf buld/
~/eh577-libfprint main
❯ rm -rf subprojects/libfprint/build/
~/eh577-libfprint main
Step 2:
❯ cat setup.sh
#!/usr/bin/env bash
setup.sh — one-command build & install of the native EH577 fingerprint driver.
#
This downloads YOUR OWN copy of the EgisTec EH577 driver from Microsoft’s official
Update Catalog, builds a native libfprint driver around its matcher engine, and
installs it. This project bundles and redistributes ZERO EgisTec bytes — each run
fetches the vendor matcher from Microsoft on your machine (the same model Debian’s
ttf-mscorefonts-installer uses). You must OWN an EgisTec EH577 (USB 1c7a:0577)
fingerprint sensor; the driver is licensed for use on that device.
set -euo pipefail
cd “$(dirname ”$0″)"
echo “==============================================================================”
echo “ EH577 fingerprint driver — build & install”
echo “ Fetches the EgisTec EH577 driver from Microsoft’s official Update Catalog”
echo “ (your own licensed copy) and builds a native Linux driver around its matcher.”
echo “ No EgisTec code is bundled or redistributed by this project.”
echo “==============================================================================”
read -r -p “Do you own an EH577 (1c7a:0577) device and want to proceed? [y/N] ” a
[ “$a” = y ] [ “$a” = Y ] { echo “aborted.”; exit 1; }
echo “==> checking prerequisites”
miss=""
for t in curl 7z gcc meson ninja git sha256sum; do command -v “$t” >/dev/null || miss=“$miss $t”; done
if [ -n “$miss” ]; then
echo “!! missing tools:$miss”
echo “ Fedora: sudo dnf install -y curl p7zip meson ninja-build git gcc dnf-plugins-core && sudo dnf builddep -y libfprint”
echo “ (Debian/Ubuntu: apt install curl p7zip-full meson ninja-build git build-essential; apt build-dep libfprint)”
exit 1
fi
echo “==> [¼] downloading the vendor matcher from Microsoft Update Catalog”
bash fetch-engine-dll.sh windows-driver/EgisTouchFPEngine0577.dll
echo “==> [2/4] building the matcher engine (.so) from your downloaded copy”
bash build-engine-so.sh windows-driver/EgisTouchFPEngine0577.dll
echo “==> [¾] building libfprint + the eh577 driver (side-by-side; distro libfprint untouched)”
bash build-eh577.sh
echo “==> [4/4] installing (needs sudo; SELinux stays enforcing, fprintd stays confined)”
sudo bash eh577-install.sh
cat <<‘DONE’
Done. Next:
fprintd-enroll # enroll a finger (sustained hold 15s)
fprintd-verify # verify (brief hold)
sudo authselect enable-feature with-fingerprint # add fingerprint to login (password still works)
Uninstall: sudo bash eh577-install.sh –uninstall
DONE
~/eh577-libfprint main
Then i run meson configuration manually:
❯ sudo pacman -S –needed git base-devel meson ninja pkgconf \
glib2 libgusb opencv openssl fprintd imagemagick
[sudo] Passwort für achimd:
Warnung: git-2.55.0-1.1 ist aktuell – Überspringe
Warnung: base-devel-1-2 ist aktuell – Überspringe
Warnung: meson-1.12.0-1 ist aktuell – Überspringe
Warnung: ninja-1.13.2-3.1 ist aktuell – Überspringe
Warnung: pkgconf-3.0.5-1.1 ist aktuell – Überspringe
Warnung: glib2-2.88.3-1.1 ist aktuell – Überspringe
Warnung: libgusb-0.4.9-2.1 ist aktuell – Überspringe
Warnung: opencv-5.0.0-9.1 ist aktuell – Überspringe
Warnung: openssl-3.6.3-1.1 ist aktuell – Überspringe
Warnung: fprintd-1.94.5-2.1 ist aktuell – Überspringe
Warnung: imagemagick-7.1.2.29-2.1 ist aktuell – Überspringe
Es gibt nichts zu tun
~/eh577-libfprint main
Step 3:
❯ ls -la subprojects/ 2>/dev/null
~/eh577-libfprint main
❯ ls -la subprojects/libfprint/ 2>/dev/null
~/eh577-libfprint main
No Subprojects are existing?