I recently upgraded to 22.04, and I had previously had the fingerprint reader working, but have ran in to some issues.
the more obvious one is that the fprintd
service fails to start.
I’ve reported this here: Automated post-install setup of Ubuntu 20.04 and 22.04 on the Framework - #60 by Allie_Fitter
as it seems at least that is a good way to get back to the state I was in before I started manually messing with this.
But idk — what could the issue be?
Here is the error output from the fprintd service:
❯ sudo service fprintd status
[sudo] password for nullvoxpopuli:
× fprintd.service - Fingerprint Authentication Daemon
Loaded: loaded (/lib/systemd/system/fprintd.service; static)
Active: failed (Result: exit-code) since Mon 2022-05-02 14:57:58 EDT; 53s ago
Docs: man:fprintd(1)
Process: 44560 ExecStart=/usr/libexec/fprintd (code=exited, status=127)
Main PID: 44560 (code=exited, status=127)
CPU: 84ms
May 02 14:57:57 hephaestus systemd[1]: Starting Fingerprint Authentication Daemon...
May 02 14:57:58 hephaestus fprintd[44560]: /usr/libexec/fprintd: symbol lookup error: /usr/libexec/fprintd: undefined symbol: fp_device_suspend_finish, version LIBFPRINT_2.0.0
May 02 14:57:58 hephaestus systemd[1]: fprintd.service: Main process exited, code=exited, status=127/n/a
May 02 14:57:58 hephaestus systemd[1]: fprintd.service: Failed with result 'exit-code'.
May 02 14:57:58 hephaestus systemd[1]: Failed to start Fingerprint Authentication Daemon.
More context can be found here: Automated post-install setup of Ubuntu 20.04 and 22.04 on the Framework - #86 by NullVoxPopuli
(But since this issue was happening to be before running those scripts (and also before I started manually trying to (un)install stuff), I think this is more a general upgrade issue).
More information
locations of various libfprint *.so files
❯ sudo find / -name "libfprint*so*"
/usr/lib/x86_64-linux-gnu/libfprint-2.so.2.0.0
/usr/lib/x86_64-linux-gnu/libfprint-2.so.2
/usr/lib/x86_64-linux-gnu/libfprint-2-tod.so.1
/usr/local/lib/x86_64-linux-gnu/libfprint-2.so.2
/usr/local/lib/x86_64-linux-gnu/libfprint-2.so.2.0.0
/usr/local/lib/x86_64-linux-gnu/libfprint-2.so
find: ‘/run/user/1000/doc’: Permission denied
find: ‘/run/user/1000/keybase/kbfs’: Permission denied
find: ‘/run/user/1000/gvfs’: Permission denied
find: ‘/tmp/.mount_nvimNH5uRO’: Permission denied
find: ‘/tmp/.mount_nvimi29cO0’: Permission denied
find: ‘/tmp/.mount_nvimwhl7h7’: Permission denied
find: ‘/proc/97833/task/97833/net’: Invalid argument
find: ‘/proc/97833/net’: Invalid argument
find: ‘/proc/103498/task/103498/net’: Invalid argument
find: ‘/proc/103498/net’: Invalid argument
Shared library information (and deps)
❯ ldd /usr/libexec/fprintd
linux-vdso.so.1 (0x00007ffe94470000)
libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007fbeda5fd000)
libgio-2.0.so.0 => /lib/x86_64-linux-gnu/libgio-2.0.so.0 (0x00007fbeda425000)
libgobject-2.0.so.0 => /lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007fbeda3c5000)
libgmodule-2.0.so.0 => /lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007fbeda3be000)
libfprint-2.so.2 => /usr/local/lib/x86_64-linux-gnu/libfprint-2.so.2 (0x00007fbed74d2000)
libpolkit-gobject-1.so.0 => /lib/x86_64-linux-gnu/libpolkit-gobject-1.so.0 (0x00007fbed74b0000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fbed7288000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fbed7212000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fbed712b000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fbed710f000)
libmount.so.1 => /lib/x86_64-linux-gnu/libmount.so.1 (0x00007fbed70cb000)
libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007fbed709d000)
libffi.so.8 => /lib/x86_64-linux-gnu/libffi.so.8 (0x00007fbed7090000)
libgusb.so.2 => /lib/x86_64-linux-gnu/libgusb.so.2 (0x00007fbed707d000)
libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007fbed6fb6000)
/lib64/ld-linux-x86-64.so.2 (0x00007fbeda777000)
libblkid.so.1 => /lib/x86_64-linux-gnu/libblkid.so.1 (0x00007fbed6f7f000)
libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007fbed6ee6000)
libusb-1.0.so.0 => /lib/x86_64-linux-gnu/libusb-1.0.so.0 (0x00007fbed6ec9000)
liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007fbed6e9e000)
libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x00007fbed6dcf000)
liblz4.so.1 => /lib/x86_64-linux-gnu/liblz4.so.1 (0x00007fbed6daf000)
libcap.so.2 => /lib/x86_64-linux-gnu/libcap.so.2 (0x00007fbed6da4000)
libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007fbed6c64000)
libudev.so.1 => /lib/x86_64-linux-gnu/libudev.so.1 (0x00007fbed6c3a000)
libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007fbed6c14000)
service information
❯ sudo systemctl cat fprintd.service
# /lib/systemd/system/fprintd.service
[Unit]
Description=Fingerprint Authentication Daemon
Documentation=man:fprintd(1)
[Service]
Type=dbus
BusName=net.reactivated.Fprint
ExecStart=/usr/libexec/fprintd
# Filesystem lockdown
ProtectSystem=strict
ProtectKernelTunables=true
ProtectKernelLogs=true
ProtectControlGroups=true
# This always corresponds to /var/lib/fprint
StateDirectory=fprint
StateDirectoryMode=0700
ProtectHome=true
PrivateTmp=true
SystemCallFilter=@system-service
# Network
RestrictAddressFamilies=AF_UNIX AF_LOCAL AF_NETLINK
# Execute Mappings
MemoryDenyWriteExecute=true
# Modules
ProtectKernelModules=true
# Real-time
RestrictRealtime=true
# Privilege escalation
NoNewPrivileges=true
# Protect clock, allow USB and SPI device access
ProtectClock=yes
DeviceAllow=char-usb_device rw
DeviceAllow=char-spi rw
DeviceAllow=char-hidraw rw
# Allow tuning USB parameters (wakeup and persist)
ReadWritePaths=/sys/devices