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
.
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:
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”.
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!