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

@lbkNhubert thanks for taking the time to post a solution. :nerd_face: :+1:

1 Like

With regard specifically to the Framework laptop, if you want to use a USB key in your authentication chain, you already can. The pam.d man page is a good reference to customize your authentication chain. There’s tons of other pam modules available in various repos as well, like facial recognition. You can pretty much have fully conditional, context dependent, n factor authentication chains.

My point being, pam is pretty ubiquitous and incredibly powerful. Am I missing something that this does?

1 Like

I’ll admit, this would be super cool. Reminds me of the Google Pixelbook from 2017. Its power button could be set up to serve as a U2F key. This was kind of dangerous to enable because an attacker always had the physical key wherever the laptop was. But being able to process and authenticate fingerprint before acting as a U2F key could be cool.

Still not the most secure, because you merge something you are and something you have into one system. I’d prefer to keep these two, along with something you know, separate. But for the less security-minded, it could be interesting.

So if we don’t want to compile the source for the files necessary for the fingerprint scanner, is there a repo we can use that we can just sudo apt install them with?

@2disbetter I don’t see an updated libfprint in Ubuntu’s package list, it still shows v1.90, even in the upcoming 21.10 (impish). So I’m not aptimistic.

3 Likes

I got the fingerprint reader to work to sign in and on sudo. One thing I noticed was after a restart and I use the fingerprint to sign in it doesn’t unlock the keyring. I looked arround and this seems to be intended for security reasons. From what I read it seems your keyring is encrypted using your password and so your fingerprint can’t decrypt it without having your password stored as plain text which is not secure. Did I understand this right? If not anybody know how to get your fingerprint to unlock the keyring securely.

2 Likes

Has anyone succeeded in using fingerprint login with Linux + Windows dual boot environment? Any gotchas? If I enroll (or remove) fingerprints in one OS, does it affect the other OS?

I use the same finger for w10, and Ubuntu 21.04 after getting it working

3 Likes

I have fingerprint login working for both Linux and Windows. Unfortunately, I had to set fingerprint twice – was not able to reuse fingerprint set in Ubunty on Windows login. Fortunately, when I set it in Win10 as well – it hasn’t overrided my Ubunty fingerprint.

1 Like

I’m on Ubuntu 20.04.3 and while I have the fingerprint scanner showing up, I get a device error or a failure to connect.

I get a failure to connect if I try to register a finger that I have used for Windows login. And then device error if I use a finger I haven’t registered.

The scanner works under Windows though.

I’m wondering if it is just because I am on LTS?

That seems unlikely (most of the fingerprint driver is in userspace, to the kernel it’s just another USB device), but it’d probably be easy enough to test a live USB containing 21.04 with libfprint 1.92.1 and fprintd 1.92.0 copied into the image from your root partition after it’s done loading.

Here’s a potential solution for those who were having the issue with fingerprints being too similar. Although I’m not actually using a framework laptop, it worked for me and should work for you guys too.
Source of this python script

#! /usr/bin/python3

import gi
gi.require_version('FPrint', '2.0')
from gi.repository import FPrint

ctx = FPrint.Context()

for dev in ctx.get_devices():
    print(dev)
    print(dev.get_driver())
    print(dev.props.device_id);

    dev.open_sync()

    prints = dev.list_prints_sync()
    print("num prints stored: %d" % len(prints))
    for p in prints:
        print('deleting print:')
        date = p.props.enroll_date
        print('    %04d-%02d-%02d valid: %d' % (date.get_year(), date.get_month(), date.get_day(), date.valid()))
        print('    ' + str(p.props.finger))
        print('    ' + str(p.props.username))
        print('    ' + str(p.props.description))

        dev.delete_print_sync(p)

        print('deleted')

    dev.close_sync()
20 Likes

I can confirm that this worked on the Framework laptop when run with sudo on Arch Linux. Thanks @Bob_U!

Nice! This is exactly what I was waiting for before enabling the fingerprint scanner.

2 Likes

Did not work for me, unfortunately. I get libfprint-ERROR: parse fingerlist error

I guess my problem is that I had enrolled some fingerprints in previous Linux installs (Fedora, then Ubuntu) that I have since overwritten with a new Manjaro installation. I didn’t delete my fingerprints in those prior Linux installations and I’m afraid it’s too late now.

So I removed fprintd from system packages and this didn’t work for me on Ubuntu 21.04 - I think /usr/share/dbus-1/system-services/net.reactivated.Fprint.service was missing totally after this was done, and nothing replaced it in the source packages, which caused fprintd to hang indefinitely trying to find… something… related to this.

I didn’t debug much further, reinstalling the packages solved the problem and fprintd is using the freshly compiled version.

Same issue if you setup a fingerprint with Windows first. I think it is just an issue of the fingerprint module being associated with the fingerprint on one OS at a time. I saw some stuff on the forum about erasing registered fingerprints after deleting the first OS fingerprints were registered to. That might be something you check out.

1 Like

Where would I find that? The forum is pretty big now.

Fingerprint scanner compatibility with linux (ubuntu, fedora, etc)

No known reliable solution for the problem you’re experiencing.

Maybe that’s one factor, but I’ve been using it with Windows 10 and Manjaro (Gnome) without any issues. Registered the same two fingers in both OSs. I set up Windows first, then set up dual boot about a day later after I got frustrated with Windows.

2 Likes