fprintd to try and register my fingerprints. I then realized I had registered different fingerprints as the same fingerprint (mis-calling the tool) so I decided to nuke the fprintd information
rm -r /var/lib/fprintd and try again.
Except now every time I try to scan my finger, it fails.
$ sudo fprintd-enroll vaelatern
Using device /net/reactivated/Fprint/Device/0
Enrolling right-index-finger finger.
Enroll result: enroll-stage-passed
Enroll result: enroll-unknown-error
$ echo $?
Is there a call I can make to reset the fingerprint database? I have some confidence that’s the problem since I don’t get this problem on fingers on my left hand (I only had scanned in my right hand).
Users could probably replicate by registering fingerprints and then re-installing Linux.
There is some discussion on this in
Fingerprint scanner compatibility with linux (ubuntu, fedora, etc) - #46 by Ryan_Helinski
There is a way to clear fingerprints in Windows 10, but we haven’t gotten an answer yet on what the equivalent is for Linux:
I appreciate the fast response.
I am not sure the windows suggestion would work for me even if I had a copy around, since the fingerprint DB wouldn’t be on a windows install. In fact I assume I did the equivalent by removing
/var/lib/fprintd, didn’t I?
I am certain now that it’s a duplicate fingerprint.
--- a/src/device.c.orig 2021-08-28 20:54:02.585041442 -0400
+++ b/src/device.c 2021-08-28 20:56:53.786046275 -0400
@@ -662,6 +662,28 @@
else if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
+ else if (g_error_matches (error, FP_DEVICE_ERROR, FP_DEVICE_ERROR_GENERAL))
+ return "enroll-error-general";
+ else if (g_error_matches (error, FP_DEVICE_ERROR, FP_DEVICE_ERROR_NOT_SUPPORTED))
+ return "enroll-error-not-supported";
+ else if (g_error_matches (error, FP_DEVICE_ERROR, FP_DEVICE_ERROR_NOT_OPEN))
+ return "enroll-error-not-open";
+ else if (g_error_matches (error, FP_DEVICE_ERROR, FP_DEVICE_ERROR_ALREADY_OPEN))
+ return "enroll-error-already-open";
+ else if (g_error_matches (error, FP_DEVICE_ERROR, FP_DEVICE_ERROR_BUSY))
+ return "enroll-error-busy";
+ else if (g_error_matches (error, FP_DEVICE_ERROR, FP_DEVICE_ERROR_DATA_INVALID))
+ return "enroll-error-data-invalid";
+ else if (g_error_matches (error, FP_DEVICE_ERROR, FP_DEVICE_ERROR_DATA_NOT_FOUND))
+ return "enroll-error-data-not-found";
+ else if (g_error_matches (error, FP_DEVICE_ERROR, FP_DEVICE_ERROR_DATA_FULL))
+ return "enroll-error-data-full";
+ else if (g_error_matches (error, FP_DEVICE_ERROR, FP_DEVICE_ERROR_DATA_DUPLICATE))
+ return "enroll-error-data-duplicate";
+ else if (g_error_matches (error, FP_DEVICE_ERROR, FP_DEVICE_ERROR_REMOVED))
+ return "enroll-error-device-removed";
+ else if (g_error_matches (error, FP_DEVICE_ERROR, FP_DEVICE_ERROR_TOO_HOT))
+ return "enroll-error-device-too-hot";
@nrp noted, there is an fprintd-delete utility. However, it may be useful to see if fprintd-list works first since that shouldn’t be a destructive command.
No fingerprints to delete on Goodix MOC Fingerprint Sensor
User vaelatern has no fingers enrolled for Goodix MOC Fingerprint Sensor.
Enroll result: enroll-error-data-duplicate
OK. May have to dig into the code. Wonder if there’s some mapping file somewhere that the library uses to keep track of what’s stored on the device.
Will try to take a look if I have time on my device since I got the list command to run properly.
It seems to use
/var/lib/fprintd to keep track of what the device knows.
libfprintd API asks for a pointer to a fingerprint record. I don’t know what it would do if passed NULL.
I am booting garuda linux on one drive and windows 10 on another, when I enrolled my finger in windows I have lost the ability to sign in on linux, it seems to only be accepting my finer as an option, not my password? Help please.
Once I figured out how to get into text mode I could sign in and deal with fprintd, first though I had to go to windows to delete the enrolled fingerprints as described in the link posted by nrp earlier in the thread: Accidentally breaking the fingerprint reader (software) - #2 by nrp
Any progress on deleting the device memory in Linux yet? Is the only solution to boot into windows right now?
@Henry_Luengas - there is a python script in this thread: Fingerprint scanner compatibility with linux (ubuntu, fedora, etc) - #87 by Brett_Kosinski that others apparently have used with success. I have not personally used it.
Having tried this, that solution doesn’t work. It recognizes the FW’s fingerprint sensor, then errors out trying to communicate with it.
I spent some more time on this, and I got together something that should be reasonably easy. I can’t guarantee it will work, and I provide this as-is with zero warranty - it has not been approved by Goodix, the manufacturer of the fingerprint device; I have just taken a guess at how their device works based on some code they left behind.
If you wish to verify this, I have signed the checksum file inside there with my GPG signature, FA6FB12588810A870C92609D3901327190847975 Devyn Cai…
How about this one? I was having a lot of problems with my fingerprint reader after jumping around OS’s, and this fixed the problem.