Lenovo E14 Fingerprint reader with Ubuntu

Problem

I recently bought a Lenovo laptop from eBay, installed Ubuntu on it, and noticed that the fingerprint reader wasn't set up out of the box. lsusb showed:

Bus 003 Device 003: ID 06cb:00da Synaptics, Inc.

Solution

I found this forum post, but the device identifiers were slightly different, so the process which worked for me is:

  1. Note the ID from lsusb. In my case it was 06cb:00da
  2. If you haven't got Git already, install it using sudo apt install git
  3. Install all of the package dependencies: sudo apt install meson cmake pkg-config libcrypto++-dev libusb-1.0-0-dev libcap-dev libseccomp-dev libglib2.0-dev libdbus-1-dev libfprint-2-dev libfprint-2-tod-dev libjson-glib-dev innoextract libssl-dev
  4. Clone the synaTudor code repository: git clone https://github.com/Popax21/synaTudor.git
  5. cd synaTudor and grep "00be" -R * to find all of the occurences of the hard-coded device ID
  6. Replace all occurrences with your device ID, using your chosen editor
  7. Prepare the build: meson build
  8. cd build and then build the code: ninja
  9. Install the built driver: sudo ninja install

This should have installed the driver successfully. You can test it using fprintd-enroll, which should prompt for your password and then show messages reacting to tapping on the fingerprint reader.

I was also missing the PAM module, so needed to install and enable it:

  1. Install the module: sudo apt install libpam-fprintd
  2. Enable Finterprint in sudo pam-auth-update

Now reboot, and once logged in, open Ubuntu's Settings, select the System category in the sidebar, and then Users. You should now see the option to enable 'Fingerprint Login'.