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

I would like info on this as well. I put in my DIY Framework pre-order. I plan on running Ubuntu 20.04 LTS. Currently, I’m using a 13" Dell XPS 7390 which has a Goodix fingerprint reader. Goodix is not friendly to Linux. Some of their fingerprint readers have linux drivers, some not - it’s a total crap-shoot. Needless to say, the reader in the 7390 doesn’t have a linux driver.

What brand (and model would be nice, too) is the Framework fingerprint reader?

We have a Goodix fingerprint sensor, but it is one that there is a Linux driver for.

10 Likes

Yep have a Goodix on the 1 Netbook Onemix 3pt I have and the sensor works fine under Linux. (Only tried Ubuntu 20.04)

1 Like

@nrp Could you share the instructions for installing the Goodix driver(s) mentioned in your other blog post? Running Ubuntu 21.04 and looking to start using the fingerprint reader before the commits make it to the core OS.

This is on our TODO list! I can write instructions this weekend if @Kieran_Levin doesn’t get to it first. We’ll also add it to the Ubuntu 21.04 guide here: Ubuntu 21.04 on the Framework Laptop

3 Likes

A quick note, libfprint v1.92.0 or greater is needed to support the fingerprint reader.
This adds the usb VID/HID needed to recognize our hardware.

3 Likes

A quick note, libfprint v1.92.0 or greater is needed to support the fingerprint reader.

Seeing Ubuntu, Debian and Fedora libfprint packages, the versions are like this at the moment.

Ubuntu
Ubuntu – Error (Ubuntu 21.10) - v1.90.7
Ubuntu – Error (Ubuntu 21.04) - v1.90.7

Debian
https://tracker.debian.org/pkg/libfprint
Debian -- Error - v1.90.7

Fedora
https://src.fedoraproject.org/rpms/libfprint

  • Fedora 35: v1.92.0
  • Fedora 34: v1.90.0

So, my guess is the “Fedora 34 Respins” written in Fedora 34 guide has the libfprint package >= v1.92.0 unlike normal Fedora 34.

3 Likes

A lot of distros tend to run on older versions in order to ensure everything works properly. It should be safe to update to a newer version anyways, but having a guide specifically for the Framework laptop would be even better.

2 Likes

@junaruga Yes the fedora respin has libfprint >= 1.92.0 The fedora team has been very helpful with validating hardware and ensuring that libfprint was the correct version needed to support our hardware. Let us check with the Fedora team and see if we can find a link to download just the libfprint rpm for those who don’t want to use a respin.

4 Likes

Thank you! For normal Fedora 34, I just opened an issue ticket to ask to upgrade libfprint to 1.92.0 or newer, though I am not sure if it is possible because the Fedora 34 is stable version. I agree that distros tend to keep a major and minor version of a package to avoid a breaking change on a distro’s stable version, just upgrading a maintainer version or a release version of the package applying a patch. And it’s not the case on a development version like current Fedora 35.

If someone wants to see Ubuntu to support the fingerprint feature for Framework laptop on a future released version, you need to ask a Debian libfprint package maintainer to upgrade to the latest libfprint version. Because Debian is the upstream distro of Ubuntu. Maybe you can find a way to open the ticket somewhere in the Debian libfprint package tracker page. And same for other distros too!

For normal Fedora 34, I just opened an issue ticket to ask to upgrade libfprint to 1.92.0 or newer, …

Great news! I got an answer from the Fedora libfprint maintainer that the libfprint >= 1.90.7-3.fc34 on normal Fedora 34 should work for Framework laptop. Because they applied a patch file (update-goodix.patch) to fix the issue in the RPM spec (recipe) file libfprint.spec rather than upgrading to the upstream version.

As a reference here is the commit: Commit - rpms/libfprint - d660bfe29d97b29c7636cbc902e477c2884bebf8 - src.fedoraproject.org

Hopefully other Linux distros would refer this way.

10 Likes

I’ve seen references to upgrading libfprint to >=1.92 on Ubuntu, but must confess to inexperience in building/installing drivers from source (shows you how much more user-friendly linux has gotten!).

Looking at the libfprint repository (for 1.9.2 release v1.92.0 · libfprint / libfprint · GitLab) and the meson webpage (tutorial at Quickstart Guide) I get how it ought to compile, but if there are any gurus out there who know what to do with the compiled products - eg does the meson build automatically put the needed files in the right places or does something have to be moved into place? - would be grateful for guidance. Thanks!

1 Like

Has anyone gotten the fingerprint sensor working in arch yet? I have libfprint installed at the latest compatible version but gnome 40 still does not recognize the fingerprint. I would love to get this figured out and added to the arch linux thread.

