Skip to content

Instantly share code, notes, and snippets.

@davidar
Created February 22, 2026 04:26
Show Gist options
  • Select an option

  • Save davidar/522866cfe79a9c75fb1456e38a129022 to your computer and use it in GitHub Desktop.

Select an option

Save davidar/522866cfe79a9c75fb1456e38a129022 to your computer and use it in GitHub Desktop.
Fix Goodix fingerprint scanner (27c6:550a) on Fedora Atomic (Silverblue, Bluefin, etc.) with PAM timeout fix

Goodix Fingerprint Scanner on Fedora Atomic (Silverblue, Bluefin, etc.)

Tested with Goodix 27c6:550a on Fedora 43 (Bluefin DX, nvidia-open). Should work for other Goodix TOD-compatible readers.

Install the Driver

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 reboot

Enroll Fingerprints

After 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.

Fix PAM Timeout (Fingerprint Blocks Password)

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-lastlog

Now the password prompt appears after just 5 seconds if you don't use the fingerprint reader.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment