
The ThinkPad T480 ships with the Synaptics Metallica MIS Touch Fingerprint Reader (06cb:009a), which is not supported by the standard libfprint/fprintd. The service starts fine but returns “No devices available”.
The fix is to use the python-validity driver along with open-fprintd (an fprintd replacement that accepts alternative backends), both available in the AUR.
The problem
$ fprintd-list $USER
No devices available
Even with fprintd and libfprint installed, the Synaptics 06cb:009a sensor is simply not recognized. This happens because this specific model uses a proprietary protocol that libfprint doesn’t implement.
Note: If your fingerprint reader was working before and stopped after a system update, the standard
fprintdwas probably reinstalled overpython-validity+open-fprintd. The solution below fixes that.
The solution
One-liner (copy and paste)
sudo pacman -Rns fprintd && yay -S python-validity open-fprintd && sudo systemctl enable --now python3-validity open-fprintd && sudo fprintd-enroll $USER && fprintd-verify
Step by step
1. Remove the standard fprintd (conflicts with open-fprintd):
sudo pacman -Rns fprintd
2. Install the AUR packages:
yay -S python-validity open-fprintd
3. Enable and start the services:
sudo systemctl enable --now python3-validity open-fprintd
Heads up: the service name is
python3-validity(with the 3), notpython-validity.
4. Enroll your fingerprint:
sudo fprintd-enroll $USER
Swipe your finger several times on the sensor until enrollment is complete.
5. Verify:
fprintd-verify
PAM configuration (optional)
To use the fingerprint reader with sudo and the lock screen, add the following line at the top of /etc/pam.d/sudo and /etc/pam.d/polkit-1:
auth sufficient pam_fprintd.so
USB Power Management
If the sensor is still not detected after installing the correct packages, check whether USB power management is suspending the device:
# Find the sensor's device ID
for device in /sys/bus/usb/devices/*; do
if [ -f "$device/idVendor" ]; then
vendor=$(cat "$device/idVendor" 2>/dev/null)
product=$(cat "$device/idProduct" 2>/dev/null)
if [ "$vendor" = "06cb" ] && [ "$product" = "009a" ]; then
echo "Device: $(basename $device) - Power: $(cat $device/power/control)"
fi
fi
done
If the power control is set to auto, change it to on:
# Replace 1-9 with the ID found above
echo 'on' | sudo tee /sys/bus/usb/devices/1-9/power/control
Device
Bus 001 Device 026: ID 06cb:009a Synaptics, Inc. Metallica MIS Touch Fingerprint Reader
Environment
- ThinkPad T480
- Arch Linux
- Hyprland (Omarchy)