[TRACKING] Fingerprint scanner compatibility with linux (ubuntu, fedora, etc)

The reasons I chose Ubuntu are:

  1. That’s what Framework recommends
  2. It’s super-popular and, thus, is likely to have the most up-to-date drivers and largest support community
  3. It’s the distro I have the most experience with by far

I am certainly willing to try Mint, Debian, or anything else so long as getting it to work on the Framework with all of its hardware (fingerprint reader, wi-fi, deep sleep, headphone jack mic, etc.) isn’t the hassle that Ubuntu has given me.

All of the hardware (fingerprint reader, wifi, deep sleep, headphone jack mic, etc) all works in Debian sid (just follow the guide I linked to). Mostly, it’s just installing the right packages (no building-from-source necessary) or configuring things the right way.

This is a bit of a misunderstanding on your part although I don’t blame you for it if you’re unfamiliar with the Linux space. Ubuntu’s popularity comes in part from its stability which is partially because they don’t rush to support the latest software and drivers at the cost of stability.

While the second part of your statement is true that the popularity of Ubuntu means it’s easier to find help for problems on Ubuntu if you’re looking for something that supports the latest hardware out of the box right away your best bet would be Fedora. Fedora has had great support for the Framework from very early on and even though it’s not as popular as Ubuntu or Mint I would honestly recommend it for anyone trying Linux for the first time on their Framework because everything just works right after the install.

Also there are a lot of Framework owners using Fedora so although it’s no replacement for the wealth of guides out there for Ubuntu I’m sure people in this forum could help if you have problems using Fedora.

I am running Fedora 35, after building myself, and it worked, any enroll attempt ends with error: enroll-disconnected

1 Like

For Ubuntu users:
I didn’t have to compile anything (im running 21.10). Ubuntu devs have a new libfprint package out on launchpad for version 1.94.1 that hasn’t hit mainstream yet.

Download new libfprint binary:
http://launchpadlibrarian.net/566838488/libfprint-2-2_1.94.1+tod1-0ubuntu2_amd64.deb

…and install:
sudo dpkg -i libfprint-2-2_1.94.1+tod1-0ubuntu2_amd64.deb

After a reboot (didnt confirm if this was even needed) I was able to go to settings and enable/enroll fingerprints just fine.

8 Likes

I stumbled upon a revelation of sorts yesterday. See, I was under the erroneous impression that the fingerprint data was being stored on the hard drive somewhere; probably locked away like the root user’s (and other users’) login data. And, thus, it would be wiped out whenever the hard drive was wiped and a new OS installed.

Instead, I have discovered that the fingerprint reader has its own, separate, non-volatile memory where it stores the fingerprint data. Because this data is preserved between reboots (non-volatile), it is also still full of fingerprint data even when the hard drive is wiped and a new OS is installed.

This explains why there are so many posts here about how to delete the fingerprint data. After all, if the fingerprints were stored with Windows, Ubuntu (or any other OS) doesn’t know about it; I guess it cannot read that data because maybe it’s stored in a different format. I don’t know. In any case, this completely explains why I was unable to register (enroll) any new fingerprints after the first set when I first installed Ubuntu and things went awry with it.

Also lending credence to this is the fact that the fingerprint reader’s memory is extremely limited. From what I can tell, it can only store 5 fingerprints. Attempting to store a 6th fingerprint results in the dreaded “Fingerprint device disconnected” message in Ubuntu.

This is all based on my own testing with this particular fingerprint reader. I’m sure other fingerprint reader brands and models may store more (or fewer) fingerprints, but that’s not relevant to this thread about the Framework’s reader. If any of this information is wrong, please correct me, as I am clearly not a fingerprint reader expert; Many of you know much more about them than I do.

Finally, I’d like to apologize for coming across as rather rude in my posts. Not only do I have a tendency to do that in general, I was in a particularly bad mood recently and I should not have let it bleed into this thread.

6 Likes

I can confirm that the solution @imome9a brought up works on Ubuntu 21.04 as well. Sure beats having to compile libfprint manually!

1 Like

Thank you @Devyn_Cairns ! This appimage did the trick for me.

For anyone that may have similar problems… I was having issues on a fresh Fedora 35 install on a newly received laptop. No matter what I did I kept having an error where I would enroll my right index fingerprint and it would then fail to verify the fingerprint on the next use after the initial enroll and remove the fingerprint. Subsequent attempts to enroll the same fingerprint would error and cause the reader to become unavailable until I ran the python script referenced earlier in this thread to delete all the fingerprints. Enrolling different fingerprints (any fingerprint besides right index) didn’t have the issue where they would be removed but they would all fail to verify for use when running fprintd-verify -f <finger>.

I noticed while debugging that there was some persistent fingerprint in the device’s memory that would not delete no matter how many times I ran the python script or fprintd-delete. This could be seen by logging in as root and going to /var/lib/fprint and navigating to my user folder in that directory.In that folder, fingerprint files are named by the order they are registered (1, 2, 3, etc). Fingerprints that I enrolled started at 2 (rather than 1), including the right index finger.

Also, it should be noted that I was not getting the error output in the debugger that some other people were that stated that that I couldn’t enroll a fingerprint because it was too similar to one that one already enrolled. So I’m not sure if the fingerprint stored on the device was even mine. Possibly a latent test print from the factory?

