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

Has anyone succeeded in using fingerprint for things other than the login screen? e.g. sudo on the terminal, or other dialog boxes that ask for authentication?

3 Likes

@Atul_Ingle my fingerprint works in terminal on the Respin of Fedora that Framework recommended.

3 Likes

@Atul_Ingle I use it to unlock 1Password, works perfectly. On first boot, I have to use my master password to unlock 1Password, but after that, I can just use my fingerprint.

UPDATE: Ooooh, I just noticed I can also use my fingerprint to sudo!

4 Likes

Oh. That is SLICK!

1 Like

if anyone’s wondering, setting up the fingerprint to work with sudo is simple for Ubuntu 21.04. just need to run sudo pam-auth-update and use the spacebar to enable fingerprint auth. there’s a stackexchange on this as well sudo - Use fingerprint authentication not only for login - Ask Ubuntu.

obviously, you need to have built libfprintd with the directions laid out above and enrolled your fingerprint. for me, i needed @Ian_Cleary’s directions and @Ryan_Helinski’s addition of using install at the end of the ninja command. additionally, i had to use sudo to install ninja since meson was looking for it in usr/local/bin. i built the latest version from source which is libfprintd v1.94 i believe.

5 Likes

@garrett528 I don’t see a fingerprint option when I run sudo pam-auth-update. I think I may have to manually edit some files in /etc/pam.d/

I have this problem. It appears the fingerprint reader has storage of its own, and when fprintd can’t tell the fingerprint reader what fingerprint to delete, it can’t tell the reader to wipe its memory and start over.

1 Like

We started a thread with the sensor maker to see if they have a solution for this.

15 Likes

I’m having an issue with building fprintd (v1.92.0) via meson builddir

meson.build:84:0: ERROR: Dependency "libfprint-2" not found, tried pkgconfig

but, libfprint (v1.92.1) build just fine.

in the log from the failed build of fprintd, I saw this error:

CMake binary for 1 is not cached
CMake binary missing from cross or native file, or env var undefined.
Trying a default CMake fallback at cmake
Did not find CMake 'cmake'
Found CMake: NO
CMake binary for machine 1 not found. Giving up.
Run-time dependency libfprint-2 found: NO (tried pkgconfig)
full error log here

Build started at 2021-09-03T19:52:10.700819
Main binary: /usr/bin/python3
Build Options: 
Python system: Linux
The Meson build system
Version: 0.59.1
Source dir: /✂️/fprintd
Build dir: /✂️/fprintd/builddir
Build type: native build
Project name: fprintd
Project version: 1.92.0
Sanity testing C compiler: cc
Is cross compiler: False.
Sanity check compiler command line: cc sanitycheckc.c -o sanitycheckc.exe -D_FILE_OFFSET_BITS=64
Sanity check compile stdout:

-----
Sanity check compile stderr:

-----
Running test binary command: /✂️/fprintd/builddir/meson-private/sanitycheckc.exe
C compiler for the host machine: cc (gcc 10.3.0 "cc (Ubuntu 10.3.0-1ubuntu1) 10.3.0")
C linker for the host machine: cc ld.bfd 2.36.1
Sanity testing C compiler: cc
Is cross compiler: False.
Sanity check compiler command line: cc sanitycheckc.c -o sanitycheckc.exe -D_FILE_OFFSET_BITS=64
Sanity check compile stdout:

-----
Sanity check compile stderr:

