Skip to content

Instantly share code, notes, and snippets.

@anthony-wang
Forked from foosel/README.md
Created April 16, 2019 10:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anthony-wang/9b8f9b7c3f905276e6489b3906acf4be to your computer and use it in GitHub Desktop.
Save anthony-wang/9b8f9b7c3f905276e6489b3906acf4be to your computer and use it in GitHub Desktop.
Getting the fingerprint reader of a Thinkpad x240 to work under Ubuntu 14.04

lsusb lists the fingerprint reader in the x240 as follows:

Bus 002 Device 003: ID 138a:0017 Validity Sensors, Inc.

There exists experimental driver support for this in a fork of libfprint for vfs5011 sensors, however you'll need to compile the driver yourself. To get the fingerprint sensor to work for lightdm login, su etc, follow these steps.

  1. Install fingerprint-gui:

    sudo add-apt-repository ppa:fingerprint/fingerprint-gui
    sudo apt-get update
    sudo apt-get install libbsapi policykit-1-fingerprint-gui fingerprint-gui
    
  2. Get your compilation tools and library dependencies:

    sudo apt-get install build-essential automake checkinstall shtool libtool libxv-dev libmagick++-dev
    
  3. Get the sources, compile and install them:

    git clone https://github.com/abbradar/fprint_vfs5011
    cd fprint_vfs5011
    ./autogen.sh
    make
    sudo make install
    
  4. Make sure your user has permissions for accessing the fingerprint sensor device. Create a file /lib/udev/rules.d/40-libfprint0-custom.rules with the following contents:

    # Device Validity VFS5011
    ATTRS{idVendor}=="138a", ATTRS{idProduct}=="0017", MODE="0664", GROUP="plugdev"
    
  5. Add your user to the plugdev group:

    sudo usermod -a -G plugdev <username>
    
  6. Restart udev:

    sudo service udev restart
    
  7. Log out of your session and log back in.

  8. Enroll your fingerprints with fingerprint-gui, verify them, then see if a sudo -s now suddenly asks you for your fingerprint.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment