Enable Fingerprint Reader in Ubuntu 24.04/22.04 for ThinkPad T480s

Last updated: November 11, 2024 — 17 Comments

This is a step by step guide shows how to enable fingerprint reader support for Lenovo ThinkPad T480/T480s, X1 Carbon 6th gen, X1 Yoga 3rd gen, X280, etc with 06cb:009a device in Ubuntu 22.04.

Ubuntu has fingerprint reader support out-of-the-box using libfprint, and provides option to enable fingerprint login in Users settings page. However, the library has a list of unsupported devices, including 06cb:009a that’s built-in in my used ThinkPad T480s laptop.

Thankfully, there’s a free open-source alternative python-validity that works in my case. Here’s how to install and set it up in Ubuntu 22.04, while Ubuntu 20.04 is also supported.

NOTE: This tutorial may also work in many other fingerprint readers, however, the project so far does NOT provide a page to list all supported devices.

Step 1: Tell Which Fingerprint Reader device do your laptop have

First of all, you may press Ctrl+Alt+T on keyboard to open up a terminal window.

Then run command to find out the device name of your fingerprint reader:

lsusb

In my case, it’s 06cb:009a. Not only for this device, the steps below should also work for 138a:0090, 138a:0097, 138a:009d.

Step 2: Install python3-validity driver

1. In a terminal window, first run command to uninstall the pre-installed libfprint driver:

sudo apt remove fprintd

2. Then, add the software developer’s PPA that contains the new driver packages:

sudo add-apt-repository ppa:uunicorn/open-fprintd

NOTE: The PPA so far supports Ubuntu 18.04, Ubuntu 20.04, and Ubuntu 22.04.
For Ubuntu 23.10 and Ubuntu 24.04, I’ve built the package into this unofficial PPA (without testing), run this command instead to add the PPA:

sudo add-apt-repository ppa:ubuntuhandbook1/open-fprintd

3. Finally, install the driver packages by running command:

sudo apt install open-fprintd fprintd-clients python3-validity

Linux Mint user needs to run sudo apt update first to refresh package cache after adding PPA.

Step 3: Enable python3-validity service

After installing the driver package, it should automatically start the service.

To verify, simply run command in terminal:

systemctl status python3-validity.service

If it’s not in active running status, try running commands below to enable & start the service:

systemctl enable python3-validity.service
systemctl start python3-validity.service

Step 4: Enroll your fingerprint

Next, run the command below in terminal:

fprintd-enroll

It outputs “Enrolling right-index-finger finger“, and the LED light is turning on.

Now, touch the fingerprint sensor repeatedly. As you press your finger on the fingerprint sensor and lift it, it outputs a line says either Enroll result: enroll-stage-passed or Enroll result: enroll-retry-scan. Do it repeatedly, until it outputs “enroll-completed”.

NOTE: Fprintd enroll failed in my case in Ubuntu 24.04 LTS. It outputs some ‘enroll-stoage-passed’, but finally output ‘result:enroll-failed’. However, the fingerprint reader somehow just works after reboot in my T480s!!

Step 5: Enable Fingerprint Authentication

If everything’s goes well, you can now run the single command below to manage PAM module:

sudo pam-auth-update

In next screen, use up/down arrow keys to choose “Fingerprint authentication”, then press space-bar to enable/disable it. Finally, press Tab to highlight OK and hit Enter.

After that, either lock screen then try using your fingerprint to un-lock. Or, run something or some commands that need user authentication, it will prompt you to “Place your finger on the fingerprint reader“.

In case fingerprint is not working after waking up from suspend, also run command to enable the service to automatically restart device after resume.

sudo systemctl enable open-fprintd-resume open-fprintd-suspend

Uninstall

So, if the driver does not work for your fingerprint reader, do following steps one by one to undo the changes.

  • First, open terminal (Ctrl+Alt+T) and run command to re-configure PAM:
    sudo pam-auth-update

    In the screen, disable fingerprint authentication then, hit Tab and enter.

  • Next, run command to uninstall the python3-validity driver:
    sudo apt remove --autoremove open-fprintd fprintd-clients python3-validity

    Also, remove the Ubuntu PPA by running command:

    sudo add-apt-repository --remove ppa:uunicorn/open-fprintd

If you want, you may install back the original fprintd driver via command:

sudo apt install fprintd

That’s all. Enjoy!

Twitter

