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

The only thing in /usr/local/lib is a python3.9 directory.

The results of the grep are gdm-fingerprint:auth required and gdm-fingerprint:password required.

Hi guys!
Thanks for all the guides. As it was quite fragmented across many posts and it took me a while to figure out, I thought I’d help the next one of you save some time.
For Ubuntu 21 I logged all the commands I ran to get the fingerprint reader working both for login and the terminal here: https://github.com/Alexis-BX/framework_setup
Hope it helps!

1 Like

Okay, so now I’m confused. How exactly did you install/setup fingerprint authentication? I figured that if you did it manually, the files would go in /usr/local, and if you installed the distro package the package would come up as installed (libpam-fprintd).

As I said in my original post, I used the shell script helpfully provided by @Carlos_Fernandez_San in his post above. Honestly, I’m not even sure if I needed to do that; I should have tested to see whether or not the latest Ubuntu (21.10) can use the fingerprint reader out-of-the box first. Well, I’ll get my chance today because I’m definitely going to re-install Ubuntu now.

What worries me most is if that if a simple sudo apt upgrade -y can kill the fingerprint reader, then I’m really in trouble.

Well, something’s odd, since libpam-fprintd isn’t installed, but the script installs it. What I suspect happened is that your upgrade removed libpam-fprintd because one of its dependencies conflicted with an upgraded package or so.

It’s one of the reasons I never add -y, since I want a chance to read over the actions that will be taken before actually doing the upgrade.

Unfortunately, your script did not seem to work for me on a fresh installation of Ubuntu 21.10. After running the shell script, the option to enroll fingerprints didn’t appear. Rebooted, ran the script again, and then the option appeared.

However, every attempt to enroll a fingerprint failed with the same messages I mentioned in a previous post:

Registering a new fingerprint gets almost to the end, then it says “Fingerprint device disconnected.” And I get the message “Failed to claim fingerprint device Goodix MOC Fingerprint Sensor: the device is already claimed by another process.”

I’ll try another flush-n-fill tomorrow with Carlos’s script again and see if that works again.

I’m getting real close to giving up and just installing Windows.

I had the same error but purging fprintd and libfprint before installation solved it for me. A forum also recommended this: sudo service fprintd stop to force it to release the reader.
Also maybe try 21.04 instead of 21.10?
Hope you can make it!

How does one “purge” those?

Also, an update: I’ve now reinstalled Ubuntu 21.10 three times. The most recent time, I followed @Henry_Luengas’s “Final Guide” to the letter (or, rather, to the version number). I kept running into one error or another during the first package building phase, and none of them were the “symbols” error that he said to expect. Also got an “E: You must put some ‘deb-src’ URIs in your sources.list” error message after running sudo apt build-dep libfprint. Maybe this is part of the problem, but I have no clue how to address it.

I’m trying one more time, with Ubuntu 21.04, which, by the way, was not easy to find. Ubuntu really doesn’t want you downloading that, apparently, so they buried it several small links deep.

This thread is getting too long and too fragmented.

But:

I encountered this:

I have tried Ubuntu 21.10 and 21.04.
I have tried building from source using Henry’s guide.
I have tried using Carlos’s pre-built .debs and shell scripts.
I have tried re-installing Ubuntu 4 or 5 times.

I have tried everything.
I am done.
Installing Windows.

Ping me when Ubuntu fixes their sh!t to work out-of-the-box with Framework.

Is there a particular reason you want to stick with Ubuntu? Are Mint or Debian options? I wrote up my experience with Debian sid if you’re curious (and the steps I took to make the setup painless).

1 Like

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…