A few months ago I bought a used Lenovo T470S and installed Ubuntu 22.04 on it. While the default fprintd daemon did not support the sensor python-validity provided support for it. Following the install instructions resulted in a perfectly working sensor.

With the update to 22.10 the sensor stopped working and it took me some time to find out the root cause and the fix for it. Apparently 22.10 included and upated systemd version which included updated udev hw rules for fingerprint sensors. The fingerprint sensor of my Lenovo was included as well albeit as unsupported. The default configuration for the fingerprint readers set the persist of the USB device to "0". As a result the sensor completely disconnected during suspend and got reconnected instead of reset after a resume.

The Fix

We have to override the settings of the systemd hw.db.

  1. Get the vendor and product ID of your reader by running lsusb

    Look for your validity sensor and note down the Vendor and Product ID.

    Bus 001 Device 006: ID 138a:0097 Validity Sensors, Inc.

  2. Setup an override file.

    Create a file in /etc/udev/hwdb.d/ and call it 61-autosuspend-fingerprint-reader.hwdb.

    Adapt the USBID based on the device information you looked up before.


  3. Finally update the hw database by running sudo systemd-hwdb update

After a reboot your fingerprint reader should survive a suspend/resume cycle again.