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

Could that request be from Google Chrome? I get that every time. I found a way to get it to use the fingerprint reader on logon but then lost access to my account settings (saved website passwords).

@Bradley_Bratten it’s in the 1Password settings. For me I am pretty sure it was the issue as it hasn’t come back. I also do not use Chrome. I noticed it came up right after I unlock 1Password. I have it as a start-up app which confused me at first but I noticed it didn’t come up unless I actually unlocked 1P.

1 Like

@Devyn_Cairns
Thank you, thank you, thank you!! This did the trick.

It took a lot ot get all the dependencies installed, once I did the appimage works perfect, and I now have fingerprints back.

Huge shout out to @snee for pointing me to this post. I didn’t know what to extract from it when I first saw it, but that’s what’s great about this community; it’s helped guide to so many answers. Framework for the win!

1 Like

Thank you so much for taking a look at this for me! I tried what you suggested and got much further this time. I’d never encountered nano before, and you’re right it is mystifying at first. But once I opened it correctly, it seemed easy enough to edit.

For step four build, compile and install, meson builddir seemed to work okay. But ninja -C builddir didn’t seem to. I tried it a second time and it did something different, but I’m still not sure if it worked properly:

samlane86@samlane86-Laptop:~/libfprint$ meson builddir
The Meson build system
Version: 0.56.2
Source dir: /home/samlane86/libfprint
Build dir: /home/samlane86/libfprint/builddir
Build type: native build
Project name: libfprint
Project version: 1.92.1
C compiler for the host machine: cc (gcc 11.2.0 “cc (Ubuntu 11.2.0-7ubuntu2) 11.2.0”)
C linker for the host machine: cc ld.bfd 2.37
C++ compiler for the host machine: c++ (gcc 11.2.0 “c++ (Ubuntu 11.2.0-7ubuntu2) 11.2.0”)
C++ linker for the host machine: c++ ld.bfd 2.37
Host machine cpu family: x86_64
Host machine cpu: x86_64
Compiler for C supports arguments -Wall: YES
Compiler for C supports arguments -Wcast-align: YES
Compiler for C supports arguments -Wformat-nonliteral: YES
Compiler for C supports arguments -Wformat-security: YES
Compiler for C supports arguments -Wformat=2: YES
Compiler for C supports arguments -Wignored-qualifiers: YES
Compiler for C supports arguments -Wlogical-op: YES
Compiler for C supports arguments -Wmissing-declarations: YES
Compiler for C supports arguments -Wmissing-format-attribute: YES
Compiler for C supports arguments -Wmissing-include-dirs: YES
Compiler for C supports arguments -Wmissing-noreturn: YES
Compiler for C supports arguments -Wpointer-arith: YES
Compiler for C supports arguments -Wshadow: YES
Compiler for C supports arguments -Wswitch-enum: YES
Compiler for C supports arguments -Wtype-limits: YES
Compiler for C supports arguments -Wundef: YES
Compiler for C supports arguments -Wunused: YES
Compiler for C supports arguments -Werror=address: YES
Compiler for C supports arguments -Werror=array-bounds: YES
Compiler for C supports arguments -Werror=empty-body: YES
Compiler for C supports arguments -Werror=init-self: YES
Compiler for C supports arguments -Werror=int-to-pointer-cast: YES
Compiler for C supports arguments -Werror=main: YES
Compiler for C supports arguments -Werror=missing-braces: YES
Compiler for C supports arguments -Werror=nonnull: YES
Compiler for C supports arguments -Werror=redundant-decls: YES
Compiler for C supports arguments -Werror=return-type: YES
Compiler for C supports arguments -Werror=sequence-point: YES
Compiler for C supports arguments -Werror=trigraphs: YES
Compiler for C supports arguments -Werror=write-strings: YES
Compiler for C supports arguments -fno-strict-aliasing: YES
Compiler for C supports arguments -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_56: YES
Compiler for C supports arguments -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_56: YES
Compiler for C supports arguments -D_GNU_SOURCE: YES
Compiler for C supports arguments -DG_LOG_DOMAIN=“libfprint”: YES
Compiler for C supports arguments -Wimplicit-function-declaration: YES
Compiler for C supports arguments -Wmissing-prototypes: YES
Compiler for C supports arguments -Wnested-externs: YES
Compiler for C supports arguments -Wold-style-definition: YES
Compiler for C supports arguments -Wstrict-prototypes: YES
Compiler for C supports arguments -Werror=implicit: YES
Compiler for C supports arguments -Werror=pointer-to-int-cast: YES
meson.build:68: WARNING: Consider using the built-in warning_level option instead of using “-Wall”.
meson.build:69: WARNING: Consider using the built-in warning_level option instead of using “-Wall”.
Found pkg-config: /usr/bin/pkg-config (0.29.2)
Run-time dependency glib-2.0 found: YES 2.68.4
Run-time dependency gio-unix-2.0 found: YES 2.68.4
Run-time dependency gobject-2.0 found: YES 2.68.4
Run-time dependency gusb found: YES 0.3.5
Library m found: YES
Did not find CMake ‘cmake’
Found CMake: NO
Run-time dependency cairo found: NO (tried pkgconfig and cmake)
Run-time dependency gobject-introspection-1.0 found: YES 1.68.0
Run-time dependency udev found: YES 248
Program glib-mkenums found: YES (/usr/bin/glib-mkenums)
Program glib-mkenums found: YES (/usr/bin/glib-mkenums)
Program glib-mkenums found: YES (/usr/bin/glib-mkenums)
Program glib-mkenums found: YES (/usr/bin/glib-mkenums)
Configuring fpi-drivers.c with command
Compiler for C supports arguments -Wno-error=redundant-decls: YES
Compiler for C supports arguments -Wno-redundant-decls: YES
Compiler for C supports arguments -Wno-discarded-qualifiers: YES
Compiler for C supports arguments -Wno-array-bounds: YES
Compiler for C supports arguments -Wno-array-parameter: YES
Found pkg-config: /usr/bin/pkg-config (0.29.2)
Build-time dependency gobject-introspection-1.0 found: YES 1.68.0
Program g_ir_scanner found: YES (/usr/bin/g-ir-scanner)
Program g_ir_compiler found: YES (/usr/bin/g-ir-compiler)
Configuring config.h using configuration
Configuring gtkdocentities.ent using configuration
Dependency glib-2.0 found: YES 2.68.4 (cached)
Program gtkdoc-scan found: YES (/usr/bin/gtkdoc-scan)
Program gtkdoc-scangobj found: YES (/usr/bin/gtkdoc-scangobj)
Program gtkdoc-mkdb found: YES (/usr/bin/gtkdoc-mkdb)
Program gtkdoc-mkhtml found: YES (/usr/bin/gtkdoc-mkhtml)
Program gtkdoc-fixxref found: YES (/usr/bin/gtkdoc-fixxref)
Program unittest_inspector.py found: YES (/home/samlane86/libfprint/tests/unittest_inspector.py)
Program sh found: YES (/usr/bin/sh)
Program sh found: YES (/usr/bin/sh)
Program sh found: YES (/usr/bin/sh)
Program sh found: YES (/usr/bin/sh)
Program sh found: YES (/usr/bin/sh)
Program sh found: YES (/usr/bin/sh)
Program sh found: YES (/usr/bin/sh)
Program sh found: YES (/usr/bin/sh)
Program sh found: YES (/usr/bin/sh)
Program sh found: YES (/usr/bin/sh)
Program sh found: YES (/usr/bin/sh)
Program sh found: YES (/usr/bin/sh)
Program umockdev-test.py found: YES (/home/samlane86/libfprint/tests/umockdev-test.py)
Program sh found: YES (/usr/bin/sh)
Program sh found: YES (/usr/bin/sh)
Configuring test-config.h using configuration
tests/meson.build:168: WARNING: Test fpi-assembling cannot be compiled due to missing dependencies
Program sh found: YES (/usr/bin/sh)
Program test-generated-hwdb.sh found: YES (/home/samlane86/libfprint/tests/test-generated-hwdb.sh)
Program gdb found: YES (/usr/bin/gdb)
Program valgrind found: YES (/usr/bin/valgrind)
Build targets in project: 25

