我在框架笔记本电脑上安装了 Fedora 35,并设置了指纹读取器用于登录和 sudo。
然后出于某种原因,我格式化了笔记本电脑并再次安装了 Fedora 35。然后出现了奇怪的现象:当我想登记同一个手指时,一切都很顺利,但在最后一步之前会出现错误:“指纹设备已断开连接”。
然后我尝试注册另一个手指,成功了,但是在第一次使用(登录或 sudo)时,它会失败并且再也不会建议使用指纹。
我想我需要清除设备上旧的注册指纹,但找不到任何相关资源。
我该怎么做?谢谢
编辑:输出: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: /system.slice/fprintd.service
└─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
答案1
从这里,这个python脚本可以清除所有已登记的指纹:
#! /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()
我将其保存为clear_fingerprints.py
并运行sudo python clear_fingerprints.py
,然后重新启动(只是为了谨慎)并再次登记我的指纹。