How to install finger print driver on lenovo X1 carbon on Ubuntu 16.04

27,273

Solution 1

The 138a:0097 Validity Sensors, Inc. is still being "reverse engineered" and not supported yet by the easy to install fingerprint or others.

The following is a WIP (Work In Progress) by Nikita Mikhailov:

  1. sudo apt install git libusb-1.0-0-dev libxv-dev
  2. git clone https://github.com/nmikhailov/Validity90.git
  3. cd Validity90/libfprint
  4. ./configure
  5. make
  6. make check
  7. sudo make install

Additional information and discussions:

https://forums.lenovo.com/t5/Linux-Discussion/Validity-Fingerprint-Reader-Linux/td-p/3352145

https://bugs.freedesktop.org/show_bug.cgi?id=94536

Solution 2

Running Ubuntu 20.04 on 7th Gen X1 Carbon

An article posted here http://www.adamisrael.com/project/ubuntu-on-x1/ made me aware of the

fwupdmgr

After running

fwupdmgr get-updates

I could see that the driver for the fingerprint reader wasn't installed. In Adam's article he stated that the update manager didn't work but it is a few months old now.

Just run

fwupdmgr update

and it will install the necessary driver.

TLDR;

Run

fwupdmgr update

Solution 3

The only current software for the 138a:0097 is https://github.com/nmikhailov/Validity90/tree/master/prototype however there is no driver as of yet, so the WIP that krispy mentioned will not work to unlock your computer. There is just a prototype that can only scan and check the internal database, there is still no way to add fingerprints outside of Windows.

To further support development I suggest you follow the instructions at https://github.com/nmikhailov/Validity90/blob/master/prototype/README.md and create a new issue on GitHub with the output of the prototype.

sudo apt-get install make gcc libgcrypt-dev libglib2.0-dev libnss3-dev libusb-1.0-0-dev libssl-dev libpng-dev libgnutls28-dev
make
./prototype

And copy the output to https://github.com/nmikhailov/Validity90/issues/new with the title "Prototype output for Thinkpad X1 Carbon 5th Generation (138a:0097)"

Solution 4

You may try to use the work by @uunicorn (https://github.com/uunicorn/python-validity). It works for my Ubuntu 20.04.1.

  1. $ sudo apt remove fprintd
  2. $ sudo add-apt-repository ppa:uunicorn/open-fprintd
  3. $ sudo apt-get update
  4. $ sudo apt install open-fprintd fprintd-clients python3-validity
  5. $ fprintd-enroll

If the last command prompt an error list_devices failed:, do

sudo systemctl status python3-validity

to check the status of the service and try to reset the device: (require closing all processes occupying the device, e.g. ̍Users̍ settings/fingerprint enrolling on Ubuntu 20.04.1)

  1. sudo systemctl stop python3-validity
  2. sudo validity-sensors-firmware
  3. sudo python3 /usr/share/python-validity/playground/factory-reset.py
  4. sudo systemctl start python3-validity
  5. fprintd-enroll

You should be able to enroll your fingerprints on the command line. Now if you are using Ubuntu 20, try to go to the Users settings and there should be an option Fingerprint Login under Authentication & Login.

(You may have to first enable fingerprint authentication in pam-auth-update: do

  1. sudo pam-auth-update
  2. Select the line Fingerprint authentication, press spacebar to enable
  3. Select Ok to confirm the changes)
Share:
27,273

Related videos on Youtube

Kasun Siyambalapitiya
Author by

Kasun Siyambalapitiya

BSc(Special) in Computing and Information Systems at Sabaragamuwa University of Sri Lanka

Updated on September 18, 2022

Comments

  • Kasun Siyambalapitiya
    Kasun Siyambalapitiya over 1 year

    I need to install the finger print driver of my X1 carbon 5th gen on Ubuntu 16.04. Where can I find drivers for Linux distributions?

    Here are the outputs of lspci

    kasun@kasun-ThinkPad-X1-Carbon-5th:~$ lspci
    00:00.0 Host bridge: Intel Corporation Device 5904 (rev 02)
    00:02.0 VGA compatible controller: Intel Corporation Device 5916 (rev 02)
    00:08.0 System peripheral: Intel Corporation Sky Lake Gaussian Mixture Model
    00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
    00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
    00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI (rev 21)
    00:1c.0 PCI bridge: Intel Corporation Device 9d10 (rev f1)
    00:1c.2 PCI bridge: Intel Corporation Device 9d12 (rev f1)
    00:1c.4 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port (rev f1)
    00:1d.0 PCI bridge: Intel Corporation Device 9d18 (rev f1)
    00:1f.0 ISA bridge: Intel Corporation Device 9d4e (rev 21)
    00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
    00:1f.3 Audio device: Intel Corporation Device 9d71 (rev 21)
    00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
    00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (4) I219-LM (rev 21)
    02:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS525A PCI Express Card Reader (rev 01)
    04:00.0 Network controller: Intel Corporation Device 24fd (rev 88)
    05:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd Device a804
    kasun@kasun-ThinkPad-X1-Carbon-5th:~$ 
    

    and the lsusb output

    kasun@kasun-ThinkPad-X1-Carbon-5th:~$ lsusb
    Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 001 Device 004: ID 138a:0097 Validity Sensors, Inc. 
    Bus 001 Device 003: ID 13d3:5682 IMC Networks 
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    kasun@kasun-ThinkPad-X1-Carbon-5th:~$ 
    
  • Kasun Siyambalapitiya
    Kasun Siyambalapitiya almost 6 years
    Hi all, did anyone got it working with X1 Carbon?
  • Bashar Al-Abdulhadi
    Bashar Al-Abdulhadi almost 6 years
    doesn't work for my X1 Yoga using Bus 001 Device 004: ID 138a:0090 Validity Sensors, Inc. too
  • Bashar Al-Abdulhadi
    Bashar Al-Abdulhadi almost 6 years
    actually github.com/hrenod/libfprint worked for me on the ThinkPad X1 Yoga!
  • Michael Scheper
    Michael Scheper over 5 years
    The ticket seems to have moved here now gitlab.freedesktop.org/libfprint/libfprint/issues/54 but it looks like they need somebody to verify it's working for 138a:0097. I have one of those on my Lenovo P51, but I don't know how to install the fix to test it. I'm currently waiting for my registration at their GitLab site to be confirmed, so I can ask. But in the meantime, can anybody here tell me how?
  • CpILL
    CpILL over 3 years
    tried this but i'm not fprint-list is not seeing my device :(