Found ninja-1.10.1 at /usr/bin/ninja
samlane86@samlane86-Laptop:~/libfprint$ ninja -C builddir
ninja: Entering directory `builddir’
[32/96] Compiling C object libfprint/libfprint-private.a.p/fpi-assembling.c.o
In file included from …/libfprint/fpi-assembling.c:25:
…/libfprint/fpi-image.h:80:5: warning: “HAVE_PIXMAN” is not defined, evaluates to 0 [-Wundef]
80 | #if HAVE_PIXMAN
| ^~~~~~~~~~~
[38/96] Compiling C object libfprint/l…e.a.p/meson-generated_…_fpi-enums.c.o
In file included from libfprint/fpi-enums.c:13:
…/libfprint/fpi-image.h:80:5: warning: “HAVE_PIXMAN” is not defined, evaluates to 0 [-Wundef]
80 | #if HAVE_PIXMAN
| ^~~~~~~~~~~
[39/96] Compiling C object libfprint/libfprint-private.a.p/fpi-image.c.o
In file included from …/libfprint/fpi-image.c:23:
…/libfprint/fpi-image.h:80:5: warning: “HAVE_PIXMAN” is not defined, evaluates to 0 [-Wundef]
80 | #if HAVE_PIXMAN
| ^~~~~~~~~~~
…/libfprint/fpi-image.c:28:5: warning: “HAVE_PIXMAN” is not defined, evaluates to 0 [-Wundef]
28 | #if HAVE_PIXMAN
| ^~~~~~~~~~~
…/libfprint/fpi-image.c:110:5: warning: “HAVE_PIXMAN” is not defined, evaluates to 0 [-Wundef]
110 | #if HAVE_PIXMAN
| ^~~~~~~~~~~
[43/96] Compiling C object libfprint/libfprint-private.a.p/fpi-ssm.c.o
In file included from …/libfprint/drivers_api.h:28,
from …/libfprint/fpi-ssm.c:24:
…/libfprint/fpi-image.h:80:5: warning: “HAVE_PIXMAN” is not defined, evaluates to 0 [-Wundef]
80 | #if HAVE_PIXMAN
| ^~~~~~~~~~~
[46/96] Compiling C object libfprint/libfprint-private.a.p/fpi-print.c.o
In file included from …/libfprint/fp-print-private.h:22,
from …/libfprint/fpi-print.c:24:
…/libfprint/fpi-image.h:80:5: warning: “HAVE_PIXMAN” is not defined, evaluates to 0 [-Wundef]
80 | #if HAVE_PIXMAN
| ^~~~~~~~~~~
[57/96] Compiling C object libfprint/l…ivers.a.p/drivers_goodixmoc_goodix.c.o
In file included from …/libfprint/drivers_api.h:28,
from …/libfprint/drivers/goodixmoc/goodix.c:24:
…/libfprint/fpi-image.h:80:5: warning: “HAVE_PIXMAN” is not defined, evaluates to 0 [-Wundef]
80 | #if HAVE_PIXMAN
| ^~~~~~~~~~~
[59/96] Compiling C object libfprint/libfprint-2.so.2.0.0.p/fp-image.c.o
In file included from …/libfprint/fp-image.c:23:
…/libfprint/fpi-image.h:80:5: warning: “HAVE_PIXMAN” is not defined, evaluates to 0 [-Wundef]
80 | #if HAVE_PIXMAN
| ^~~~~~~~~~~
[65/96] Compiling C object libfprint/libfprint-2.so.2.0.0.p/fp-print.c.o
In file included from …/libfprint/fp-print-private.h:22,
from …/libfprint/fp-print.c:23:
…/libfprint/fpi-image.h:80:5: warning: “HAVE_PIXMAN” is not defined, evaluates to 0 [-Wundef]
80 | #if HAVE_PIXMAN
| ^~~~~~~~~~~
[91/96] Generating FPrint-2.0.gir with a custom command
g-ir-scanner: link: x86_64-linux-gnu-gcc -o /home/samlane86/libfprint/builddir/tmp-introspect66kebldk/FPrint-2.0 /home/samlane86/libfprint/builddir/tmp-introspect66kebldk/FPrint-2.0.o -L. -Wl,-rpath,. -Wl,–no-as-needed -L/home/samlane86/libfprint/builddir/libfprint -Wl,-rpath,/home/samlane86/libfprint/builddir/libfprint -L/home/samlane86/libfprint/builddir/libfprint -Wl,-rpath,/home/samlane86/libfprint/builddir/libfprint -lfprint-2 -lfprint-2 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lgusb -lusb-1.0 -lm -lgirepository-1.0 -lgio-2.0 -lgobject-2.0 -Wl,–export-dynamic -lgmodule-2.0 -pthread -lglib-2.0
[92/96] Compiling C object tests/test-fpi-ssm.p/test-fpi-ssm.c.o
In file included from …/libfprint/drivers_api.h:28,
from …/tests/test-fpi-ssm.c:23:
…/libfprint/fpi-image.h:80:5: warning: “HAVE_PIXMAN” is not defined, evaluates to 0 [-Wundef]
80 | #if HAVE_PIXMAN
| ^~~~~~~~~~~
[96/96] Linking target tests/test-fpi-device

And I still got stuck on step 5 installing the newest version of fprintd. Here’s what it did:

samlane86@samlane86-Laptop:~/libfprint$ git clone libfprint / fprintd · GitLab
cd fprintd && git fetch origin && git checkout v1.92.0
meson builddir
ninja -C builddir
Cloning into ‘fprintd’…
remote: Enumerating objects: 4573, done.
remote: Counting objects: 100% (1233/1233), done.
remote: Compressing objects: 100% (124/124), done.
remote: Total 4573 (delta 1137), reused 1197 (delta 1109), pack-reused 3340
Receiving objects: 100% (4573/4573), 1.45 MiB | 6.37 MiB/s, done.
Resolving deltas: 100% (3440/3440), done.
Note: switching to ‘v1.92.0’.

You are in ‘detached HEAD’ state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

git switch -c

Or undo this operation with:

git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at b760a82 Update for 1.92.0
The Meson build system
Version: 0.56.2
Source dir: /home/samlane86/libfprint/fprintd
Build dir: /home/samlane86/libfprint/fprintd/builddir
Build type: native build
Project name: fprintd
Project version: 1.92.0
C compiler for the host machine: cc (gcc 11.2.0 “cc (Ubuntu 11.2.0-7ubuntu2) 11.2.0”)
C linker for the host machine: cc ld.bfd 2.37
Host machine cpu family: x86_64
Host machine cpu: x86_64
Compiler for C supports arguments -fno-strict-aliasing: YES
Compiler for C supports arguments -Wcast-align: YES
Compiler for C supports arguments -Werror=address: YES
Compiler for C supports arguments -Werror=array-bounds: YES
Compiler for C supports arguments -Werror=empty-body: YES
Compiler for C supports arguments -Werror=implicit: YES
Compiler for C supports arguments -Werror=init-self: YES
Compiler for C supports arguments -Werror=int-to-pointer-cast: YES
Compiler for C supports arguments -Werror=main: YES
Compiler for C supports arguments -Werror=missing-braces: YES
Compiler for C supports arguments -Werror=nonnull: YES
Compiler for C supports arguments -Werror=pointer-to-int-cast: YES
Compiler for C supports arguments -Werror=redundant-decls: YES
Compiler for C supports arguments -Werror=return-type: YES
Compiler for C supports arguments -Werror=sequence-point: YES
Compiler for C supports arguments -Werror=trigraphs: YES
Compiler for C supports arguments -Werror=write-strings: YES
Compiler for C supports arguments -Wformat-nonliteral: YES
Compiler for C supports arguments -Wformat-security: YES
Compiler for C supports arguments -Wformat=2: YES
Compiler for C supports arguments -Wignored-qualifiers: YES
Compiler for C supports arguments -Wimplicit-function-declaration: YES
Compiler for C supports arguments -Wlogical-op: YES
Compiler for C supports arguments -Wmissing-declarations: YES
Compiler for C supports arguments -Wmissing-format-attribute: YES
Compiler for C supports arguments -Wmissing-include-dirs: YES
Compiler for C supports arguments -Wmissing-noreturn: YES
Compiler for C supports arguments -Wmissing-prototypes: YES
Compiler for C supports arguments -Wnested-externs: YES
Compiler for C supports arguments -Wold-style-definition: YES
Compiler for C supports arguments -Wpointer-arith: YES
Compiler for C supports arguments -Wshadow: YES
Compiler for C supports arguments -Wstrict-prototypes: YES
Compiler for C supports arguments -Wtype-limits: YES
Compiler for C supports arguments -Wundef: YES
Compiler for C supports arguments -Wunused: YES
Compiler for C supports arguments -Wno-unused-parameter: YES
Compiler for C supports arguments -Wno-pedantic: YES
Found pkg-config: /usr/bin/pkg-config (0.29.2)
Run-time dependency glib-2.0 found: YES 2.68.4
Run-time dependency gio-2.0 found: YES 2.68.4
Run-time dependency gio-unix-2.0 found: YES 2.68.4
Run-time dependency gmodule-2.0 found: YES 2.68.4
Dependency libfprint-2 found: NO found 1.90.7+git20210222+tod1 but need: ‘>=1.92.0’
Did not find CMake ‘cmake’
Found CMake: NO
Run-time dependency libfprint-2 found: NO

meson.build:84:0: ERROR: Invalid version of dependency, need ‘libfprint-2’ [‘>=1.92.0’] found ‘1.90.7+git20210222+tod1’.

A full log can be found at /home/samlane86/libfprint/fprintd/builddir/meson-logs/meson-log.txt
ninja: Entering directory builddir' ninja: error: loading 'build.ninja': No such file or directory samlane86@samlane86-Laptop:~/libfprint/fprintd$ fprintd-enroll Impossible to enroll: GDBus.Error:net.reactivated.Fprint.Error.NoSuchDevice: No devices available samlane86@samlane86-Laptop:~/libfprint/fprintd$ ninja -C builddir ninja: Entering directory builddir’
ninja: error: loading ‘build.ninja’: No such file or directory

Apologies for the extra long post!

@Sam_Lane, you may need to install the latest version of Ninja, as well as Libsystemd. I had to do that, but I am on a slightly newer flavor of Ubuntu so it might be a little different.

You can get Libsystemd on Ubuntu by entering the following into the command line:

Sudo apt install libsystemd-dev

I am trying to find the guide where I was able to update Ninja and will post it when I find it.

Also, when you get to the end and are trying to set up your authorization methods in PAM, checking the box is done with space bar.

I am a Linux noob to. You can do it!

3 Likes

@Sam_Lane So I found the guide to update Ninja, but I hesitate to post it until we know what version you are running.

Can you please copy and paste the output of the following command?

Ninja --version

Side note, this is a great command to check the version of any software on your system.

1 Like

I definitely did something wrong. Anybody know why it says Failed to get Fprintd manager: Error calling StartServiceByName for net.reactivated.Fprint: Timeout was reached when I run fprintd-enroll?
It might be because my udev dependency package version is 245 instead of the needed 248. I have no idea how to upgrade that

Hey Jared_P_Champion, thanks for your input and for the encouragement! Here’s the version of ninja I’ve got:

samlane86@samlane86-Laptop:~$ ninja --version
1.10.1

1 Like

I doesn’t seem to be that. So maybe it is indeed something with ninja.

samlane86@samlane86-Laptop:~$ sudo apt install libsystemd-dev
[sudo] password for samlane86:
Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
libsystemd-dev is already the newest version (248.3-1ubuntu8).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

That version of Ninja should work.

Sorry, I think this might be a little bit out of my depth. I didn’t read your log output, just went on what had worked for me in Xubuntu.

If I get a chance, I will try to review your logs, but I imagine someone else will be able to chime in before that. Sorry! :frowning_face:

2 Likes

Can confirm that running that python script cleared the old print I added in a previous OS install (Fedora 35). I was then able to re-enroll.

@Bradley_Bratten @Fraoch
Actually I spoke too fast and that error/window came back regardless of the 1Password setting so I do not know what’s causing it. Have you guys figured it out on your install?

Just got this working in Debian sid with sway and swaylock!

  1. sudo fprintd-enroll <username> and keep putting my right index finger on there until it came back as enrolled.
  2. sudo pam-auth-update and toggle Fingerprint authentication.
  3. sudo -i, notice that fingerprint auth works!

Of course, I’m not running into the issue with Windows since I run a linux-only system.

Note: for anyone who’s using swaylock, I’ve found that I have to press Enter to “activate” it so that then I can scan my fingerprint.

3 Likes

I went through @Davis_Ladd and @Ian_Cleary instructions again and MIGHT have gotten through step 1-5 successfully. However, I still get hung up on enrolling my fingerprint. Here’s what I get when I run the command:

samlane86@samlane86-Laptop:~/libfprint/fprintd$ 

    fprintd-enroll
Impossible to enroll: GDBus.Error:net.reactivated.Fprint.Error.NoSuchDevice: No devices available

Any idea what could be causing this?

1 Like

@Devyn_Cairns

The appimage worked like a charm, I’m able to enroll fingerprints in Arch again!

Thanks a million.

I tried running through your version of the instructions @AndrewGurn and got this error when running fprintd-enroll:
samlane86@samlane86-Laptop:~/libfprint/fprintd$ fprintd-enroll
Failed to get Fprintd manager: Error calling StartServiceByName for net.reactivated.Fprint: Failed to activate service ‘net.reactivated.Fprint’: timed out (service_start_timeout=25000ms)

Any idea of what’s causing this?

Update: I noticed that my user settings do show a finger print login option now. However, it’s greyed out so I can’t select it even when I unlock the user settings. The option also disappears after a bit and only reappears when I close and open the settings again.

1 Like

This did the trick! It seems to be working now! Thank you!

2 Likes

Holy shit, you did it @Devyn_Cairns! I can’t even believe it. I thought this thing was broken forever. I had to hold my breath during that final stretch before it completed successfully, I am so used to it failing by now. Now I guess I just have to see if I can actually use my apparently successfully stored fingerprint for authentication anywhere (this part has never worked for me)

2 Likes

You should be able to run sudo pam-auth-update to enable Fingerprint authentication and it should “Just Work”.

Just kidding, now it’s broken for me in Windows too ha ha

This is actually a good thing though, maybe now Windows will stop logging me out in the middle of my downloads now that the fingerprint is gone (this is an issue that came up for me before I started having problems with fingerprints, Windows forces you to choose “Every time” in the sign in options if you have a fingerprint saved, and then I think logs you out as soon as your screen turns off even if you have sleep disabled).

Anyway I feel like this is progress.

Thank you @Chiraag_Nataraj, I am actually having some more problems with fingerprints right now that I haven’t even mentioned yet (I was very careful to delete the new fingerprint from Gnome, then when I restarted Pop_OS, it wouldn’t let me log in because it kept saying fingerprint authentication failed, tried booting Pop from a live USB to see if I could run the appimage again from there, not sure yet if it was successful but I still can’t save a fingerprint in Windows – I am guessing Pop_OS was perhaps too good at updating pam? Unlike my original Linux that I tried this with, although it happened on there too, anyway long story thank you everyone!).