0

I have a ThinkPad T470s and like every ThinkPad user I don't have an internal fingerprint reader working out of box in Ubuntu 20.04 based distros (I am running Linux Mint 20 MATE, but have vanilla Ubuntu 20.04 available for testing).

lsusb shows

Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 004: ID 17ef:1010 Lenovo Lenovo ThinkPad Dock   
Bus 002 Device 002: ID 0bda:0316 Realtek Semiconductor Corp. USB3.0-CRW
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 138a:0097 Validity Sensors, Inc. 
Bus 001 Device 004: ID 04f2:b5ab Chicony Electronics Co., Ltd Integrated Camera
Bus 001 Device 003: ID 8087:0a2b Intel Corp. 
Bus 001 Device 018: ID 1199:9079 Sierra Wireless, Inc. Sierra Wireless EM7455 Qualcomm Snapdragon X7 LTE-A
Bus 001 Device 017: ID 062a:4101 MosArt Semiconductor Corp. Wireless Keyboard/Mouse
Bus 001 Device 016: ID 17ef:100f Lenovo Lenovo ThinkPad Dock   
Bus 001 Device 015: ID 046d:0825 Logitech, Inc. Webcam C270
Bus 001 Device 013: ID 17ef:1010 Lenovo Lenovo ThinkPad Dock   
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Device is detected, but I don't have an option for fingerprint-based authentication neither in Ubuntu's user manager nor MATE's default one.

What should I do?

1
  • 1
    Please refer askubuntu.com/help/on-topic, Ubuntu and official flavors of Ubuntu (ubuntu.com/download/flavours) are on-topic on this site. The on-topic link provides alternate SE sites for non-Ubuntu OSes. Ubuntu-MATE is on-topic here, but your question, as written is about off-topic distros and not Ubuntu flavors. It needs a re-word to remain on-topic (in my opinion anyway)
    – guiverc
    Nov 23, 2020 at 11:39

1 Answer 1

6

So, after googling a lot and playing with different options, I've found a solution that works to me.

First of all, I am using dual-boot with Windows, and the fingerprints are enrolled there. This helps a lot, because I wasn't able to successfully enroll my fingerprints using Linux only, yet.

I've simply followed the instructions on https://github.com/uunicorn/python-validity/tree/master

On Ubuntu system:

sudo apt remove fprintd
sudo add-apt-repository ppa:uunicorn/open-fprintd
sudo apt-get update
sudo apt install open-fprintd fprintd-clients python3-validity

Before doing the last step suggested by README, fprintd-enroll I had to reboot, because for some reason the service refused to start. However, if you have Windows dual-boot, I suggest just rebooting to Windows.

On Windows run in command line:

wmic useraccount get name,sid

Save output somewhere you can access from Linux, and boot back to Linux.

Edit /etc/python-validity/dbus-service.yaml replacing example notes with your Linux username and Windows sid from the user you've set up the fingerprint auth for. My file now looks like this:

# Mapping for users
# Add mappings from a user to a SID to use the same fingerprints as enrolled by
# Windows. By default, mappings will be generated from the numerical UID if not
# found here. This is fine if you are not dual booting and want to share
# mappings with Windows.
user_to_sid:
    # Example:
    "aivanov": "S-1-5-21-1821111111-1208666666-1382777777-1001"

Then, run pam-auth-update as root. Ensure that "Fingerprint authentication" profile is checked and press OK to save the config.

Now, reboot and fingerprint auth suddenly works. You see the fingerprint scanner lights on, and, if scanned, you either get logged in straight away or have to press Enter to be logged in (depends on login shell).

fprintd-list also shows all the Windows fingerprints:

$ fprintd-list aivanov
found 1 devices
Device at /net/reactivated/Fprint/Device/0
Using device /net/reactivated/Fprint/Device/0
Fingerprints for user aivanov on DBus driver (press):
 - #0: WINBIO_FINGER_UNSPECIFIED_POS_01
 - #1: WINBIO_FINGER_UNSPECIFIED_POS_02
 - #2: WINBIO_FINGER_UNSPECIFIED_POS_03

So it all works.

Now, I wasn't able to successfully enroll my fingerprints via fprintd-enroll. Whenever I did that, fprintd-verify failed to match any enrolled fingerprints. Since a lot of sources claim that 138a:0097 variety of Validity fingerprint sensors used for ThinkPads act strangely when enrolling under something that is not Windows, at this point, I'd just use VirtualBox and Windows 10 to enroll my fingerprints for the next 10 years and forget about this. If someone has a working solution which doesn't require Windows, please share.

1
  • I use dual boot too, and this worked for me without the need for windows. Thanks Apr 15, 2021 at 23:05

Not the answer you're looking for? Browse other questions tagged .