在笔记本电脑框架上重新安装 Linux 后,指纹读取器无法正常工作

在笔记本电脑框架上重新安装 Linux 后,指纹读取器无法正常工作

我在框架笔记本电脑上安装了 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,然后重新启动(只是为了谨慎)并再次登记我的指纹。

相关内容