I installed Fedora 35 on the framework laptop and set up fingerprint reader for login and sudo.
The for some reason I formatted the laptop and installed Fedora 35 again. Then strange behavior started: When I wanted to enroll the same finger, it would go well, but before the last step it would error: "Fingerprint device disconnected".
Then I tried enrolling another finger which succeeds, but then on the first usage (login or sudo), it will fail and never suggest to use the fingerprint again.
I guess I need to clean the old enrolled fingerprints from the device, but could not find any resources regarding this.
How should I proceed? Thanks
EDIT: The output of: systemctl status fprintd
● fprintd.service - Fingerprint Authentication Daemon Loaded: loaded (/usr/lib/systemd/system/fprintd.service; static) Active: active (running) since Tue 2021-11-30 09:18:23 PST; 24s ago Docs: man:fprintd(1) Main PID: 19931 (fprintd) Tasks: 5 (limit: 38206) Memory: 1.6M CPU: 83ms CGroup: / └─19931 /usr/libexec/fprintd
Nov 30 09:18:22 fedora.mycompany.com.beta.tailscale.net systemd[1]: Starting Fingerprint Authentication Daemon...
Nov 30 09:18:22 fedora.mycompany.com.beta.tailscale.net fprintd[19931]: Failed to open /sys/bus/usb/devices/3-9/power/persist
Nov 30 09:18:23 fedora.mycompany.com.beta.tailscale.net systemd[1]: Started Fingerprint Authentication Daemon.
Nov 30 09:18:23 fedora.mycompany.com.beta.tailscale.net fprintd[19931]: libusb: error [udev_hotplug_event] ignoring udev action change
Nov 30 09:18:23 fedora.mycompany.com.beta.tailscale.net fprintd[19931]: libusb: error [udev_hotplug_event] ignoring udev action change 2 1 Answer
From here, this python script can clear all enrolled fingerprints:
#! /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()I saved it as clear_fingerprints.py and ran sudo python clear_fingerprints.py, then restarted (just to be cautious) and enrolled my fingerprints again.