1 Like

Turns out this is super easy on arch linux, just forgot a package :upside_down_face:

  • sudo pacman -S libfprint fprintd

  • Reboot

  • Enjoy fingerprint working out of the box on gnome install (and others if you install a fingerprint gui or they come with one)

9 Likes

I successfully compiled libfprint v1.92 on Ubuntu 21.04.

Dependencies:

  • gtk-doc-tools
  • libfprint-2-dev
  • libgirepository1.0-dev
  • libgusb-dev
  • libpam-wrapper
  • libpam0g-dev
  • libpamtest0-dev
  • libpolkit-gobject-1-dev
  • libxml2-utils
  • python3-pip
  • python3-pypamtest

pip packages, install with “pip install ‘package’”

  • meson installed with “sudo pip install meson”
  • ninja
  • gobject
  • python-dbusmock

1. Start with installing dependices

sudo apt install gtk-doc-tools libfprint-2-dev libgirepository1.0-dev libgusb-dev libpam-wrapper libpam0g-dev libpamtest0-dev libpolkit-gobject-1-dev libxml2-utils python3-pip python3-pypamtest

sudo pip install meson

pip install ninja gobject python-dbusmock

2. Compile newest version of libfprint

git clone https://gitlab.freedesktop.org/libfprint/libfprint.git
cd libfprint

3. Edit meson_options.txt

To make things easier I specified the just the goodix device in “meson_options.txt”

nano meson_options.txt

For the drivers option use replace default with goodixmoc. This compiles libfprint just for this fingerprint sensor.

option('drivers',
       description: 'Drivers to integrate, "default" selects the default set, "all" selects all drivers',
       type: 'string',
       value: 'goodixmoc')

4. Then build, compile and install

meson builddir
ninja -C builddir

5. Now for the newest version of fprintd

git clone libfprint / fprintd · GitLab
cd fprintd
meson builddir
ninja -C builddir

6. Enroll your fingerprint

fprintd-enroll

I believe that is all the steps you need to do. If you have any problems let me know and I would be happy to help. This is the first time I have ever written instructions.

22 Likes

Thank you for this little guide. I am a application level developer but rarely have need to sudo anything and install packages etc. Don’t even have permissions to do so in my day job.

Apparently pip is not installed by default on Ubuntu. So the first command “sudo pip install meson” didn’t work for me.
So I did “sudo pip” which suggested installing pip by “sudo apt install python3-pip”
Tried that and got to a point where it wants to insert the Ubuntu 21.04 disc into the drive ‘/media/cdrom’

There is no cdrom on this device, so I assume it would be the installation media used.

Assuming I recreate the boot USB flash drive, will that work?

Are there any other traps to be found for the less system oriented among us?

Okay found that the cdrom line needed to be removed from the sources.lst file
‘sudo sed -i ‘/cdrom/d’ /etc/apt/sources.lst’

Two more questions.
pip install python-gobject is failing,
No matching distribution found …
Could not find a version that satisfies the requirement python-gobject.

The meson builddir line fails with Dependency “gusb” not found, tried pre-configured

So two failures at this stage.

2 Likes

Thanks for testing out my guide.
I added the missing dependencies to the instructions.

gobject is installed with

pip install gobject

and gusb is installed with

sudo apt install libgusb-dev

This shouild get your install working.
When I was putting this together I spent some time finding the dependencies and could have missed some.

Let me know of any other issues and I will append the insturctions

Thanks for the guide! Alas, it’s not quite working for me.

Maybe a stupid question:

After I build the latest libfprint, when I try to build the latest fprintd, it complains: “Dependency libfprint-2 found: NO found 1.90.7+git20210222+tod1 but need: ‘>=1.92.0’”
Where is it looking for libfprint? It’s not finding the one I just built.
Although I’ve never used it before, I feel like the “ninja -C builddir” step was supposed to put the new libfprint in the right place; however, when I try to do that step again, it simply says, “ninja: no work to do.” Seems like it believes it did it’s job without error.

4 Likes

@Davis_Ladd Thanks for the guide!

Is it safe to run git checkout to the current newest tag before running meson for reproductive steps, isn’t it? As the HEAD commit of the master branch is updated continuously, I am afraid your guide will be outdated after some time.

  1. Compile newest version of libfprint
cd libfprint
git checkout v1.92.1
  1. Now for the newest version of fprintd
cd fprintd
git checkout v1.92.0
1 Like

I am now getting the same error as @spotcatbug .

I attempted to use the git checkout commands as suggested, as well.

The is a clean install of Ubuntu 21.04 no weird things have been done to it.

1 Like