# Update libfprint for device ETU905A88-E (1c7a:0584) Ubuntu 24.04 ## Device specifications * Acer SwiftGo14 (SFG14-74) * fingerprint device: `1c7a:0584 LighTuning Technology Inc. ETU905A88-E` * KDE Neon 6.17.0 (Ubuntu 24.04 based) ## Problem The default version provided by apt: `1:1.94.7+tod1-0ubuntu5~24.04.5` However, this version doesn't support device `ETU905A88-E` yet. ![image](https://hackmd.io/_uploads/BkAzN9TFZl.png) So we need to build from source. I've tried newer version from official repository (v1.94.10): https://gitlab.freedesktop.org/libfprint/libfprint/-/releases However, it seems that this device is only partial supported. Log shows when verifying enrolled fingerprint: ``` Print was not found on the devices storage. ``` **In my understanding:** This is a Match-on-Chip (MoC) fingerprint sensor, which means fingerprint data is stored on device itself instead of as system files. In addition, it requires special protocol to communicate with the device (sdcp), which it is not officially supported yet by upstream driver. As a result, though fingerprint enrollment seems completed without error, the fingerprint data is never really being written to device storage. Fortunately, there is a third-party repository that has fixed the issue: https://github.com/TenSeventy7/libfprint-egismoc-sdcp ## Fix #### Install dependencies ```nginx! sudo apt install meson ninja-build build-essential pkg-config libglib2.0-dev libgusb-dev libnss3-dev libpam-dev libudev-dev libusb-1.0-0-dev ``` #### Clone repository & cd into directory ```bash= git clone https://github.com/TenSeventy7/libfprint-egismoc-sdcp.git cd libfprint-egismoc-sdcp ``` #### Build & install: ```nginx meson setup builddir ``` Process might fail with missing dependencies, install them following error outputs. ```nginx ninja -C builddir ``` then, ```bash= sudo ninja -C builddir install sudo ldconfig ``` #### install fprintd ```nginx sudo apt install fprintd libpam-fprintd ``` If already installed, restart service ```nginx sudo systemctl restart fprintd ``` ## Check install status ```nginx ldd /usr/libexec/fprintd | grep fprint ``` make sure it's using `libfprint-2.so.2` file under `/usr/local/lib/` instead of `/lib/` ![image](https://hackmd.io/_uploads/BkKJfoTF-g.png) ## Utilities enroll: ``` fprintd-enroll ``` verify: ``` fprintd-verify ``` ## Related links https://www.reddit.com/r/linuxmint/comments/1n774ys/comment/ntv9dfj/ https://github.com/antoskuu/libfprint-egismoc-sdcp-fix?tab=readme-ov-file