-----
Running test binary command: /✂️/fprintd/builddir/meson-private/sanitycheckc.exe
C compiler for the build machine: cc (gcc 10.3.0 "cc (Ubuntu 10.3.0-1ubuntu1) 10.3.0")
C linker for the build machine: cc ld.bfd 2.36.1
Build machine cpu family: x86_64
Build machine cpu: x86_64
Host machine cpu family: x86_64
Host machine cpu: x86_64
Target machine cpu family: x86_64
Target machine cpu: x86_64
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmpynfvkkdh
Command line:  cc /✂️/fprintd/builddir/meson-private/tmpynfvkkdh/testfile.c -o /✂️/fprintd/builddir/meson-private/tmpynfvkkdh/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -fno-strict-aliasing 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -fno-strict-aliasing: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmp8gtfnxbb
Command line:  cc /✂️/fprintd/builddir/meson-private/tmp8gtfnxbb/testfile.c -o /✂️/fprintd/builddir/meson-private/tmp8gtfnxbb/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Wcast-align 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Wcast-align: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmp9so305f2
Command line:  cc /✂️/fprintd/builddir/meson-private/tmp9so305f2/testfile.c -o /✂️/fprintd/builddir/meson-private/tmp9so305f2/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Werror=address 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Werror=address: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmppssgu7x5
Command line:  cc /✂️/fprintd/builddir/meson-private/tmppssgu7x5/testfile.c -o /✂️/fprintd/builddir/meson-private/tmppssgu7x5/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Werror=array-bounds 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Werror=array-bounds: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmp3vtgi8ti
Command line:  cc /✂️/fprintd/builddir/meson-private/tmp3vtgi8ti/testfile.c -o /✂️/fprintd/builddir/meson-private/tmp3vtgi8ti/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Werror=empty-body 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Werror=empty-body: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmp9nkkp0bw
Command line:  cc /✂️/fprintd/builddir/meson-private/tmp9nkkp0bw/testfile.c -o /✂️/fprintd/builddir/meson-private/tmp9nkkp0bw/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Werror=implicit 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Werror=implicit: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmpxe38oi4s
Command line:  cc /✂️/fprintd/builddir/meson-private/tmpxe38oi4s/testfile.c -o /✂️/fprintd/builddir/meson-private/tmpxe38oi4s/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Werror=init-self 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Werror=init-self: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmp1wyngoul
Command line:  cc /✂️/fprintd/builddir/meson-private/tmp1wyngoul/testfile.c -o /✂️/fprintd/builddir/meson-private/tmp1wyngoul/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Werror=int-to-pointer-cast 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Werror=int-to-pointer-cast: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmpesksuf2u
Command line:  cc /✂️/fprintd/builddir/meson-private/tmpesksuf2u/testfile.c -o /✂️/fprintd/builddir/meson-private/tmpesksuf2u/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Werror=main 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Werror=main: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmpoma77u19
Command line:  cc /✂️/fprintd/builddir/meson-private/tmpoma77u19/testfile.c -o /✂️/fprintd/builddir/meson-private/tmpoma77u19/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Werror=missing-braces 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Werror=missing-braces: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmp20iohb97
Command line:  cc /✂️/fprintd/builddir/meson-private/tmp20iohb97/testfile.c -o /✂️/fprintd/builddir/meson-private/tmp20iohb97/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Werror=nonnull 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Werror=nonnull: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmp5emge_sd
Command line:  cc /✂️/fprintd/builddir/meson-private/tmp5emge_sd/testfile.c -o /✂️/fprintd/builddir/meson-private/tmp5emge_sd/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Werror=pointer-to-int-cast 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Werror=pointer-to-int-cast: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmpq5v1x3_n
Command line:  cc /✂️/fprintd/builddir/meson-private/tmpq5v1x3_n/testfile.c -o /✂️/fprintd/builddir/meson-private/tmpq5v1x3_n/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Werror=redundant-decls 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Werror=redundant-decls: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmpxxqgh2a8
Command line:  cc /✂️/fprintd/builddir/meson-private/tmpxxqgh2a8/testfile.c -o /✂️/fprintd/builddir/meson-private/tmpxxqgh2a8/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Werror=return-type 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Werror=return-type: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmpw8o9m1j4
Command line:  cc /✂️/fprintd/builddir/meson-private/tmpw8o9m1j4/testfile.c -o /✂️/fprintd/builddir/meson-private/tmpw8o9m1j4/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Werror=sequence-point 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Werror=sequence-point: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmp6aely5cq
Command line:  cc /✂️/fprintd/builddir/meson-private/tmp6aely5cq/testfile.c -o /✂️/fprintd/builddir/meson-private/tmp6aely5cq/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Werror=trigraphs 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Werror=trigraphs: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmpi7z_4czj
Command line:  cc /✂️/fprintd/builddir/meson-private/tmpi7z_4czj/testfile.c -o /✂️/fprintd/builddir/meson-private/tmpi7z_4czj/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Werror=write-strings 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Werror=write-strings: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmpktqnbf74
Command line:  cc /✂️/fprintd/builddir/meson-private/tmpktqnbf74/testfile.c -o /✂️/fprintd/builddir/meson-private/tmpktqnbf74/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Wformat-nonliteral 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Wformat-nonliteral: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmpahseo_ex
Command line:  cc /✂️/fprintd/builddir/meson-private/tmpahseo_ex/testfile.c -o /✂️/fprintd/builddir/meson-private/tmpahseo_ex/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Wformat-security 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Wformat-security: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmp2xr77ii5
Command line:  cc /✂️/fprintd/builddir/meson-private/tmp2xr77ii5/testfile.c -o /✂️/fprintd/builddir/meson-private/tmp2xr77ii5/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Wformat=2 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Wformat=2: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmpbcsycwm2
Command line:  cc /✂️/fprintd/builddir/meson-private/tmpbcsycwm2/testfile.c -o /✂️/fprintd/builddir/meson-private/tmpbcsycwm2/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Wignored-qualifiers 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Wignored-qualifiers: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmpdlyh7tts
Command line:  cc /✂️/fprintd/builddir/meson-private/tmpdlyh7tts/testfile.c -o /✂️/fprintd/builddir/meson-private/tmpdlyh7tts/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Wimplicit-function-declaration 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Wimplicit-function-declaration: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmp0z6sly7v
Command line:  cc /✂️/fprintd/builddir/meson-private/tmp0z6sly7v/testfile.c -o /✂️/fprintd/builddir/meson-private/tmp0z6sly7v/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Wlogical-op 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Wlogical-op: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmpteudx0oe
Command line:  cc /✂️/fprintd/builddir/meson-private/tmpteudx0oe/testfile.c -o /✂️/fprintd/builddir/meson-private/tmpteudx0oe/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Wmissing-declarations 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Wmissing-declarations: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmpfmcauw6o
Command line:  cc /✂️/fprintd/builddir/meson-private/tmpfmcauw6o/testfile.c -o /✂️/fprintd/builddir/meson-private/tmpfmcauw6o/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Wmissing-format-attribute 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Wmissing-format-attribute: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmpymb8fkw2
Command line:  cc /✂️/fprintd/builddir/meson-private/tmpymb8fkw2/testfile.c -o /✂️/fprintd/builddir/meson-private/tmpymb8fkw2/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Wmissing-include-dirs 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Wmissing-include-dirs: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmpl005_v4o
Command line:  cc /✂️/fprintd/builddir/meson-private/tmpl005_v4o/testfile.c -o /✂️/fprintd/builddir/meson-private/tmpl005_v4o/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Wmissing-noreturn 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Wmissing-noreturn: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmpg70ok8e0
Command line:  cc /✂️/fprintd/builddir/meson-private/tmpg70ok8e0/testfile.c -o /✂️/fprintd/builddir/meson-private/tmpg70ok8e0/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Wmissing-prototypes 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Wmissing-prototypes: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmpn0lflc9q
Command line:  cc /✂️/fprintd/builddir/meson-private/tmpn0lflc9q/testfile.c -o /✂️/fprintd/builddir/meson-private/tmpn0lflc9q/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Wnested-externs 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Wnested-externs: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmp2pz5x12a
Command line:  cc /✂️/fprintd/builddir/meson-private/tmp2pz5x12a/testfile.c -o /✂️/fprintd/builddir/meson-private/tmp2pz5x12a/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Wold-style-definition 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Wold-style-definition: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmpveft2teb
Command line:  cc /✂️/fprintd/builddir/meson-private/tmpveft2teb/testfile.c -o /✂️/fprintd/builddir/meson-private/tmpveft2teb/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Wpointer-arith 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Wpointer-arith: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmpx25hqa2k
Command line:  cc /✂️/fprintd/builddir/meson-private/tmpx25hqa2k/testfile.c -o /✂️/fprintd/builddir/meson-private/tmpx25hqa2k/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Wshadow 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Wshadow: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmp15xsamzm
Command line:  cc /✂️/fprintd/builddir/meson-private/tmp15xsamzm/testfile.c -o /✂️/fprintd/builddir/meson-private/tmp15xsamzm/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Wstrict-prototypes 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Wstrict-prototypes: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmpkcjs1ub_
Command line:  cc /✂️/fprintd/builddir/meson-private/tmpkcjs1ub_/testfile.c -o /✂️/fprintd/builddir/meson-private/tmpkcjs1ub_/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Wtype-limits 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Wtype-limits: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmp2u4qhq1g
Command line:  cc /✂️/fprintd/builddir/meson-private/tmp2u4qhq1g/testfile.c -o /✂️/fprintd/builddir/meson-private/tmp2u4qhq1g/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Wundef 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Wundef: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmpodrcq8pz
Command line:  cc /✂️/fprintd/builddir/meson-private/tmpodrcq8pz/testfile.c -o /✂️/fprintd/builddir/meson-private/tmpodrcq8pz/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Wunused 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Wunused: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmpd1mkxbmi
Command line:  cc /✂️/fprintd/builddir/meson-private/tmpd1mkxbmi/testfile.c -o /✂️/fprintd/builddir/meson-private/tmpd1mkxbmi/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Wunused-parameter -Wno-unused-parameter 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Wno-unused-parameter: YES 
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmp95oyxod7
Command line:  cc /✂️/fprintd/builddir/meson-private/tmp95oyxod7/testfile.c -o /✂️/fprintd/builddir/meson-private/tmp95oyxod7/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 -Wpedantic -Wno-pedantic 

