HARDWARE UPEK TouchChip TFM/ESS Fingerprint BSP

From Gentoo Linux Wiki

Jump to: navigation, search
This article is part of the Hardware series.
Laptops TV Tuner Cards Wireless Servers Storage Other Hardware Motherboards Related


Please format this article according to the guidelines and Wikification suggestions, then remove this notice {{Wikify}} from the article


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 http://www.upek.com/customer/pcnetworking/default.asp (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


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
sys-auth/pam_bioapi
sys-auth/bioapi
sys-auth/tfm-fingerprint


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.

  • Run: /opt/bioapi/bin/QSample, this should open a window that looks like the following:

Image:bioapi_qsample.1.png

  • Select the "TouchChip TFM/ESS Fingerprint BSP" in the drop down
  • Enter your username as your "User Id"
  • Click "Enroll" button

You should now see a small window:

Image:bioapi_qsample.2.png

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

Image:bioapi_qsample.3.png


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     pam_unix.so
auth       sufficient   pam_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi/pam/
password   sufficient   pam_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi/pam/
auth       required     pam_unix.so nullok_secure
session    required     pam_limits.so
session    required     pam_unix.so 

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.

Troubleshooting:

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.

Personal tools