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:
In my case, it’s
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’ll try to make the .deb package later.
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:
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”.
Step 5: Enable Fingerprint Authentication
If everything’s goes well, you can now run the single command below to manage PAM module:
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
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:
In the screen, disable
fingerprint authenticationthen, 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!