Code:
 extern int i;
int i;

Compiler stdout:
 
Compiler stderr:
 
Compiler for C supports arguments -Wno-pedantic: YES 
Pkg-config binary for MachineChoice.HOST is not cached.
Pkg-config binary missing from cross or native file, or env var undefined.
Trying a default Pkg-config fallback at pkg-config
Found pkg-config: /usr/bin/pkg-config (0.29.2)
Determining dependency 'glib-2.0' with pkg-config executable '/usr/bin/pkg-config'
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --modversion glib-2.0` -> 0
2.68.1
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --cflags glib-2.0` -> 0
-I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include
env[PKG_CONFIG_ALLOW_SYSTEM_LIBS]: 1
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --libs glib-2.0` -> 0
-L/usr/lib/x86_64-linux-gnu -lglib-2.0
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --libs glib-2.0` -> 0
-lglib-2.0
Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmpsvaimxrm
Command line:  cc /✂️/fprintd/builddir/meson-private/tmpsvaimxrm/testfile.c -o /✂️/fprintd/builddir/meson-private/tmpsvaimxrm/output.exe -D_FILE_OFFSET_BITS=64 -O0 

Code:
 #include<stdio.h>
        
        int main(void) {
            printf("%ld\n", (long)(sizeof(void *)));
            return 0;
        };
