Tested with Goodix 27c6:550a on Fedora 43 (Bluefin DX, nvidia-open). Should work for other Goodix TOD-compatible readers.
The Goodix driver requires libfprint-tod, which replaces the base libfprint package.
# Add the COPR repo (uses $releasever automatically)
sudo curl -o /etc/yum.repos.d/libfprint-tod-goodix.repo \
'https://copr.fedorainfracloud.org/coprs/antiderivative/libfprint-tod-goodix-0.0.9/repo/fedora-$releasever/'
# Override base libfprint with libfprint-tod
rpm-ostree override remove libfprint --install libfprint-tod-goodix
# Reboot to apply
systemctl rebootAfter reboot, enroll via Settings → Users → Fingerprint Login, or use the CLI:
fprintd-enroll -f right-index-finger
# Place finger on reader repeatedly until "enroll-completed"Tip: If the GUI shows "Failed to communicate with the fingerprint reader", try the CLI first. It can kick the device into a working state, after which the GUI works too.
By default, PAM serializes authentication — the fingerprint prompt blocks the password prompt for 30 seconds. This is annoying when you want to just type your password.
Fix by creating a custom authselect profile with a shorter timeout:
# Create custom profile based on the local profile
sudo authselect create-profile local-custom -b local --symlink-meta
# Edit the system-auth file to add a 5-second timeout
# Change: auth sufficient pam_fprintd.so
# To: auth sufficient pam_fprintd.so timeout=5
sudo vi /etc/authselect/custom/local-custom/system-auth
# Activate the custom profile
sudo authselect select custom/local-custom with-fingerprint with-silent-lastlogNow the password prompt appears after just 5 seconds if you don't use the fingerprint reader.