After running the appimage, the stubborn fingerprint was gone and the reader has worked perfectly for several hours and reboots since. Additionally, it has worked for any and all fingerprints I enrolled with it and the naming scheme for the files now starts at 1 with the first print and goes up as you would expect for each print thereafter.

Fingerprint login, sudo, etc is 99% working (with fallback to typed password) on EndeavourOS (arch based distro), by following the instructions at

https://wiki.archlinux.org/title/fprint

My only hiccups now are that:

  • SDDM requires entering a blank password before fingerprint read
  • KDEwallet refuses to be unlocked by fingerprint login

Both appear to be intentional design choices or “undocumented features” by the devs of each software package, and might result in me switching away from said software. Glad I’m in the Linux ecosystem and have the option to do so…

Same results as @velovix - Worked like a charm on my 21.10 - didn’t even have to reboot. Thanks @imome9a !

This worked wonderfully on EndeavourOS, just had to change a few commands to the appropriate arch equivalents. Marvelous though, good stuff.

Thanks for sharing this. It worked perfectly for me (Ubuntu 21.10 with 5.16-rc4 kernel).

How did you manage to find it? Any searches I try come up blank [on duckduckgo / google and directly at launchpad.net].

1 Like

The library in question was libfprint so a simple “ubuntu+libfprint” brings up the launchpad links

What are the chances this binary or greater will be included in 22.04? Or should I hold onto this .deb?

Your script just saved my ass again @devyn_cairns. Sorry I will leave you alone and stop @ing you (and start @ing ing possibly, sorry ing). I uninstalled Ubuntu and forgot to wipe the print first (because I never really set up fingerprint authorization on there) and was able to wipe it from Pop OS. At first I thought it had stopped working but then I realized I just needed to be root.

I did a fresh install of Ubuntu Desktop 21.10 on the 20th of December (my Framework laptop is Batch 6 which uses the Goodix device – usbid is 27c6:609c). The packages for libfprint would part of the default installation:

fprintd/impish,now 1.90.9-1build1 amd64 [installed,automatic]
libfprint-2-2/impish-updates,now 1:1.90.7+git20210222+tod1-0ubuntu4~21.10.1 amd64 [installed,automatic]
libpam-fprintd/impish,now 1.90.9-1build1 amd64 [installed,automatic]

As I am testing both Ubuntu 21.10 and Pop!_OS 21.10 (on the NMVe and 1 TB Expansion Card), I manually typed “apt install libpam-fprintd” to have the package and all dependencies installed:

apt install libpam-fprintd
Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
The following additional packages will be installed:
fprintd libfprint-2-2
The following NEW packages will be installed:
fprintd libfprint-2-2 libpam-fprintd
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 343 kB of archives.
After this operation, 1,422 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 Index of /ubuntu impish-updates/main amd64 libfprint-2-2 amd64 1:1.90.7+git20210222+tod1-0ubuntu4~21.10.1 [240 kB]
Get:2 Index of /ubuntu impish/main amd64 fprintd amd64 1.90.9-1build1 [89.3 kB]
Get:3 Index of /ubuntu impish/main amd64 libpam-fprintd amd64 1.90.9-1build1 [13.7 kB]
Fetched 343 kB in 0s (988 kB/s)
Selecting previously unselected package libfprint-2-2:amd64.
(Reading database … 232223 files and directories currently installed.)
Preparing to unpack …/libfprint-2-2_1%3a1.90.7+git20210222+tod1-0ubuntu4~21.10
.1_amd64.deb …
Unpacking libfprint-2-2:amd64 (1:1.90.7+git20210222+tod1-0ubuntu4~21.10.1) …
Selecting previously unselected package fprintd.
Preparing to unpack …/fprintd_1.90.9-1build1_amd64.deb …
Unpacking fprintd (1.90.9-1build1) …
Selecting previously unselected package libpam-fprintd:amd64.
Preparing to unpack …/libpam-fprintd_1.90.9-1build1_amd64.deb …
Unpacking libpam-fprintd:amd64 (1.90.9-1build1) …
Setting up libfprint-2-2:amd64 (1:1.90.7+git20210222+tod1-0ubuntu4~21.10.1) …
Setting up fprintd (1.90.9-1build1) …
fprintd.service is a disabled or a static unit, not starting it.
Setting up libpam-fprintd:amd64 (1.90.9-1build1) …
Processing triggers for man-db (2.9.4-2) …
Processing triggers for dbus (1.12.20-2ubuntu2) …
Processing triggers for udev (248.3-1ubuntu8pop0~1634223273~21.10~0f0b7aa) …
Processing triggers for libc-bin (2.34-0ubuntu3) …

After the install, I click into Settings > Users to enable the “Fingerprint Login”. Everything was working without any issue.

1 Like

I’m not even dual booting (Arch), but I had the exact same symptoms as other people here. Running this script fixed it immediately. Thank you so much!

1 Like

the ninja is giving me errors

1 Like

Super educational thread, especially @Christopher_McGee ’s notes about storing fingerprints.

Has anyone found an easy way to turn down the brightness on it? I run on .5 brightness, and that thing is a wee spotlight.

@nez - If you use ectool to set the power led color to blue (which it does not support displaying) it turns the led off.

1 Like