Skip to content

Instantly share code, notes, and snippets.

@borcean
Last active June 4, 2025 12:43
Show Gist options
  • Save borcean/f32c47f6cc52cee33dfc2265ce63f777 to your computer and use it in GitHub Desktop.
Save borcean/f32c47f6cc52cee33dfc2265ce63f777 to your computer and use it in GitHub Desktop.
ThinkPad T480 fingerprint reader on Fedora Linux

ThinkPad T480 fingerprint reader on Fedora Linux

Background

The Synaptics fingerprint sensor (06cb:009a) present on my T480 is not supported by libfprint and fprintd as it requires a non-free binary blob. uunicorn created open-fprintd, a replacement for fprintd, that allows for loading of binary blobs. In conjunction with their python-validity driver we are able to make use of the inbuilt fingerprint reader. The following instructions were tested against Fedora Linux 35.

Installing open-fprintd and python-validity

sudo dnf copr enable tigro/python-validity
sudo dnf install open-fprintd fprintd-clients fprintd-clients-pam python3-validity

Prepare the fingerprint reader

sudo touch /usr/share/python-validity/backoff
sudo touch /usr/share/python-validity/calib-data.bin
sudo validity-sensors-firmware
sudo python3 /usr/share/python-validity/playground/factory-reset.py
sudo chmod 0755 /usr/share/python-validity/6_07f_lenovo_mis_qm.xpfwext

Enable services

sudo systemctl enable python3-validity open-fprintd-resume open-fprintd-suspend
sudo systemctl start python3-validity

Enroll and test fingerprint

fprintd-enroll
fprintd-verify

Enable authentication with fingerprint

sudo authselect current
sudo authselect enable-feature with-fingerprint
sudo authselect apply-changes
@DarthxPotatoes
Copy link

After trying to enroll I get a message "Impossible to enroll: GDBus.Error:net.reactivated.Fprint.Error.NoSuchDevice:"
Any ideas to point me in the right direction? I'm on Fedora 38 with a T480.

Thanks

@TwinniDev
Copy link

Tested Rubin's solution to the sleep problem on Fedora 38 and it works wonderfully! Thanks for the great work!

@giurest
Copy link

giurest commented Aug 3, 2023

Follow this comment for t480s and fedora 38 GDBUS.Error

sudo setenforce Permissive
sudo systemctl restart python3-validity

#for auth in terminal
sudo authselect enable-feature with-fingerprint

@baumkuchen42
Copy link

Might be obvious for some, but: don't forget to restart after executing this gist!

@kavemang
Copy link

kavemang commented Apr 15, 2024

anyone know if this is still working in fedora 39? I tried some things last year I couldnt get to work but dont recall trying a guide that dipped into selinux modification

PS: this is partially working for me but when waking from sleep I cant use fingerprint and there is a long delay after using password before it lets me in

@Boffice
Copy link

Boffice commented Jun 25, 2024

Last metadata expiration check: 0:00:58 ago on Tue 25 Jun 2024 06:07:26 PM EDT.
Error:
Problem 1: conflicting requests

  • nothing provides python(abi) = 3.11 needed by open-fprintd-0.6-7.fc39.noarch from copr:copr.fedorainfracloud.org:tigro:python-validity
    Problem 2: conflicting requests
  • nothing provides python(abi) = 3.11 needed by python3-validity-0.14-2.fc39.noarch from copr:copr.fedorainfracloud.org:tigro:python-validity
  • nothing provides python3.11dist(cryptography) >= 2.1.4 needed by python3-validity-0.14-2.fc39.noarch from copr:copr.fedorainfracloud.org:tigro:python-validity
  • nothing provides python3.11dist(pyusb) >= 1 needed by python3-validity-0.14-2.fc39.noarch from copr:copr.fedorainfracloud.org:tigro:python-validity
  • nothing provides python3.11dist(pyyaml) >= 3.12 needed by python3-validity-0.14-2.fc39.noarch from copr:copr.fedorainfracloud.org:tigro:python-validity
    (try to add '--skip-broken' to skip uninstallable packages)

@Evanston09
Copy link

I don't know if you still have that error but for everyone else you need to use a different copr. You can use either: sneexy/python-validity or taaem/python-validity

@AQSAMA
Copy link

AQSAMA commented Aug 1, 2024

I used them but got this error: chmod: cannot access '/usr/share/python-validity/6_07f_lenovo_mis_qm.xpfwext': No such file or directory

And after this command: sudo chmod 0755 /usr/share/python-validity/6_07f_lenovo_mis_qm.xpfwext

@Stredoslovak
Copy link

Stredoslovak commented Nov 5, 2024

Hello, I am trying to get the Fingerprint reader on my T480s getting to work, as I am following the provided guide, I am facing some interesting errors and I was wondering if anyone would be able to help me.

$ sudo python3 /usr/share/python-validity/playground/factory-reset.py
Traceback (most recent call last):
  File "/usr/share/python-validity/playground/factory-reset.py", line 6, in <module>
    factory_reset()
    ~~~~~~~~~~~~~^^
  File "/usr/lib/python3.13/site-packages/validitysensor/sensor.py", line 87, in factory_reset
    assert_status(usb.cmd(b'\x10' + b'\0' * 0x61))
    ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/site-packages/validitysensor/util.py", line 12, in assert_status
    raise Exception('Failed: %04x' % s)
Exception: Failed: 0404

This over here I am not able to fix by any means. Can somebody please explain me what is going on?

OS: Fedora Workstation 41

@kavemang
Copy link

kavemang commented May 1, 2025

@Stredoslovak this was working in Fedora 40 but no longer works in Fedora 41 and 42 Fprint no longer recognizes the synaptics reader used in the t480 and t480s not sure why

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