SaltyCrane Blog — Notes on Javascript and web development

Setting up the Lenovo Thinkpad X1 Carbon (2nd gen) fingerprint reader in Ubuntu 14.04

These are the steps I used to get the fingerprint sensor on the Lenovo Thinkpad X1 Carbon (2014 2nd generation) to work on Ubuntu Linux 14.04 Trusty Tahr 64-bit. After googling through many articles, this is the one that solved it for me: http://thinkpadmint.blogspot.com/2014/02/getting-t440s-validity-vfs5011.html Thank you!

The X1 Carbon has a Validity Sensors 138a:0017 sensor. As of this writing, this sensor is not officially supported by libfprint, but you can compile a driver.

See what sensor you have

$ lsusb
Bus 001 Device 003: ID 04ca:7036 Lite-On Technology Corp. 
Bus 001 Device 002: ID 8087:8000 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 003: ID 8087:07dc Intel Corp. 
Bus 002 Device 002: ID 138a:0017 Validity Sensors, Inc. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Install dependencies

$ sudo apt-get install libmagickcore-dev
$ sudo apt-get install libusb-1.0.0-dev libnss3-dev libglib2.0-dev
$ sudo apt-get install libxv-dev
$ sudo apt-get install libtool
$ sudo apt-get install fprintd
$ sudo apt-get install automake

Compile the driver

  • Download tarball from https://github.com/abbradar/fprint_vfs5011/tree/faa090818200ca3ea6bfac8bb510e5e01a246c34
  • Unzip, autogen, configure, make, install
    $ cd ~/Downloads
    $ unzip fprint_vfs5011-faa090818200ca3ea6bfac8bb510e5e01a246c34.zip
    $ cd fprint_vfs5011-faa090818200ca3ea6bfac8bb510e5e01a246c34
    $ ./autogen.sh
    $ ./configure
    $ make
    $ sudo make install
    
  • Copy file
    $ sudo cp /lib/udev/rules.d/40-libfprint0.rules /etc/udev/rules.d/
    
  • Add a section to the file
    $ sudo vi /etc/udev/rules.d/40-libfprint0.rules
    
    # Validity VFS5011
    SUBSYSTEM=="usb", ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0017", ATTRS{dev}=="*", ATTR{power/control}="auto", MODE="0664", GROUP="plugdev"
    

Install the fingerprint GUI

$ sudo apt-add-repository ppa:fingerprint/fingerprint-gui
$ sudo apt-get update
$ sudo apt-get install libbsapi policykit-1-fingerprint-gui fingerprint-gui

Run the fingerprint GUI and enroll a finger

$ fingerprint-gui

Other links

Comments


#1 Jorge Niedbalski commented on :

Hello

Thanks for the article. Seems that you missed the libxcb-xv0 and libxcb-xv0-dev :)


#2 Eliot commented on :

Hi Jorge, thanks for the tip! I did miss a XV package in my setup. I noticed this error when I ran autogen.sh, configure: error: XV is required for X11 examples, but I ignored it the first time. After installing libxv-dev, the autogen.sh command did not show that error output more stuff than the first time. Note: I had to install libxv-dev instead of libxcb-xv0-dev for the error to go away. I referenced https://github.com/ars3niy/fprint_vfs5011/issues/4