Complete guide for configuring Synaptics fingerprint readers (including Metallica MIS Touch) on Linux distributions using python-validity and fprintd.
This guide specifically covers Synaptics fingerprint sensors that require proprietary drivers:
- Synaptics Metallica MIS Touch (06cb:009a)
- Synaptics Prometheus (06cb:0081)
- Synaptics VFS series (various IDs)
Check your device:
lsusb | grep -i synaptics
# Example output: Bus 001 Device 011: ID 06cb:009a Synaptics, Inc. Metallica MIS Touch Fingerprint Reader- Arch/Manjaro Installation
- Ubuntu/Debian Installation
- Fedora Installation
- Fingerprint Enrollment
- PAM Configuration
- GNOME Integration
- KDE Plasma Integration
- Troubleshooting
- Uninstallation
# Install required packages
yay -S python-validity fprintd
# Enable and start python-validity service
sudo systemctl enable --now python3-validity.service
# Download firmware (if prompted)
sudo validity-sensors-firmware# Check service status
systemctl status python3-validity.service
# Verify device detection
fprintd-list $USER# Update package list
sudo apt update
# Install dependencies
sudo apt install -y fprintd libfprint-2-2 python3-pip python3-dev \
libssl-dev libusb-1.0-0-dev git build-essential
# Clone python-validity repository
cd /tmp
git clone https://github.com/uunicorn/python-validity.git
cd python-validity
# Install python-validity
sudo pip3 install .
# Install systemd service
sudo python3 validity-sensors-firmware
sudo systemctl enable --now python3-validity.service# Add PPA (community-maintained)
sudo add-apt-repository ppa:uunicorn/open-fprintd
sudo apt update
# Install packages
sudo apt install -y python3-validity fprintd
# Enable service
sudo systemctl enable --now python3-validity.servicesystemctl status python3-validity.service
fprintd-list $USER# Install dependencies
sudo dnf install -y fprintd fprintd-pam python3-pip python3-devel \
openssl-devel libusbx-devel git gcc
# Clone python-validity repository
cd /tmp
git clone https://github.com/uunicorn/python-validity.git
cd python-validity
# Install python-validity
sudo pip3 install .
# Download firmware and install service
sudo python3 validity-sensors-firmware
sudo systemctl enable --now python3-validity.service# Check SELinux status
sestatus
# If enforcing, create policy for python-validity
sudo ausearch -c 'python3' --raw | audit2allow -M python-validity-policy
sudo semodule -i python-validity-policy.pp
# Restart service
sudo systemctl restart python3-validity.servicesystemctl status python3-validity.service
journalctl -u python3-validity.service -f# Enroll default finger (right index)
fprintd-enroll
# Enroll specific finger
fprintd-enroll -f left-index-finger
# Available fingers:
# left-thumb, left-index-finger, left-middle-finger, left-ring-finger, left-little-finger
# right-thumb, right-index-finger, right-middle-finger, right-ring-finger, right-little-fingerProcess:
- Follow prompts to scan the same finger 5 times
- Vary finger placement slightly for better recognition
- Ensure finger is clean and dry
# Show enrolled fingerprints for current user
fprintd-list $USER
# Delete specific fingerprint
fprintd-delete $USER
# Delete and re-enroll
fprintd-delete $USER && fprintd-enroll# Verify fingerprint authentication
fprintd-verify
# Expected output:
# Using device /net/reactivated/Fprint/Device/0
# Verify result: verify-match (or verify-no-match)sudo nano /etc/pam.d/sudoAdd before the first auth line:
auth sufficient pam_fprintd.so
Result: Fingerprint prompt for sudo commands, password fallback.
GDM (GNOME Display Manager):
sudo nano /etc/pam.d/gdm-passwordSDDM (KDE Plasma):
sudo nano /etc/pam.d/sddmLightDM:
sudo nano /etc/pam.d/lightdmAdd:
auth sufficient pam_fprintd.so
GNOME:
sudo nano /etc/pam.d/gnome-screensaverKDE:
sudo nano /etc/pam.d/kdeAdd:
auth sufficient pam_fprintd.so
sudo nano /etc/pam.d/polkit-1Add:
auth sufficient pam_fprintd.so
Result: Use fingerprint for privileged GUI operations (software installation, system settings).
# Open user accounts settings
gnome-control-center user-accountsSteps:
- Navigate: Settings → Users
- Click Unlock (authenticate)
- Select Fingerprint Login
- Click + Add Fingerprint
- Choose finger and scan 5 times
# Lock screen (Super + L or Ctrl + Alt + L)
# Unlock with fingerprintyay -S kcm-fingerprintsudo apt install -y plasma-settings-fingerprintsudo dnf install -y plasma-kcm-fingerprintSteps:
- Open System Settings → Users
- Navigate to Fingerprint tab
- Click Add Fingerprint
- Select finger and enroll
# Lock screen (Meta + L)
# Unlock with fingerprint# Check service status
systemctl status python3-validity.service
# View logs
journalctl -u python3-validity.service -b
# Restart services
sudo systemctl restart python3-validity.service fprintd.service
sudo killall fprintd# Clear fprintd data
sudo rm -rf /var/lib/fprint/*
# Re-enroll
fprintd-enroll# Check USB permissions
lsusb | grep -i synaptics
# Note Bus and Device numbers (e.g., Bus 001 Device 011)
ls -la /dev/bus/usb/001/011
# Add user to plugdev group (if exists)
sudo usermod -aG plugdev $USER
# Reboot
sudo reboot# Stop service
sudo systemctl stop fprintd.service
sudo killall fprintd
# Run in debug mode
sudo fprintd -t -d
# In another terminal, test enrollment
fprintd-enroll# Verify PAM syntax
sudo pam-auth-update --force
# Test PAM stack
pamtester sudo $USER authenticate
# Check logs
journalctl -xe | grep fprintd# Check Python dependencies
pip3 show python-validity
# Reinstall
sudo pip3 uninstall python-validity
cd /tmp/python-validity
sudo pip3 install --force-reinstall .
# Restart service
sudo systemctl restart python3-validity.service# Manual firmware download
sudo validity-sensors-firmware --verbose
# Alternative: Check GitHub releases
# https://github.com/uunicorn/python-validity/releases# Stop services
sudo systemctl stop python3-validity.service fprintd.service
sudo systemctl disable python3-validity.service
# Remove packages
yay -R python-validity fprintd
# Clean fingerprint data
sudo rm -rf /var/lib/fprint/*# Stop services
sudo systemctl stop python3-validity.service fprintd.service
sudo systemctl disable python3-validity.service
# Uninstall python-validity
sudo pip3 uninstall python-validity
# Remove packages
sudo apt remove --purge fprintd libfprint-2-2
sudo apt autoremove
# Clean data
sudo rm -rf /var/lib/fprint/*# Stop services
sudo systemctl stop python3-validity.service fprintd.service
sudo systemctl disable python3-validity.service
# Uninstall python-validity
sudo pip3 uninstall python-validity
# Remove packages
sudo dnf remove fprintd fprintd-pam
# Clean data
sudo rm -rf /var/lib/fprint/*# Edit PAM files and remove lines containing pam_fprintd.so
sudo nano /etc/pam.d/sudo
sudo nano /etc/pam.d/gdm-password # or sddm, lightdm
sudo nano /etc/pam.d/gnome-screensaver # or kde- python-validity GitHub: https://github.com/uunicorn/python-validity
- fprintd Documentation: https://fprint.freedesktop.org/
- Arch Wiki - Fprint: https://wiki.archlinux.org/title/Fprint
- Ubuntu Community Help: https://help.ubuntu.com/community/Fingerprint
- PAM Configuration Guide: https://wiki.archlinux.org/title/PAM
- python-validity: @uunicorn
- fprintd: freedesktop.org
- Community Contributors: Arch/Ubuntu/Fedora communities
This documentation is provided under the MIT License. Free to use, modify, and distribute.
Last Updated: November 2025
Tested On: Manjaro GNOME, Ubuntu 24.04 LTS, Fedora 42