After reinstalling linux on the framwork laptop the fingerprint reader in not behaving properly

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.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like