Compiler stdout:
 
Compiler stderr:
 
Program stdout:

8

Program stderr:


Running compile:
Working directory:  /✂️/fprintd/builddir/meson-private/tmp77_nzddv
Command line:  cc /✂️/fprintd/builddir/meson-private/tmp77_nzddv/testfile.c -o /✂️/fprintd/builddir/meson-private/tmp77_nzddv/output.obj -c -D_FILE_OFFSET_BITS=64 -O0 --print-search-dirs 

Code:
 
Compiler stdout:
 install: /usr/lib/gcc/x86_64-linux-gnu/10/
programs: =/usr/lib/gcc/x86_64-linux-gnu/10/:/usr/lib/gcc/x86_64-linux-gnu/10/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/10/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/bin/x86_64-linux-gnu/10/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/bin/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/bin/
libraries: =/usr/lib/gcc/x86_64-linux-gnu/10/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/lib/x86_64-linux-gnu/10/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/lib/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../x86_64-linux-gnu/10/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../lib/:/lib/x86_64-linux-gnu/10/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/10/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../../x86_64-linux-gnu/lib/:/usr/lib/gcc/x86_64-linux-gnu/10/../../../:/lib/:/usr/lib/

Compiler stderr:
 
Run-time dependency glib-2.0 found: YES 2.68.1
Pkg-config binary for MachineChoice.HOST is cached.
Determining dependency 'gio-2.0' with pkg-config executable '/usr/bin/pkg-config'
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --modversion gio-2.0` -> 0
2.68.1
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --cflags gio-2.0` -> 0
-pthread -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include
env[PKG_CONFIG_ALLOW_SYSTEM_LIBS]: 1
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --libs gio-2.0` -> 0
-L/usr/lib/x86_64-linux-gnu -lgio-2.0 -lgobject-2.0 -lglib-2.0
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --libs gio-2.0` -> 0
-lgio-2.0 -lgobject-2.0 -lglib-2.0
Run-time dependency gio-2.0 found: YES 2.68.1
Pkg-config binary for MachineChoice.HOST is cached.
Determining dependency 'gio-unix-2.0' with pkg-config executable '/usr/bin/pkg-config'
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --modversion gio-unix-2.0` -> 0
2.68.1
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --cflags gio-unix-2.0` -> 0
-pthread -I/usr/include/gio-unix-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include
env[PKG_CONFIG_ALLOW_SYSTEM_LIBS]: 1
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --libs gio-unix-2.0` -> 0
-L/usr/lib/x86_64-linux-gnu -lgio-2.0 -lgobject-2.0 -lglib-2.0
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --libs gio-unix-2.0` -> 0
-lgio-2.0 -lgobject-2.0 -lglib-2.0
Run-time dependency gio-unix-2.0 found: YES 2.68.1
Pkg-config binary for MachineChoice.HOST is cached.
Determining dependency 'gmodule-2.0' with pkg-config executable '/usr/bin/pkg-config'
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --modversion gmodule-2.0` -> 0
2.68.1
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --cflags gmodule-2.0` -> 0
-pthread -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include
env[PKG_CONFIG_ALLOW_SYSTEM_LIBS]: 1
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --libs gmodule-2.0` -> 0
-L/usr/lib/x86_64-linux-gnu -Wl,--export-dynamic -lgmodule-2.0 -pthread -lglib-2.0
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --libs gmodule-2.0` -> 0
-Wl,--export-dynamic -lgmodule-2.0 -pthread -lglib-2.0
Run-time dependency gmodule-2.0 found: YES 2.68.1
Pkg-config binary for MachineChoice.HOST is cached.
Determining dependency 'libfprint-2' with pkg-config executable '/usr/bin/pkg-config'
env[PKG_CONFIG_PATH]: 
Called `/usr/bin/pkg-config --modversion libfprint-2` -> 1

