ELAN finger print sensor 04f3:0c3d, works consistently in Windows 10, even Windows 11, but never verifies in Linux?
ELAN finger print sensor 04f3:0c3d, works consistently in Windows 10, even Windows 11, but never verifies in Linux? Bus 001 Device 012: ID 04f3:0c3d Elan Microelectronics Corp. ELAN:Fingerprint
I have compiled libfprint and fprintd from source, via meson and ninja. Can consistently enroll prints, but verify always returned no match. Given that this sensor works in Windows 10, and even Windows 11, why it does not work in Linux, in my case Debian 11, really is a mystery. If is definitely on the supported list, has been on the list for a while, per my understanding. Even recognized via PAM and GDM3, seems to accept the scan but since verify fails, authentication never complete?
What additional information is needed?
# uname -a Linux test 5.10.0-13-amd64 #1 (closed) SMP Debian 5.10.106-1 (2022-03-17) x86_64 GNU/Linux
# cat /etc/os-release PRETTY_NAME="Debian GNU/Linux 11 (bullseye)" NAME="Debian GNU/Linux" VERSION_ID="11" VERSION="11 (bullseye)" VERSION_CODENAME=bullseye ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/"
# fprintd-enroll -f left-thumb Using device /net/reactivated/Fprint/Device/2 Enrolling left-thumb finger. Enroll result: enroll-swipe-too-short 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-completed root@test:/home/jibun# fprintd-list root found 1 devices Device at /net/reactivated/Fprint/Device/3 Using device /net/reactivated/Fprint/Device/3 Fingerprints for user root on ElanTech Fingerprint Sensor (swipe):
- #0: left-thumb
- #1 (closed): right-thumb root@test:/home/jibun root@test:/home/jibun# fprintd-verify -f left-thumb Using device /net/reactivated/Fprint/Device/5 Listing enrolled fingers:
- #0: left-thumb
- #1 (closed): right-thumb Verify started! Verifying: left-thumb Verify result: verify-no-match (done)
# fprintd-verify -f right-thumb Using device /net/reactivated/Fprint/Device/0 Listing enrolled fingers:
- #0: left-thumb
- #1 (closed): right-thumb Verify started! Verifying: right-thumb Verify result: verify-no-match (done)
The one question I have, is even though I compiled libfprint and fprintd, the older versions are part of the default installation.
# dpkg -l | grep libfprint ii libfprint-2-2:amd64 1:1.90.7-2 amd64 async fingerprint library of fprint project, shared libraries ii libfprint-2-dev:amd64 1:1.90.7-2 amd64 async fingerprint library of fprint project, development headers
# dpkg -l | grep fprintd rc fprintd 1.90.9-1 amd64 D-Bus daemon for fingerprint reader access
So when I compiled the latest fprintd and libfprint, they are in /usr/local/bin/
# cd /usr/local/bin root@test:/usr/local/bin# ls -l total 1148 -rwxr-xr-x 1 root root 289776 Mar 30 22:19 fprintd-delete -rwxr-xr-x 1 root root 293608 Mar 30 22:19 fprintd-enroll -rwxr-xr-x 1 root root 274832 Mar 30 22:19 fprintd-list -rwxr-xr-x 1 root root 291560 Mar 30 22:19 fprintd-verify
Using the above, explicitly, enroll works, but verify always fails.
# fprintd-delete root found 1 devices Device at /net/reactivated/Fprint/Device/0 Using device /net/reactivated/Fprint/Device/0 Fingerprints of user root deleted on ElanTech Fingerprint Sensor
Enrollment...
# fprintd-enroll -f right-thumb Using device /net/reactivated/Fprint/Device/0 Enrolling right-thumb finger. Enroll result: enroll-stage-passed Enroll result: enroll-swipe-too-short Enroll result: enroll-stage-passed Enroll result: enroll-stage-passed Enroll result: enroll-stage-passed Enroll result: enroll-stage-passed Enroll result: enroll-completed /usr/local/bin# fprintd-enroll -f left-thumb Using device /net/reactivated/Fprint/Device/1 Enrolling left-thumb finger. Enroll result: enroll-swipe-too-short 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-completed
Verify...
# fprintd-verify -f right-thumb Using device /net/reactivated/Fprint/Device/0 Listing enrolled fingers:
- #0: left-thumb
- #1 (closed): right-thumb Verify started! Verifying: right-thumb Verify result: verify-swipe-too-short (not done) Verify result: verify-no-match (done) root@test:/usr/local/bin# fprintd-verify -f left-thumb Using device /net/reactivated/Fprint/Device/1 Listing enrolled fingers:
- #0: left-thumb
- #1 (closed): right-thumb Verify started! Verifying: left-thumb Verify result: verify-no-match (done)