Fingerprint reader on X230

How easy is it to use the fingerprint reader on the Thinkpad X230?

photo of a Thinkpad keyboard showing the fingerprint reader I acquired a librebooted Thinkpad X230 (i7) a while ago and decided to set it up as my main travel/bed machine. Unlike the Thinkpad T480 whivh I bought recently I knew the X230 fingerprint reader worked fine because I had it set up under Ubuntu which the laptop had pre-installed.

Venice.ai had spectacularly failed to get the fingerprint reader on the T480 up and running, though it did warn me there might be trouble ahead. In the end I opted to follow it's advice and install an older version of Linux Mint (21.3 Virginia - LTS - Long Term Support - until mid 2027) over the fresh 24.04 Ubuntu it came with.

Here is the advice it gave for the X230 - in the end it was a lot easier than I was initially led to believe...

Question: How do I get the fingerprint reader working for Linux Mint 21.3 with a Thinkpad X230?

Getting the fingerprint reader on a ThinkPad X230 working with Linux Mint 21.3 can be a bit of a challenge, as it often requires specific drivers and configuration. The X230 uses a Validity Sensors or Synaptics (formerly Validity) fingerprint reader, which has had spotty Linux support over the years.

Here is a step-by-step guide to get it functional. We will focus on using fprintd, which is the standard fingerprint management framework in modern Linux distributions like Mint.

Step 1: Identify Your Fingerprint Reader

First, you need to know the exact model of your fingerprint reader.
Open a terminal and type: "lsusb"
Look for a line that mentions "Validity" or "Synaptics". It might look something like this:
Bus 001 Device 003: ID 138a:0011 Validity Sensors, Inc. VFS5011 Fingerprint Reader
The ID 138a:0011 part is crucial. Common IDs for the X230 include 138a:0011, 138a:0015, 138a:0017, and 138a:0018.

Step 2: Install Necessary Software

Linux Mint 21.3 is based on Ubuntu 22.04. The required packages are usually in the repositories. Open a terminal and install them:

bash
"sudo apt update"
"sudo apt install fprintd libpam-fprintd"
-This installs the fingerprint daemon (fprintd) and the PAM (Pluggable Authentication Modules) module to allow fingerprint login.

Step 3: Check for Device Recognition

Now, check if the system can see and communicate with the reader.
Run:

bash
"fprintd-list"
If it lists a device (e.g., device0), that's a great sign. If it says "No devices available," you may need to install a specific driver, which is common for older hardware like the X230.

Step 4: Install a Specific Driver

(If Necessary) Didn't need to do any of this
If fprintd-list shows no device, you likely need the libfprint-vfs5011 driver or a similar one. The libfprint library has evolved, and support for older sensors was sometimes dropped or moved to separate packages.

Search for the package:
bash "apt search libfprint"
Look for a package that seems related to your device ID from Step 1 (e.g., libfprint-2-tod1-vfs5011 or similar).
Install the driver:
Let's assume you found libfprint-2-tod1-vfs5011. Install it: bash "sudo apt install libfprint-2-tod1-vfs5011"
After installing, restart your computer or just the fprintd service:
bash "sudo systemctl restart fprintd" I just did this bit
Check again: Run "fprintd-list" once more. It should now detect your device.
It did not. In fact I just got this mild chastising

Step 5: Enroll Your Fingerprint

Once the device is recognized, you can enroll your fingerprint.
Run the enrollment command:
bash
"fprintd-enroll your-username"
(Replace your-username with your actual Linux username).
Follow the prompts. You will be asked to swipe your finger across the sensor multiple times until it has enough data.

Step 6: Enable Fingerprint Login

Now you need to tell the system to use the fingerprint for authentication.
Open Menu > Preferences > Users and Groups.
Click the Unlock button and enter your password
There was no Unlock button.
Click on your user account.
Toggle the switch for Fingerprint Login to ON.There was no switch to toggle
It will prompt you to scan your finger to enable it. No, it didn't

THIS worked:

Alternatively, you can enable it via the command line, which is often more reliable: Was in my case.

bash "sudo pam-auth-update"
A text-based menu will appear. Use the arrow keys to navigate, the space bar to select/deselect, and Tab to move to "OK". Make sure the "Fingerprint authentication" option is marked with an asterisk [*]. Then select OK.

7: Test It

Lock your screen (Ctrl+Alt+L) or log out and log back in. The login screen should now show a fingerprint icon, and you should be able to swipe your finger to log in. You can also test it in the terminal with sudo; it should prompt for your finger instead of a password.

Troubleshooting

Still not working? The X230's reader is notoriously tricky. If the official repository drivers fail, your last resort is to compile a driver from source. This involves searching GitHub for projects like libfprint-vfs5011 or vfs5011-driver and following their specific build instructions. This is an advanced process.
Sensor not detected after driver install: Ensure you have restarted the fprintd service or rebooted the machine after installing the driver package.
"Could not claim device" error: This can sometimes be a permissions issue. Ensure your user is part of the plugdev group (sudo usermod -aG plugdev $USER) and then log out and back in.
Check logs: If you're still stuck, the system logs can provide clues. Use journalctl -xe | grep fprint to look for errors related to the fingerprint service. This process should get you most of the way there. The key is finding the right driver package for your specific sensor revision.