CMake binary for 1 is not cached
CMake binary missing from cross or native file, or env var undefined.
Trying a default CMake fallback at cmake
Did not find CMake 'cmake'
Found CMake: NO
CMake binary for machine 1 not found. Giving up.
Run-time dependency libfprint-2 found: NO (tried pkgconfig)

meson.build:84:0: ERROR: Dependency "libfprint-2" not found, tried pkgconfig

so I installed cmake. and ran `meson builddir` again, but the error about libfprint-2 remained.

In another thread, I learned about ninja -C builddir install, which I ran in the libfprint directory.

And now I get a different error from fprintd meson builddir

meson.build:148:8: ERROR: Problem encountered: Python3 module 'gi.repository.FPrint' required by test suite not found
1 Like

Use Void Linux, where the binary package is at 1.94.0 :wink: (shameless plug)

1 Like

Well, I’m already using Ubuntu 21.04 – (and have a lot of setup scripts for ubuntu, so I think I’ll stick with that)

@NullVoxPopuli I saw both of those errors at one point.
#1 I think what fixed the libfprint-2 problem for me was sudo apt install libfprint-2-dev
#2 If you are certain that you installed all dependencies (in particular check for pip install gobject and pip install PyGObject), a hacky workaround would be to comment out the line in meson.build that says 'gi.repository.Fprint': true and then try again.