I'm a freelance blogger who started using Ubuntu in 2007 and wishes to share my experiences and some useful tips with Ubuntu beginners and lovers. Please comment to let me know if the tutorial is outdated! And, notify me if you find any typo/grammar/language mistakes. English is not my native language. Contact me via [email protected] Buy me a coffee: https://ko-fi.com/ubuntuhandbook1 |

17 responses to Enable Fingerprint Reader in Ubuntu 24.04/22.04 for ThinkPad T480s

  1. Thank you, Ji. My 1st comment here.
    Your website is helpful and always with clear instructions. One of the best out there.

    I just to report that I’ve tried the instructions on my ThinkPad X1 Carbon 6th running Ubuntu Cinnamon 23.10.
    All worked as expected but then as you mentioned the driver is broken after resuming from sleep. The “sudo systemctl enable open-fprintd-resume open-fprintd-suspend” doesn’t seem to help for me.
    Also, when unresponsive, I have trouble manually entering the password.

  2. Thank you!
    Worked for my T480.
    :^)

  3. hey i get the fail to start error, as follows

    × python3-validity.service – python-validity driver dbus service
    Loaded: loaded (/lib/systemd/system/python3-validity.service; enabled; ven>
    Active: failed (Result: exit-code) since Thu 2024-05-09 09:06:51 +03; 15s >
    Process: 6913 ExecStart=/usr/lib/python-validity/dbus-service –debug (code>
    Main PID: 6913 (code=exited, status=1/FAILURE)
    CPU: 134ms

  4. How do I choose a fingerprint reader for my Ubuntu 24.04 Desktop?
    Choosing one randomly that will create a nightmare scenario isnt something I want to do..
    I am a complete novice at Ubuntu and unlikely to learn/remember command line instructions.. I am a ‘monkey see, monkey do Ubuntu lover’

  5. Aaaah without your help I would have not done it, thank you

  6. Thank you, Ji m. Worked for my T480s

  7. Thank you so much

  8. I am getting a 404 when I attempt to retieve the open-frpintd/ubuntu package:

    Err:10 https://ppa.launchpadcontent.net/uunicorn/open-fprintd/ubuntu noble Release
    404 Not Found [IP: 2620:2d:4000:1::81 443]

  9. It said enroll failed for me also but after forcing all the steps I can now log in using my fingerprintd as well as confirm sudo in the terminal Much appreciated!

    t480s / linux mint 22

  10. Thank you very very much!!!!
    I try to do that really many different sites, but none of them works.
    No it works perfectly!!!!

  11. Thank you!
    Worked for my x280….!!! :)

  12. Thanks man – works well on my Lenovo Yoga x380

  13. Hello. Thanks for article. i have lenovo thinkpad e580.
    lsusb
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 001 Device 002: ID 09da:c10a A4Tech Co., Ltd. USB Mouse
    Bus 001 Device 004: ID 5986:2113 Bison Electronics Inc. SunplusIT Integrated Camera
    Bus 001 Device 005: ID 06cb:00a2 Synaptics, Inc. Metallica MOH Touch Fingerprint Reader
    Bus 001 Device 006: ID 8087:0032 Intel Corp. AX210 Bluetooth
    Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

    But not working.

    systemctl status python3-validity.service
    × python3-validity.service – python-validity driver dbus service
    Loaded: loaded (/usr/lib/systemd/system/python3-validity.service; enabled; preset: enabled)
    Active: failed (Result: exit-code) since Sun 2024-11-10 10:40:43 +03; 7s ago
    Duration: 4.085s
    Process: 5816 ExecStart=/usr/lib/python-validity/dbus-service –debug (code=exited, status=1/FAILURE)
    Main PID: 5816 (code=exited, status=1/FAILURE)
    CPU: 3.424s

    File “/usr/lib/python3/dist-packages/validitysensor/init.py”, line 47, in open
    usb.open()
    File “/usr/lib/python3/dist-packages/validitysensor/usb.py”, line 50, in open
    self.open_dev(dev)
    File “/usr/lib/python3/dist-packages/validitysensor/usb.py”, line 62, in open_dev
    raise Exception(‘No matching devices found’)
    Exception: No matching devices found
    python3-validity.service: Main process exited, code=exited, status=1/FAILURE
    python3-validity.service: Failed with result ‘exit-code’.
    python3-validity.service: Consumed 3.424s CPU time, 157.7M memory peak, 0B memory swap peak.
    $ systemctl enable python3-validity.service
    $ systemctl start python3-validity.service
    $ fprintd-enroll
    list_devices failed:

    Please help.

Leave a Reply

Text formatting is available via select HTML.

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> 

*