Gentoo Wiki


This page is a candidate for deletion 
Reason given: This guide is deprecated in favor of fprint
If you disagree with its deletion, please explain why on its discussion page.
If you intend to fix it, please remove this notice, but do not remove this notice from articles that you have created yourself.
Make sure no other pages link here and check the page's history before deleting.
This article is part of the Hardware series.
Laptops TV Tuner Cards Wireless Servers Storage Other Hardware Motherboards Related

UPEK offers a large numer of different fingerprint sensors, both embedded solutions and stand-alone USB-readers. Their fingerprint sensors can be found in many devices such as IBM Thinkpad notebooks, ASUS notebooks, NEC Versa notebooks and some Samsung notebooks. A full list is avaiable at (link currently broken)

Warning: Some or all of this information may be out of date. The new open source package 'thinkfinger' obsoletes bioapi and pam_bioapi for me

Note: For Sony VAIO owners certain UPEK TouchChips is now working with the upeksonly-driver in fprint. An example is the readers in the TZ-series.

The follwoing howto was composed from this howto on ThinkWiki.

All the required packages are in portage, but currently you need to unmask them. To unmask the three packages, do the following:

File: Add the following lines to the file: /etc/portage/package.keywords

To have a working setup GUI use the qt3 useflag to add Qt support to the bioapi package by doing the following:

File: Add the following line to the file: /etc/portage/package.use
sys-auth/bioapi qt3

Emerge the needed packages:

Code: Emerge the needed packages
emerge -av bioapi tfm-fingerprint pam_bioapi

NB this does not work - there is a bug that causes a sandbox violation when emerging bioapi(#154776). Rather emerge bioapi first and then the others. Also if you have to do an emerge -e world unmerge all three of these packages first otherwise the emerge -e world will fail when re-emerging bioapi. - Paul Hewlett

Add the users who can use the fingerprint reader to the usb and bioapi groups

Code: Add users to the needed groups
gpasswd -a user usb
gpasswd -a user bioapi

Use the QSample program to create a fingerprint.


You should now see a small window:


and after successfully swiping your finger three times you should briefly see the checkmark:


The QSample program will create a <username>.bir file in the current directory. The username should match your username on the system. If not, rename the file.

Now we have to create a PAM directory to store the bir files, but the directory name needs to include a slightly modified Module ID of the fingerprint reader that is output when running the /opt/bioapi/bin/BioAPITest command.

Here, we will save the Module ID to a variable that we can use later:

Code: Store the Module ID to an environmental variable
SERIAL=`/opt/bioapi/bin/BioAPITest | sed -ne "/Fingerprint/{n;n;s/^.*: \(.\{9\}\)\(.\{4\}\)\(.\{4\}\)\(.\{4\}\)\(.*\)/\1-\2-\3-\4-\5/gp}"`

As root, create the directory and move the bir file to it:

Code: store the bir files on the right directory
mkdir -p /etc/bioapi/pam/$SERIAL
cp <username>.bir /etc/bioapi/pam/$SERIAL

The last action needed is to tell PAM to use the fingerprint reader. This is done to replace the standard PAM auth file. (You should backup your existing file first. You should also open a root terminal so that you can revert your changes if you mess up, otherwise you might end up locking yourself out of your system.)

File: Add to file: /etc/pam.d/system-auth
account    required
auth       sufficient {5550454b-2054-464d-2f45-535320425350} /etc/bioapi/pam/
password   sufficient {5550454b-2054-464d-2f45-535320425350} /etc/bioapi/pam/
auth       required nullok_secure
session    required
session    required 

PS. The ThinkWiki site shows you more configurations for PAM and the reader. You can enable and disable the reader for lots of different services and programs.


If you own a DELL Latitude D620 and the fingerprint-reader is not or only sporadically detected switch the internal USB-HUB to USB2.0 support. It seems that the USB1.1 support does not properly work with the linux kernel. You may notice that you can find the device in /proc/bus/usb/devices but not in the lsusb list and you may notice some courious kernel errors.

Retrieved from ""

Last modified: Thu, 18 Sep 2008 18:35:00 +0000 Hits: 7,363