Hi all - an apologies for my lack of technical skills. Loving my Framework laptop and Ubuntu so far working SUPER well. I cannot seem to install the needed updates for the fingerprint reader - I am definitely NOT more the techy type and the chain of discussion is a bit hard for me. Any suggestions (other than the obvious: learn more about all this - hehe…) for a concise set of instructions for a total newbie? Or maybe the best recommendation is ‘wait til it gets rolled into Ubuntu itself…’

1 Like

@Atul_Ingle you can edit /etc/pam.d/sudo to include the following lines in order to use fingerprint sensor first, and a password as fallback. Make sure that top line is at the top, as PAM reads sequentially line-by-line.

#%PAM-1.0
auth      	sufficient 	pam_fprintd.so try first_pass likeauth nullok
auth		include		system-auth
account		include		system-auth
session		include		system-auth
3 Likes

Thank you Anthony1, but I don’t know how to do what you are indicating. I am thinking the best answer for me it to just wait until its supported by Ubuntu. I know it seems very easy (and crazy that I don’t know how to edit using terminal, but it just seem to elude me without detailed instructions)

Is the fingerprint sensor’s backlight supposed to be always on?

(I’m on Ubuntu 21.04)

@Atul_Ingle thanks tons for your help - I don’t understand/know how to edit at step 3 of ian’s instructions. how do I get it to save and exit the editor window?

I am getting there - now I have this?:
meson.build:209:12: ERROR: Problem encountered: pixman is required for aes3500 and possibly others

@ari it’s always on for me. I don’t mind it because I think of it like a “power on” indicator instead of “fingerprint sensor backlight”. I don’t think there’s a way to change that behavior through your OS settings.

1 Like

@Atul_Ingle that’s a good way to think of it. I was curious because of this gif from the framework blog: Framework | The Touchpad and Fingerprint Reader

The fingerprint issue some people were having with “finger is too similar to another” seems like it’s an issue that affects other laptops too. I found this post where what sounds like the exact same issue was resolved by replacing the motherboard (!!!). I have a Dell Inspiron 5515 (the id of the Goodix reader it uses is 27c6:639c) with this issue too, it seems that Vaelatern was on the right path, that the reader has its own storage somewhere that causes issues. I suspect the reader isn’t playing well with fprintd. I tried with version 1.94.0, which supports clearing the chip’s storage as of fprintd 1.92.0 but no dice. I’ve cleared TPM, cleared CMOS, tried clean installs of different distros and the problem is still there. However, in Windows, it works, even with the finger that’s problematic on Linux. Since it works on Windows, I’ve also tried enrolling and removing the problematic fingerprint, but that does not remove it from wherever it’s saved on the board, and I end up with the same issue when I boot back into Linux, even a clean install. Since you mentioned you’ve been in contact with Goodix, are there any updates on the situation that you could share @nrp? Perhaps you could forward the above information as well since it may help with finding a solution for the Framework Laptop (and hopefully other laptops as well). Sorry for the wall of text about other laptops, but since the issues sound identical and that there were multiple people with this issue here, I thought it may be helpful to post about it here.

edit: this issue - fprintd-enroll fails immediately with "enroll-disconnected" for supported device (#404) · Issues · libfprint / libfprint · GitLab also sounds very similar

3 Likes