For those using Kubuntu 21.10 (I use KDE 5.86.0 / Plasma 5.22.5), it works very well!
First, install libs using this script mentioned above:
→ sh libfprint_v1.94.1_install_v2.sh
Now, there is no GUI to enroll the fingerprints. In order to enroll, use the command from the post above:
→ fprintd-enroll -f right-index-finger
Then, after restart I couldn’t log in. There is a bug in login GUI that asks for password, but doesn’t check fingerprint until you press “Enter”. Even then it doesn’t allow to log in to KDE.
In order to be able to log into the desktop, you need to do the following:
→ Add auth sufficient pam_fprintd.so to the top of file /etc/pam.d/sddm
My issue has not been getting Linux to recognize the hardware and attempt to use it. It has been the hardware. If you have installed Windows first and have configured the reader with Windows, it will not work on Linux. I’ve tried 7 different distros and have been able to get the reader installed and visible under Gnome Users. Never able to register a finger though. However, before I installed Windows I did Install Fedora 34 and I got the fingerprint working there, so I know it works if you don’t pre-register with it under a different OS.
As for me, I have not been able to get this thing working under any Linux OS regardless of DE. Just kinda waiting for fprint updates to handle it I suppose. It does work with Windows 11 just fine.
Attempting to get the fingerprint reader working for on Linux Mint and have managed to get as far as building fprintd. Kind of wanting to pull my hair out, and would appreciate a hand.
This is the error I am getting:
meson.build:92:0: ERROR: Invalid version of dependency, need 'libfprint-2' ['>=1.94.0'] found '1.92.1'.
after running:
sudo dpkg-buildpackage -b -uc -us -d
The first time I got the error, I figured I would install the version of libfprint that fprintd is looking for. I uninstalled the previous one (1.92.1) and then substituted the tarball curled in step 1 of @Henry_Luengas 's guide with this one.
However, the error persists. It seems to me that libfprint v1.92.1 is installed somewhere, and it overrides the 1.94.1 package built in the guide? Only the latter shows up in Synaptic.
This Linux newbie thanks all for their help!
Distro: Linux Mint 20.2
Desktop Env.: Cinnamon 5.0.6
Linux Kernel: 5.14.9-051409-generic (updated manually for wifi compatibility)
Without the -d, I get an error about being unable to find the debhelper-compat dependency, which appears to not exist on Mint or is coupled with the debhelper package which has already been installed with build-dep. The workaround comes from:
Instead of doing that, edit debian/control and, in the Build-Depends section, replace the debhelper-compat dependency with debhelper (or, alternatively, just remove the dependency entirely).
Both modifying the dependency and removing it altogether resulted in errors involving requiring a compatibility level in debian/compat. Some research helped me to figure out that debhelper-compat is, in fact, an acceptable dependency in Mint and I just had to modify the version number of debhelper-compat in debian/control to match the version of debhelper I have installed.
I am still getting the same error about requiring libfprint >= 1.94.0, but now the buildpkg command works without the -d argument.
I may have when I first started tackling this problem using the information in the 18th post in this thread, but I completely removed the packages installed there via Synaptic (or pip when applicable) when that didn’t work entirely. Here is the output of dpkg -l libfprint*:
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-
aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-=====================-============-============-
===========================>
ii libfprint-2-2:amd64 1:1.94.1-1 amd64 async fingerprint
library o>
ii libfprint-2-dev:amd64 1:1.94.1-1 amd64 async fingerprint
library o>
un libfprint-2-doc <none> <none> (no description
available)
I think I’ve managed to get a little further by modifying debian/control and meson.build specifically in the versions of libfprint they are searching for, and now coming to this (preceded by several “implicit declaration of function” errors):
ninja: build stopped: subcommand failed.
dh_auto_build: error: cd obj-x86_64-linux-gnu && LC_ALL=C.UTF-
8 ninja -j8 -v returned exit code 1
make: *** [debian/rules:6: build] Error 1
dpkg-buildpackage: error: debian/rules build subprocess
returned exit status 2
Mind dumping the full build log into a gist or something? The final outcome is showing a build failure, but there’s not enough to determine what lead to that failure.
So the relevant errors look like this (with the function varying by callsite):
../src/device.c: In function ‘fprint_device_get_property’:
../src/device.c:301:28: error: implicit declaration of function ‘fp_device_get_temperature’; did you mean ‘fp_device_get_features’? [-Werror=implicit-function-declaration]
301 | fp_device_get_temperature (priv->dev) > FP_TEMPERATURE_COLD);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
| fp_device_get_features
Doing a quick search, this function is defined in /usr/include/libfprint-2/fp-device.h, which is part of libfprint. However, the fact this declaration can’t be found indicates the version that gcc is using is not the correct version.
If you do a find /usr -name fp-device.h 2> /dev/null, do you get multiple results outside of your home directory? I’m wondering if you have an older version of the header/library kicking around on your system, and the build system is finding the older version of libfprint.
Edit:
Huh, I also just noticed this little tidbit in the build commands:
-I/usr/local/include/libfprint-2
I’ll bet money you have an older copy of libfprint installed in /usr/local and it’s being picked up during the build.
Aha! Yes, there was a copy of libfprint in there. I’ve deleted it and now I’m going to start the process from the beginning and see what happens. Will report back.
No luck, it’s still finding v1.92.1 somewhere. find /usr -name fp-device.h 2> /dev/null outputs only one result. I suspect that it’s some environment variable having to do with pkgconfig? But I’m not great at reading build logs yet. Here is the new output:
Well, the build results still indicate you’ve got some or all of an old version of the library sitting around somewhere:
../meson.build:92:0: ERROR: Invalid version of dependency, need 'libfprint-2' ['>=1.94.0'] found '1.92.1'.
I’d do a pkg-config --variable=pcfiledir libfprint-2 to hunt down where the package configuration is coming from. As an example, on my system you see this:
My bet is for you it’ll be in /usr/local somewhere, and while you stamped out the files in /usr/local/include and /usr/local/lib, you missed the pkg-config metadata file for the library.
If that’s right, you’ll want to delete the .pc file as well.
As an FYI for folks, Debian testing is now shipping fprintd and libfprint 1.94! So no more manual building of packages!
If you’re running stable, you’ll want to add the testing or unstable repos and pull those packages. But it seems to be working great for me, and as a bonus, their build of 1.94 is way faster at fingerprint recognition than my own build of 1.92.
I certainly elided some important details. In particular you have to make sure to set up your package pinning rules correctly so you can selectively pull the packages without upgrading the whole system:
Yeah, sometimes this can cause unexpected dependencies to get pulled in, but in this case it’s fine as libfprint and fprintd don’t themselves pull in anything else.