How to get Fingerprint reader working in Fedora Linux (Upek 147e:1000 in this case)

Many Business laptop models equipped with Fingerprint Sensor. Though it is not considered as good security system for a laptop login, still some specific applications utilize this feature for identification and authentication.

My Sony laptop VGN-CS15GN/B is having Upek Fingerprint sensor. In this case my OS is Fedora 13 64bit. By default Fedora supports Fingerprint login for some of the models of sensor, not all. My fingerprint is one such unsupported. Its Vendor ID is 147e and Product ID is 1000.

I am just testing whether my fingerprint sensor is supported out of box in Fedora.

$ fprintd-enroll
list_devices failed: No devices available

As I know it is not supported 🙂 Let’s start our work now.

I read and understood that the libfprint project, the backend library and kernel module behind fingerprint sensors supports upek devices. But when I checked with upeksonly module code (one which supports UPEK Touchstrip sensor-only models), the supported device table does not list my model 147e:1000. Though it is not supported, I have read some where in intenet, that still it works as “Unknown device”. It is better to patch this module, so that other GUI applications which we are going to use will recognize this sensor without any hassles. This How-To explains the way to get GDM login using fingerprint.

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
The following device was found on your system:
Bus 003 Device 002: ID 147e:1000 Upek Biometric Touchchip/Touchstrip Fingerprint Sensor.
A specific proprietary (non opensource) driver “libbsapi.so”
from UPEK Inc. (http://www.upek.com/) is available for this device.
To take full advantage of this device, the installation of this driver
is required. Do you want the install script to copy this driver to
“/usr/lib”? (Yes/no): Yes
Driver “libbsapi.so” was copied to “/usr/lib”.

!!!WARNING!!! A group named “plugdev” was not found in “/etc/group”. Please create this group and make all desktop users to members of this group.
Refer to “Install-step-by-step.pdf” for more information.

Fingerprint binaries have been installed.

Step-3: Create a group called “plugdev” and add your desktop user as member of this group. This can be done through System -> Administration -> Users and Groups. Refer the following screenshots for easier steps.

Now it’s time to enroll our fingerprint and store. This can be done by System -> Preferences -> Fingerprint GUI. The below screenshots are self explanatory to enroll the fingerprint.

Now we have successfully saved fingerprint a desktop user. You may notice a hang or crash of fingerprint-GUI while testing PAM service in “Settings” tab as shown below.

Step-5: Before solving PAM issue, let’s confirm the working of fingerprint libraries through following command.

$ fingerprint-identifier

It should show a fingerprint animation asking you to swipe your finger to test it against the stored one. The below screenshots are self explanatory.

Since PAM authentication is not yet configured, the following command will fail (not recognizing the user) as shown in screenshot below.

$ su -c ‘fingerprint-plugin’

Step-6: At this stage, we have to configure out authentication mechanism to use fingerprint-GUI’s library instead of default one. This How-To is going to explain only GNOME GDM login screen. Apart from GDM, other authentication scenarios like console login, su, xscreensaver lock are also well explained in PDF document available here. This PDF is available in libfprint source directory also.

$ cd /etc/pam.d
$ su -c ‘cp system-auth-ac common-auth.fingerprint’
$ su -c ‘vi common-auth.fingerprint’
Add the following line as first line in common-auth.fingerprintauth sufficient pam_fingerprint-gui.so debug
And also ensure that try_first_pass is passed as argument to pam_unix.so in this file.

Reboot the system. GDM login does not show fingerprint swipe dialog. When I login as usual with password, I noticed security error alerts. I understood that SELinux does not permit fingerprint module to run during GDM login session. I am getting following security errors.

The following is the way to put SELinux in permissive mode to get our job done. I understood that it is not a solution, but this is how I got it working. If some one can comment on how to do it neatly, I will be happy.

17 comments

Hi, i’m following your guide and is quite excellent, i upgrade every step to fedora 23, using the latest version of fingreprint-gui and installing dependencies and programs with dnf, but i have a little (ando probably stupid) problem, i can’t make uinput module to be loaded on boot (i can run it in execution time with modprobe and it’s working, even i did the finger configuration). Other step (less important) is that fingerprint-plugin is not in the fingerprint-gui package anymore, but this is a test step, doing the configuration you can be sure that everything is working.

Could someone give me a clue on how could I build fingerprint-gui on CentOS 6.3, I cannot find a solution for the problems of polkit-qt that don’t exist for CentOS, I tried to install version 0.99 for Fedora14, but it seems to be too old and the build fails…
Do someone have an idea to help me ?
My primary goal is to make my fingerprint-reader work on a Lenovo Thinkpad T530 with CentOS 6.3…
Any idea would be greatly appreciated !

Hi
I have F16 x64 and Bus 004 Device 002: ID 08ff:2810 AuthenTec, Inc. AES2810 🙁
I try do this procedure to work my reader and i;ve got problem
I’am on step 2 and i download the fingerprint-gui (v.1.03)… when I do make i’ve got strange error

I stumbled around and resolved that issue, but I have been looking a while for this crypto package and have had no luck. Openssl.so.10 is updated, everything seems to be updated, but I just can’t find this package it is looking for. I am running fedora 15

hey even i am geting the error…..plz can u tell me the links where u have downloaded if your………sucessful in the installation……………
Missing binary ./bin/fingerprint-gui/fingerprint-gui. Please compile or use the tarball with precompiled binaries for your architecture.
Aborting installation.

I’m sorry Black God but would you please check the link to download the fingerprint GUI or upload this package to other link. I can not download this package (in Apr 03 2011).
Thank you for your great works so far and it’s really important with newbies of linux like me.

I have come up to the step 4, in Mandriva 2010.1, when I try to check the fingerprint, he says to me that it does not have permissions the libusb to write in the device. I give him permissions by means of:

#chmod a+rwx /dev/bus/usb/003/001

that is the path that it indicates and the problem is not solved.

My reader of fingerprints is equal with the only difference of that UPEK 147e:2016.

I did everything to start using fingerprint reader.. and it works. I have only one problem – on GDM screen I have to type my password, although after swipe it seems to be entered automatically… have no idea how to login fingeprint-only

Follow me

For Firmware Engineers

Digital Design FundamentalsThis is a series of post on Digital Design Fundamentals required for a Firmware Engineer. It includes many basic building blocks used in Hardware (FPGA/ASIC) design. This should help a Firmware Engineer to effectively understand Hardware Micro-architecture documents from Design team.

Featured Sections

DE0-nano FPGAThis section features posts on DE0-nano FPGA Kit based projects. This kit has Cyclone IV E series FPGA with 32MB SDRAM, 40 Pin GPIOs, Accelerometer, AD Converters, built-in LEDs and Switches, etc. necessary to explore the world of FPGA.

GNU/LinuxLinux was originally developed as a free operating system for Intel x86–based personal computers, but has since been ported to more computer hardware platforms. It runs from supercomputers to embedded devices like phone. This section features all hacks.

MSP430 MCUMSP430 is a power efficient Microcontroller from TI, suitable for wearable devices. This section includes posts on eZ430 Chronos and MSP430 Launchpad kit.

Raspberry PiRaspberry Pi is an revolutionary board hackable for any purpose you imagine. Its support for standard linux stack and GPIOs makes it easy to implement any embedded system protocols. It deserves its place right from learning hello world LED programming to Home theatre system building.