I’ve been using NixOS on my Framework laptop, but there’s one bug I haven’t been able to figure out.
When I first boot the laptop, the fingerprint reader works just fine. But after a while - usually within a day - it stops working completely. It doesn’t show up in fwupdmgr as a device:
❯ fwupdmgr update
Devices with no available firmware updates:
• CT1000P310SSD8
• HDMI Expansion Card
• KEK CA
• Laptop Webcam Module (2nd Gen)
• System Firmware
• UEFI CA
• UEFI dbx
• Windows UEFI CA
• frame.work-LaptopDB
• frame.work-LaptopKEK
No updatable devices
Nor in fprintd:
❯ fprintd-list $USER
No devices available
After rebooting, the fingerprint reader is recognized by both commands:
❯ fwupdmgr update
Devices with no available firmware updates:
• CT1000P310SSD8
• Fingerprint Sensor
• HDMI Expansion Card
• KEK CA
• Laptop Webcam Module (2nd Gen)
• System Firmware
• UEFI CA
• UEFI dbx
• Windows UEFI CA
• frame.work-LaptopDB
• frame.work-LaptopKEK
No updatable devices
❯ fprintd-list $USER
found 1 devices
Device at /net/reactivated/Fprint/Device/0
Using device /net/reactivated/Fprint/Device/0
Fingerprints for user agindin on Goodix MOC Fingerprint Sensor (press):
- #0: right-index-finger
I’ve searched the forums and Google, but haven’t found any solutions to this exact issue. Not sure if it’s a hardware problem or something specific to NixOS.
I noticed hyprlock briefly showing an error message along the lines of fingerprint auth disabled (unknown error).
The fprintd logs show some errors:
❯ journalctl -u fprintd --since "1 hour ago" --no-pager
Nov 25 06:00:53 khazad-dum fprintd[5307]: Failed to disable USB persist by writing to /sys/bus/usb/devices/1-1/power/persist
Nov 25 06:00:55 khazad-dum fprintd[5307]: Device reported an error during verify: transfer timed out
Nov 25 06:01:17 khazad-dum fprintd[5307]: Failed to disable USB persist by writing to /sys/bus/usb/devices/1-1/power/persist
Nov 25 06:01:19 khazad-dum fprintd[5307]: Device reported an error during verify: transfer timed out
Nov 25 06:01:58 khazad-dum fprintd[5307]: Device reported an error during verify: The device is still busy with another operation, please try again later.
Nov 25 06:02:16 khazad-dum fprintd[5307]: Unexpected error while suspending device: The device is still busy with another operation, please try again later.
Nov 25 06:22:33 khazad-dum fprintd[5307]: Device reported an error during verify: The device is still busy with another operation, please try again later.
Nov 25 06:22:40 khazad-dum fprintd[5307]: Authorization denied to :1.103 to call method 'Claim' for device 'Goodix MOC Fingerprint Sensor': Device was already claimed
Nov 25 06:23:11 khazad-dum systemd[1]: fprintd.service: Deactivated successfully.
Nov 25 06:23:14 khazad-dum systemd[1]: Starting Fingerprint Authentication Daemon...
Nov 25 06:23:14 khazad-dum systemd[1]: Started Fingerprint Authentication Daemon.
Edit: I also tried adding a kernel quirk to force disable USB autosuspend for the fingerprint reader (usbcore.quirks=27c6:609c:k), but that didn’t work either.
I’ve had this exact same issue on my Framework 13 Ryzen AI 340. I changed TPM Operation setting to No operation in the BIOS. I don’t believe this disables the TPM, it seems stops it from being restarted every time you wake up the laptop from boot. This fixed the issue for me and the TPM still works for me if TPM availability is on.
Based on this thread, I’ve also tried editing my hypridle config to lock the screen after resuming, instead of before; and manually running the commands to unbind and rebind the USB xHCI controller. Neither worked for me.
I am also having a lot of trouble with this, and would love it if someone came up with a fix. I am personally having problems after suspends and I’ve been using this script after i notice it failed, hope it can help someone