<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.thinkwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nax</id>
	<title>ThinkWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.thinkwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nax"/>
	<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/wiki/Special:Contributions/Nax"/>
	<updated>2026-04-17T14:02:37Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_enable_integrated_fingerprint_reader_with_BioAPI&amp;diff=23143</id>
		<title>How to enable integrated fingerprint reader with BioAPI</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_enable_integrated_fingerprint_reader_with_BioAPI&amp;diff=23143"/>
		<updated>2006-07-12T10:11:58Z</updated>

		<summary type="html">&lt;p&gt;Nax: nax.hn.org -&amp;gt; www.nax.cz&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;&amp;quot; | __TOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
This page describes the process of getting the [[Integrated Fingerprint Reader|integrated fingerprint reader]] to work under Linux. It is based on experiences in {{Ubuntu}} on a T43. The same works on {{Fedora}} 4 and 5, RHEL4, SuSE 9.3, SuSE 10, and {{Gentoo}}.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Basic installation==&lt;br /&gt;
===Installing the bioapi framework===&lt;br /&gt;
====Automated installation script====&lt;br /&gt;
The [[Script for enabling the fingerprint reader]] automates the installation of most components (bioapi framework, driver, pam_bioapi, pam setup, device permissions, pamtester and enrolling), for some Linux distributions.&lt;br /&gt;
&lt;br /&gt;
====Binary packages====&lt;br /&gt;
&lt;br /&gt;
Note that these packages only take care of this one section. If you can use one, you should do so and then proceed to the section entitled, Installing and Configuring the Driver.&lt;br /&gt;
&lt;br /&gt;
=====Debian/ Ubuntu Dapper=====&lt;br /&gt;
*If you're using {{Debian}} Sid (the unstable branch) or {{Ubuntu}} Dapper Drake 6.06 LTS you can try the packages from Michael R. Crusoe's site, either [http://www.qrivy.net/~michael/temp/ version 1.2.3] (recommended) or [http://www.qrivy.net/~michael/debs/unstable/ older versions] which might not work with the steps in this howto.&lt;br /&gt;
&lt;br /&gt;
{{HINT|Ignore the warning about not finding ''/usr/lib/libqtpwbsp.so'', it's not fatal.}}&lt;br /&gt;
&lt;br /&gt;
=====Gentoo=====&lt;br /&gt;
You can either grab the [http://www.qrivy.net/~michael/blua/bioapi/bioapi-1.2.2.ebuild.tar.bz2 ebuild], or use the source-install procedure below.&lt;br /&gt;
&lt;br /&gt;
Also see [http://toe.ch/~tsa/ibm-fingerprint/ http://toe.ch/~tsa/ibm-fingerprint/] for alternative documentation on installing on Gentoo including ebuilds for all the packages used.&lt;br /&gt;
=====Fedora Core=====&lt;br /&gt;
RPM packages for Fedora Core and installation instructions are available [[Installing Fedora Core 5 on a ThinkPad X41 Tablet#Fingerprint_Reader|here]]&lt;br /&gt;
&lt;br /&gt;
====Installing from source====&lt;br /&gt;
*Get the bioapi source:&lt;br /&gt;
:{{cmduser|wget http://www.qrivy.net/~michael/blua/bioapi/bioapi-latest.tar.bz2}}&lt;br /&gt;
*I could not compile bioapi with the graphical Qt tools. To do it manually, do the following:&lt;br /&gt;
:{{cmduser|tar xjf bioapi-latest.tar.bz2}}&lt;br /&gt;
:{{cmduser|cd bioapi-1.2.2}}&lt;br /&gt;
:{{cmduser|1=./configure --with-Qt-dir=no}}&lt;br /&gt;
:{{cmduser|make}}&lt;br /&gt;
:and then as root&lt;br /&gt;
:{{cmdroot|make install}}&lt;br /&gt;
:If make install fails, be sure you're root and then:&lt;br /&gt;
:{{cmdroot|1=export LD_LIBRARY_PATH=/usr/local/lib}}&lt;br /&gt;
:{{cmdroot|make install}}&lt;br /&gt;
:and if you want to compile pam_bioapi for auth later&lt;br /&gt;
:{{cmdroot|cp include/bioapi_util.h include/installdefs.h imports/cdsa/v2_0/inc/cssmtype.h /usr/include}}&lt;br /&gt;
:Be aware that checkinstall will not work!&lt;br /&gt;
:(I got through configure with Qt, but got a cryptic build error.  It all worked fine with Qt disabled as above)&lt;br /&gt;
:buzz: This is due to a wrong qt include path, set it manually in configure and everything should work.&lt;br /&gt;
*Bioapi (at least version 1.2.2) doesn't compile with GCC4. You need to patch it:&lt;br /&gt;
*This is neccessary to compile on SUSE 10.1 which it using gcc version 4.1.0.&lt;br /&gt;
:{{cmduser|wget http://upir.cz/linux/patches/bioapi-1.2.2-gcc4.patch}}&lt;br /&gt;
:{{cmduser|patch -p1 &amp;lt; bioapi-1.2.2-gcc4.patch}}&lt;br /&gt;
*Patch for gcc 4.1 is available here - http://cvs.pld-linux.org/cgi-bin/cvsweb/SOURCES/bioapi-c++.patch?rev=1.3&lt;br /&gt;
* By default, bioapi will install numerous files in {{path|/usr/local/&amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;bin,lib,include&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;}}, including files with &amp;quot;self-explanatory&amp;quot; names such as {{path|/usr/local/bin/Sample}}. To prevent this pollution:&lt;br /&gt;
:Create a dedicated directory, for example {{path|/opt/bioapi}} .&lt;br /&gt;
:Append &amp;lt;tt&amp;gt;--prefix=/opt/bioapi&amp;lt;/tt&amp;gt; to the above &amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt; command.&lt;br /&gt;
:Append {{path|/opt/bioapi/bin}} to &amp;lt;tt&amp;gt;$PATH&amp;lt;/tt&amp;gt; and {{path|/opt/bioapi/lib}} to &amp;lt;tt&amp;gt;$LD_LIBRARY_PATH&amp;lt;/tt&amp;gt;.&lt;br /&gt;
:When installing the driver (below), tell it the new install path: {{cmdroot|sh install.sh /opt/bioapi/lib}}&lt;br /&gt;
&lt;br /&gt;
====Adjusting ldconfigs library search path====&lt;br /&gt;
At least on {{Fedora}} or {{Aurox}} 11, you may need to add {{path|/usr/local/lib}} to the library path so that the libraries referenced from &amp;lt;tt&amp;gt;pam_bioapi.so&amp;lt;/tt&amp;gt; get picked up properly. The usual way to do this is adding it to the ldconfig configuration:&lt;br /&gt;
:{{cmdroot|echo '/usr/local/lib' &amp;gt; /etc/ld.so.conf.d/bioapi.conf}}&lt;br /&gt;
:{{cmdroot|ldconfig}}&lt;br /&gt;
Alternatively you can add it to the LD_LIBRARY variable.&lt;br /&gt;
&lt;br /&gt;
If you see bioapi libs in the output of &lt;br /&gt;
:{{cmdroot|ldconfig -p | grep bioapi}}&lt;br /&gt;
then it should work.&lt;br /&gt;
&lt;br /&gt;
===Installing and configuring the driver===&lt;br /&gt;
====Installing the driver====&lt;br /&gt;
*Download {{path|TFMESS_BSP_LIN_1.0.zip}} from the [http://www.upek.com/support/dl_linux_bsp.asp UPEK support site] and unzip it into a seperate folder, as it will not create one.&lt;br /&gt;
*Change to that folder and do as root:&lt;br /&gt;
:{{cmdroot|sh install.sh}}&lt;br /&gt;
:If you're running Gentoo or Ubuntu Dapper, use&lt;br /&gt;
:{{cmdroot|sh install.sh /usr/lib}}&lt;br /&gt;
:If that fails, it may be that make install failed up above -- try setting LD_LIBRARY_PATH, do the make install again, and come back here and try this again.  You also need {{cmd|mod_install|}} from bioapi in your PATH.&lt;br /&gt;
:May there still occures and error, which means mod_install: command not found.&lt;br /&gt;
:Then login as root - not su!&lt;br /&gt;
:Do this:&lt;br /&gt;
:{{cmdroot|sh install.sh}}&lt;br /&gt;
:again. It should work. SU to root does not work since then the /usr/local/bin directory is not used per default.&lt;br /&gt;
&lt;br /&gt;
====Configuring permissions for non-root use====&lt;br /&gt;
If you want to use PAM-aware applications like xscreensaver that are NOT running with root permissions (as opposed to login, gdm or other authentication mechanisms), you may need to do all or at least some of the things in this section.  More details on what is necessary on which distributions would be greately appreciated.&lt;br /&gt;
*Create two groups, one for access to BioAPI files and the other for access to the usb files.  (This is done for full generality; i.e., you may have other USB devices which you want accessable to other users, without exposing your BioAPI configuration to them).  Add your normal user (the one you wish to use PAM-aware applications with) to both of these groups.&lt;br /&gt;
On {{Debian}} this is done with&lt;br /&gt;
:{{cmdroot|addgroup --system bioapi}}&lt;br /&gt;
:{{cmdroot|addgroup --system usbfs}}&lt;br /&gt;
:{{cmdroot|adduser yournormaluser bioapi}}&lt;br /&gt;
:{{cmdroot|adduser yournormaluser usbfs}}&lt;br /&gt;
On {{SUSE}} this is done with&lt;br /&gt;
:{{cmdroot|groupadd --system bioapi}}&lt;br /&gt;
:{{cmdroot|groupadd --system usbfs}}&lt;br /&gt;
:{{cmdroot|groupmod -A yournormaluser bioapi}}&lt;br /&gt;
:{{cmdroot|groupmod -A yournormaluser usbfs}}&lt;br /&gt;
On {{Mandriva}} this is done with&lt;br /&gt;
:{{cmdroot|groupadd -r bioapi}}&lt;br /&gt;
:{{cmdroot|groupadd -r usbfs}}&lt;br /&gt;
:{{cmdroot|usermod -G bioapi,usbfs yournormaluser}}&lt;br /&gt;
&lt;br /&gt;
:(where {{cmd|yournormaluser|}} is your normal user name).  You will need to log out and log back in for this to take effect.&lt;br /&gt;
*Set permissions on the BioAPI config/registry directory:&lt;br /&gt;
:{{cmdroot|chown -R root:bioapi /usr/local/var/bioapi/}}&lt;br /&gt;
:{{cmdroot|chmod -R 770 /usr/local/var/bioapi/}}&lt;br /&gt;
:(change this path if you used an alternate BioAPI install directory above)&lt;br /&gt;
*Set permissions on the files in {{path|/proc/bus/usb}}:&lt;br /&gt;
:{{cmdroot|chown -R root:usbfs /proc/bus/usb}}&lt;br /&gt;
:{{cmdroot|chmod -R g+X /proc/bus/usb}}&lt;br /&gt;
:{{cmdroot|chown root:usbfs /proc/bus/usb/`lsusb &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; sed -ne &amp;quot;/0483:2016/s/Bus\ \(.*\)\ Device\ \(.*\):\ .*/\1\/\2/p&amp;quot;`}}&lt;br /&gt;
:{{cmdroot|chmod 660 /proc/bus/usb/`lsusb &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; sed -ne &amp;quot;/0483:2016/s/Bus\ \(.*\)\ Device\ \(.*\):\ .*/\1\/\2/p&amp;quot;`}}&lt;br /&gt;
:You may need to replace {{cmd|lsusb|}} with its full path, which is something like {{cmd|/sbin/lsusb|}} or {{cmd|/usr/bin/lsusb|}} depending on your distro.  It might be necessary to put these lines into a script which is run at startup and resume from suspend/hibernate.&lt;br /&gt;
*As an alternative to the {{cmd|chown|}}/{{cmd|chmod|}} commands above, you can set mount options for usbfs with a line in {{path|/etc/fstab|}}; an example would be&lt;br /&gt;
 none /proc/bus/usb usbfs defaults,devgid=108,devmode=0660,busgid=108,busmode=0770,listgid=108,listmode=0660 0 0&lt;br /&gt;
:where 108 is replaced with the numerical group ID of the usbfs group (you can determine this with something like {{cmd|cat /etc/group &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; grep usbfs &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; cut -d':' -f 3|}}).  Make sure you only have one {{path|/proc/bus/usb}} entry in {{path|/etc/fstab}}.  See the {{cmd|mount(8)|}} manpage for more information on these options.  This is &amp;quot;cleaner&amp;quot; but seems to have a few weird issues -- see the talk page for details.&lt;br /&gt;
*You may also have files in {{path|/dev/bus/usb}}, which the driver will try before {{path|/proc/bus/usb}}.  If this is another usbfs mount point ({{cmd|mount|}} shows a line containing {{cmdresult|/dev/bus/usb type usbfs}}), then simply follow the above instructions with {{path|/dev/bus/usb}} rather than {{path|/proc/bus/usb}}.  Otherwise, you may be running a new kernel (i.e. 2.6.15) that makes usbfs-like files available through {{path|/dev/bus/usb}}.&lt;br /&gt;
*On systems running udev these files are dynamically created; you can configure their permissions by editing a udev config file.  On Debian this is done by changing the &amp;lt;tt&amp;gt;usb_device&amp;lt;/tt&amp;gt; line of {{path|/etc/udev/permissions.rules}} to read&lt;br /&gt;
 SUBSYSTEM==&amp;quot;usb_device&amp;quot;, MODE=&amp;quot;0660&amp;quot;, GROUP=&amp;quot;usbfs&amp;quot;&lt;br /&gt;
*For the beta versions only, there is a logfile, which needs to exist with the proper permissions:&lt;br /&gt;
:{{cmdroot|touch /var/log/BSP.log &amp;amp;&amp;amp; chown root:bioapi /var/log/BSP.log &amp;amp;&amp;amp; chmod 660 /var/log/BSP.log}}&lt;br /&gt;
&lt;br /&gt;
====Miscellaneous configuration====&lt;br /&gt;
* To increase the security level (minimize false accept rate), set this in {{path|/etc/tfmessbsp.cfg}}:&lt;br /&gt;
 security-level=&amp;quot;5&amp;quot;&lt;br /&gt;
{{WARN|Please see discussion section Security Level!}}&lt;br /&gt;
&lt;br /&gt;
===Testing the driver and enrolling a fingerprint===&lt;br /&gt;
To test the driver and generate the file containing your fingerprint information, you need a sample program included with the driver.  The compilation steps below were discovered by trial and error; if they don't work for you, try the binary {{cmd|Sample|}} utility that came with the beta versions of the driver (i.e., {{path|TFMESS_BSP_LIN_1.0beta2.zip}} as mentioned above).&lt;br /&gt;
Go to the folder where you extracted {{path|TFMESS_BSP_LIN_1.0.zip}} and do:&lt;br /&gt;
:{{cmdroot|cd NonGUI_Sample}}&lt;br /&gt;
:Edit {{path|main.c|}} and remove (or comment out) the line&lt;br /&gt;
 #include &amp;quot;port/bioapi_port.h&amp;quot;&lt;br /&gt;
:{{cmdroot|gcc -o Sample main.c -L/usr/local/lib -lbioapi100 -DUNIX -DLITTLE_ENDIAN}}&lt;br /&gt;
:{{cmdroot|./Sample}}&lt;br /&gt;
:Note that Sample may only run as root, unless you've already configured the usbfs file permissions.&lt;br /&gt;
:You can try to &amp;quot;e&amp;quot;nroll (to record a fingerprint for an account) and then &amp;quot;v&amp;quot;erify (to test a fingerprint against the one it expects for an account).&lt;br /&gt;
:You'll save a step later if you use your own login username as the username to enroll here.&lt;br /&gt;
&lt;br /&gt;
==Login via pam_bioapi==&lt;br /&gt;
&lt;br /&gt;
The following explains how to add fingerprint authentiation to programs that use the PAM (Pluggable Authentication Modules) framework, such as  Gnome's GDM and KDE's KDM and screensaver.&lt;br /&gt;
&lt;br /&gt;
===Getting required libs &amp;amp; tools===&lt;br /&gt;
====Installing pam_bioapi====&lt;br /&gt;
*Prerequisites&lt;br /&gt;
:On SuSE 10, I needed to install the pam-devel RPM&lt;br /&gt;
:In general, you will need pam itself (standard for most distros) as well as the pam development files (probably an optional package for your distro).&lt;br /&gt;
*Get and compile the pam_bioapi module.&lt;br /&gt;
:{{cmduser|wget http://www.qrivy.net/~michael/blua/pam_bioapi/pam_bioapi-latest.tar.bz2}}&lt;br /&gt;
:{{cmduser|tar xjf pam_bioapi-latest.tar.bz2}}&lt;br /&gt;
:{{cmduser|cd pam_bioapi-0.2.1}}&lt;br /&gt;
:{{cmduser|wget http://badcode.de/downloads/fingerprint.patch}}&lt;br /&gt;
:{{cmduser|patch -p0 &amp;lt; fingerprint.patch}}&lt;br /&gt;
:If you want to, review the patch. In general you should review all code you download and compile, if possible. The patch comes from [http://linuxbiometrics.com/modules/newbb/viewtopic.php?viewmode=flat&amp;amp;topic_id=80&amp;amp;forum=1 this thread].&lt;br /&gt;
:{{cmduser|./configure &amp;amp;&amp;amp; make}}&lt;br /&gt;
:and as root&lt;br /&gt;
:{{cmdroot| make install}}&lt;br /&gt;
:{{cmdroot| cp /usr/local/lib/security/* /lib/security/}}&lt;br /&gt;
{{NOTE|If you get a 'rpl_malloc' error in /var/log/auth.log when trying to use the fingerprint reader, redo these steps and remove the related term from Makefile after running ./configure. (FC3, Debian etch)}}&lt;br /&gt;
*If you get 'configure: error: cannot find required header: security/_pam_macros.h' and are on a Debian-like system, do &amp;quot;apt-get install libpam0g-dev&amp;quot; and try again. If you are using a Mandriva distribution, do &amp;quot;urpmi libpam0-devel&amp;quot; instead.&lt;br /&gt;
*If you get 'PAM [dlerror: /lib/security/pam_bioapi.so: undefined symbol: BioAPIMemoryFuncs]' error in your syslog, replace 'LIBS = ' line in {{path|libpam_bioapi/makefile}} with the following (of course, replace {{path|/opt/bioapi/}} with the path where you installed bioapi):&lt;br /&gt;
 LIBS = -L/opt/bioapi/lib -lbioapi100 -lbioapi_mds300 -lmds_util&lt;br /&gt;
*Use the sample tool from the fingerprint reader to create {{path|&amp;lt;username&amp;gt;.bir}} (&amp;lt;tt&amp;gt;&amp;lt;username&amp;gt;&amp;lt;/tt&amp;gt; '''must''' be the username you want to login with. gdm will probably break for any login name that has no .bir file).&lt;br /&gt;
*As root do:&lt;br /&gt;
:{{cmdroot|SERIAL&amp;lt;nowiki&amp;gt;=`BioAPITest | sed -ne &amp;quot;/Fingerprint/{n;n;s/^.*: \(.\{9\}\)\(.\{4\}\)\(.\{4\}\)\(.\{4\}\)\(.*\)/\1-\2-\3-\4-\5/gp}&amp;quot;` &amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
:{{cmdroot|echo $SERIAL}} should print something like {{cmdresult|&amp;lt;nowiki&amp;gt;{5550454b-2054-464d-2f45-535320425350}&amp;lt;/nowiki&amp;gt;}} now.&lt;br /&gt;
:If it does, do:&lt;br /&gt;
:{{cmdroot|mkdir -p /etc/bioapi/pam/$SERIAL}}&lt;br /&gt;
:{{cmdroot|cp &amp;lt;username&amp;gt;.bir /etc/bioapi/pam/$SERIAL}}&lt;br /&gt;
:If not, you might just try&lt;br /&gt;
:{{cmdroot|SERIAL&amp;lt;nowiki&amp;gt;={5550454b-2054-464d-2f45-535320425350}&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
:as this value is hardcoded into the UPEK docs.&lt;br /&gt;
&lt;br /&gt;
===Configuring pam===&lt;br /&gt;
The following part is distribution specific. On {{Ubuntu}} or {{SUSE}} you can modify {{path|/etc/pam.d/common-auth}} (on {{Gentoo}} and {{Fedora}} it is {{path|/etc/pam.d/system-auth}}) to look like this:&lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 # /etc/pam.d/common-auth - authentication settings common to all services&lt;br /&gt;
 #&lt;br /&gt;
 # This file is included from other service-specific PAM config files,&lt;br /&gt;
 # and should contain a list of the authentication modules that define&lt;br /&gt;
 # the central authentication scheme for use on the system&lt;br /&gt;
 # (e.g., /etc/shadow, LDAP, Kerberos, etc.).  The default is to use the&lt;br /&gt;
 # traditional Unix authentication mechanisms.&lt;br /&gt;
 #&lt;br /&gt;
 auth       sufficient   pam_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi/pam/&lt;br /&gt;
 password   sufficient   pam_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi/pam/&lt;br /&gt;
 auth       required     pam_unix.so nullok_secure&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
For '''Gentoo'''-Users - this allows you to attempt a password first. If you simply press enter, it then prompts for a fingerprints. Create a file named {{path|/etc/pam.d/bioapi}}. This also means that remote services, such as SSH keep working:&lt;br /&gt;
&lt;br /&gt;
 auth       required     pam_env.so&lt;br /&gt;
 auth       sufficient   pam_unix.so likeauth nullok&lt;br /&gt;
 auth       sufficient   pam_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi/pam/&lt;br /&gt;
 auth       required     pam_deny.so&lt;br /&gt;
 &lt;br /&gt;
 account    required     pam_unix.so&lt;br /&gt;
 &lt;br /&gt;
 session    required     pam_limits.so&lt;br /&gt;
 session    required     pam_unix.so&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Now, simply replace &amp;quot;auth include system-auth&amp;quot; in all services that you wish to use fingerprint for with &amp;quot;auth include bioapi&amp;quot;. For example, {{path|/etc/pam.d/kde}} by default contains&lt;br /&gt;
&lt;br /&gt;
  auth       include      system-auth&lt;br /&gt;
  auth       required     pam_nologin.so&lt;br /&gt;
  &lt;br /&gt;
  account    include      system-auth&lt;br /&gt;
  &lt;br /&gt;
  password   include      system-auth&lt;br /&gt;
  &lt;br /&gt;
  session    include      system-auth&lt;br /&gt;
&lt;br /&gt;
Simply replace the first &amp;quot;system-auth&amp;quot; with bioapi and you can also get rid of KDE desktop lock with a fingerprint. If you do not wish to allow for &amp;quot;password fallback&amp;quot; then remove &lt;br /&gt;
&lt;br /&gt;
 auth       sufficient   pam_unix.so likeauth nullok&lt;br /&gt;
&lt;br /&gt;
from {{path|/etc/pam.d/bioapi}}.&lt;br /&gt;
&lt;br /&gt;
{{WARN|If su/sudo expects to receive the root password (SuSE 10), you need to have fingerprint settings for root (that is, copy in a root.bir as well as a your-username.bir).  Otherwise, they get a segmentation fault.  Which is a little unfortunate, given that you need to su or sudo to change your settings... }}&lt;br /&gt;
{{WARN|Not only SuSE 10 requires root.bir to be available for su to work. Just make sure you have root.bir when su is not working with your fingerprint reader but other applications are...}}&lt;br /&gt;
Note that sshd may pick up the fingerprint settings from {{path|/etc/pam.d/common-auth}}.  I didn't want that, so I removed the &amp;quot;auth include common-auth&amp;quot; line from {{path|/etc/pam.d/sshd}} and replaced it with the lines that were originally in my {{path|/etc/pam.d/common-auth}}.  That way most local services use the fingerprint reader, but sshd does not.&lt;br /&gt;
&lt;br /&gt;
Another way to do this is to create a file ({{path|/etc/pam.d/bioapi|}} for example) which contains the {{cmd|pam_bioapi.so|}} lines, and explicitly {{cmd|@include|}} this '''before''' {{path|/etc/pam.d/common-auth|}} in the files for services which should use the fingerprint reader.  In this case you should leave {{path|/etc/pam.d/common-auth|}} alone.&lt;br /&gt;
&lt;br /&gt;
{{NOTE|This was discovered through trial and success, if it is plain wrong, wikorrect it, please.}}&lt;br /&gt;
&lt;br /&gt;
In {{Fedora}} the original 'session' terms in {{path|/etc/pam.d/system-auth}} need to be kept.&lt;br /&gt;
&lt;br /&gt;
{{HINT|The setup described above will/could affect remote ssh logins to also use biometric logins, which is a bit silly (who wants to remote ssh to the laptop, and then have to walk over to it and swipe your finger)&amp;lt;br /&amp;gt;To avoid that you can copy the default &amp;lt;tt&amp;gt;/etc/pam.d/system-auth&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;/etc/pam.d/sshd&amp;lt;/tt&amp;gt; which will allow the sshd service to use the standard authentication procedure.}}&lt;br /&gt;
&lt;br /&gt;
You can do some useful testing with [http://pamtester.sourceforge.net/ {{cmd|pamtester|}}], which calls the pam modules as if it were a program of your choice.  Examples:&lt;br /&gt;
:{{cmdroot|pamtester xdm yourusername authenticate}}&lt;br /&gt;
:{{cmduser|pamtester xscreensaver yourusername authenticate}}&lt;br /&gt;
where {{cmd|yourusername|}} is your username.  Note that {{cmd|pamtester|}} should run as root if and only if the program in question does.&lt;br /&gt;
&lt;br /&gt;
===Application support===&lt;br /&gt;
The implementation of fingerprint scanning support in the relevant applications varies.&lt;br /&gt;
&lt;br /&gt;
Here is the behaviour of the most common ones:&lt;br /&gt;
* In gdm enter your username and there should pop up an (ugly) image to swipe your finger and... magic - you can login without a password.&lt;br /&gt;
* kdm doesn't give any visual indication, other than that the cursor stops blinking. Just swipe your finger and hope it lets you log in.&lt;br /&gt;
* In xdm, enter your username and a blank password, then swipe (there is no popup as well).&lt;br /&gt;
* The KDE screen saver in SUSE 10 requires you to enter an empty password (or select the correct user and then enter an empty password) in order to get the fingerprint prompt.&lt;br /&gt;
* For Fedora users, the redhat-config tools will crash if no root.bir presents. Also, there won't be any visual idication unless X server is properly configured for root to access. Just swipe your finger when the HDD stopped blinking or issue the following command in advance:&lt;br /&gt;
:{{cmduser|xhost +local:}}&lt;br /&gt;
* For RHEL4 users gdm, console (virtual terminal) logins and the xscreensaver all work&lt;br /&gt;
&lt;br /&gt;
===kdm support===&lt;br /&gt;
To add graphical popup to kdm, you need following:&lt;br /&gt;
* Patch for pam_bioapi. This patch adds third parameter to {{path|pam_bioapi.so}} module, which is a name of file with additional environment variables that will be supplied to the UPEK driver.&lt;br /&gt;
:{{cmdroot|wget http://upir.cz/linux/patches/pam_bioapi-0.2.1-alter-environ.patch}}&lt;br /&gt;
:{{cmdroot|patch -p1 &amp;lt; pam_bioapi-0.2.1-alter-environ.patch}}&lt;br /&gt;
* Edit your {{path|Xsetup}} file (on SUSE 10 it's {{path|/etc/X11/xdm/Xsetup}}) and add these lines:&lt;br /&gt;
 echo &amp;quot;XAUTHORITY=$XAUTHORITY&amp;quot; &amp;gt; /var/lib/xdm/kdm_env&lt;br /&gt;
 echo &amp;quot;DISPLAY=$DISPLAY&amp;quot; &amp;gt;&amp;gt; /var/lib/xdm/kdm_env&lt;br /&gt;
* In {{path|/etc/pam.d/xdm}} file, add {{path|/var/lib/xdm/kdm_env}} as a third parameter for {{path|pam_bioapi.so}} module:&lt;br /&gt;
 auth sufficient pam_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi/pam/ /var/lib/xdm/kdm_env&lt;br /&gt;
&lt;br /&gt;
Please note, that this won't work if you have more than one Xserver.&lt;br /&gt;
&lt;br /&gt;
==Make xscreensaver use the scanner==&lt;br /&gt;
If you are using Gentoo, you can get a portage overlay with the necessary patches here: http://www.zzamboni.org/brt/files/xscreensaver-fingerprint-overlay.tar.gz&lt;br /&gt;
*Get the needed xscreensaver sources:&lt;br /&gt;
:{{cmduser|wget http://www.jwz.org/xscreensaver/xscreensaver-4.23.tar.gz}}&lt;br /&gt;
:{{cmduser|tar xzf xscreensaver-4.23.tar.gz}}&lt;br /&gt;
:{{cmduser|cd xscreensaver-4.23}}&lt;br /&gt;
:{{cmduser|wget http://www.nax.cz/pub/bioapi/2005/xscreensaver/xscreensaver-4.22_alternativeAuth.diff&amp;lt;br/&amp;gt; mirror: http://zepan.org/files/xscreensaver-4.22_alternativeAuth.diff&amp;lt;br/&amp;gt;For xscreensaver 5.00, you can get a patch here: http://www.zzamboni.org/brt/files/xscreensaver-5.00-alternativeauth.patch}}&lt;br /&gt;
*After reviewing the patch (it's small and straightforward), do&lt;br /&gt;
:{{cmduser|patch -p1 &amp;lt; xscreensaver-4.22_alternativeAuth.diff}}&amp;lt;br /&amp;gt;The patch prevents xscreensaver from opening an authentification window and dispatches the authentification request to another program, in our case &amp;lt;tt&amp;gt;pam&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;pam_bioapi&amp;lt;/tt&amp;gt;. It should apply with some offset, don't mind that. If it says something about rejected though, then there's a problem.&lt;br /&gt;
*Compile with&lt;br /&gt;
:{{cmduser|./configure --with-pam &amp;amp;&amp;amp; make}}&amp;lt;br /&amp;gt;&lt;br /&gt;
*If you receive an error like &amp;quot;Couldn't find X11 headers/libs&amp;quot; and are running a Debian-like system, try &amp;quot;apt-get install xlibs-dev&amp;quot;&lt;br /&gt;
*If you receive an error like &amp;quot;undefined reference to `XmuPrintDefaultErrorMessage'&amp;quot; then install the libxmu-dev package and run the previous line again and then install as root with&lt;br /&gt;
:{{cmduser|su -c make install}} .&lt;br /&gt;
*Make sure that the newly compiled xscreensaver is used:&lt;br /&gt;
:{{cmduser|which xscreensaver}} should return&lt;br /&gt;
:{{cmdresult|/usr/local/bin/xscreensaver}} .&lt;br /&gt;
*In case it doesn't, try adjusting your PATH.&lt;/div&gt;</summary>
		<author><name>Nax</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Talk:How_to_enable_integrated_fingerprint_reader_with_BioAPI&amp;diff=23107</id>
		<title>Talk:How to enable integrated fingerprint reader with BioAPI</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Talk:How_to_enable_integrated_fingerprint_reader_with_BioAPI&amp;diff=23107"/>
		<updated>2006-07-09T21:59:47Z</updated>

		<summary type="html">&lt;p&gt;Nax: /* GNOME Screensaver support */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== chmod 777 -R /usr/local/var/bioapi/ ==&lt;br /&gt;
&lt;br /&gt;
Is the above necessary? I just made a debian package of xscreensaver with the patch applied, and when using the bioapi debian pacakge from [http://www.qrivy.net/~michael/temp/ Michael R. Crusoe's site] which has this directory put in /usr/var/bioapi I had not to change the permissions to world-writeable there. Write access to the logfile and usb device are necessary, but that directory works with 755 as well (even though it comes with 777 in Michael's package), and all files and subdirectories are 644/755 too.&lt;br /&gt;
&lt;br /&gt;
--[[User:Spiney|spiney]] 00:08, 11 Nov 2005 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Qt Compilation Success ==&lt;br /&gt;
&lt;br /&gt;
Here it worked with qt ;)&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
I didn't get it to work anyway, but I'm curious about your Qt version(s) as it seemed to want Qt 3 when I was playing with it.&lt;br /&gt;
&lt;br /&gt;
--[[User:Keegan|keegan]] 05:07, 24 Dec 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
== using absolute paths for commands ==&lt;br /&gt;
&lt;br /&gt;
I don't know whether using absolute paths in the articles is a good idea, at least not for tools like {{cmd|lsusb|}} which are not established utilities (i.e. used for more than a decade or something ;)) and happen to be in different locations in different distributions. E.g. said {{cmd|lsusb|}} resides in {{path|/usr/sbin|}} on Debian systems.&lt;br /&gt;
&lt;br /&gt;
--[[User:Spiney|spiney]] 16:45, 12 Nov 2005 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
I'm using debian testing and it's in {{path|/usr/bin|}}.  I agree that the confusion is bad; dropping the absolute paths and adding a general note about checking {{cmd|$PATH|}} in case of problems is probably good.&lt;br /&gt;
&lt;br /&gt;
--[[User:keegan|keegan]]&lt;br /&gt;
&lt;br /&gt;
== BioAPI error #3 ==&lt;br /&gt;
&lt;br /&gt;
Its kind of strage it used to work with everythig (kdm,console,lock,etc)&lt;br /&gt;
Now it only works with kdm. It allways gives back:&lt;br /&gt;
&lt;br /&gt;
pam_bioapi[8113]: Unable to initialize Bioapi framework, BioAPI error #:3.&lt;br /&gt;
&lt;br /&gt;
Even when I set the right permissions on /proc/bus/usb.&lt;br /&gt;
&lt;br /&gt;
I am able to run the Sample program as normal user after setting the permissions, but when I change within a user session by su I amnot able to run the Sample program a also get an error Code #3.&lt;br /&gt;
&lt;br /&gt;
From an other terminal (alt+strg+Fx) I am able to run the Sample program but at the login I still get the error #3.&lt;br /&gt;
&lt;br /&gt;
I cant remember to have changed anything an d bevor I was able to login in a console with my fingerprint now only kdm is working even kde lock-session       &lt;br /&gt;
isnt working anymore.&lt;br /&gt;
&lt;br /&gt;
Any suggestions ?&lt;br /&gt;
&lt;br /&gt;
==Permission errors exclusive to xscreensaver==&lt;br /&gt;
&lt;br /&gt;
I followed the instructions above and got everything working, including non-root programs like xscreensaver.  However, the script to change usbfs permissions is finicky and fails to work with a lot of things like suspend/resume.  Therefore, I switched to specifying &amp;lt;tt&amp;gt;devgid=108,devmode=0660,busgid=108,busmode=0770,listgid=108,listmode=0660&amp;lt;/tt&amp;gt; as mount parameters for usbfs, where group 108 is a group I created and added my normal user to.  This seems like a much better way of doing things, and it almost works.  However, xscreensaver (using the newer patch) gives the familiar &amp;lt;tt&amp;gt;Unable to load BioAPI BSP with UUID of &amp;lt;nowiki&amp;gt;{&amp;lt;/nowiki&amp;gt;5550454b-2054-464d-2f45-535320425350&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;, BioAPI error #194d.&amp;lt;/tt&amp;gt; error in {{path|/var/log/auth.log|}}.  I don't think this is a straightfoward permissions problem because&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;the permissions in {{path|/proc/bus/usb|}} are correct by inspection&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;I can write to the device file as my normal user&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;other programs like {{cmd|test_verify-pam_bioapi|}} and [http://pamtester.sourceforge.net/ {{cmd|pamtester|}}] work as my normal user&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;the weirdest one: xscreensaver works when the {{cmd|xscreensaver|}} daemon is launched from within {{cmd|strace|}}.  It's still running as my normal user ({{cmd|strace|}} is not setuid root).  I have absolutely no idea what would cause this.  I thought it might be an environment issue, but the difference in environment between the {{cmd|strace|}} session and my normal session is trivial.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this point I'm hoping it's something dumb, but I'm out of ideas.  The {{cmd|xscreensaver|}} error is &amp;lt;tt&amp;gt;pam_authenticate (...) ==&amp;amp;gt; 7 (Authentication failure)&amp;lt;/tt&amp;gt;, for the record.&lt;br /&gt;
&lt;br /&gt;
--[[User:keegan|keegan]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Could you provide all the log lines between pam_start and pam_end when running {{cmd|xscreensaver -verbose|}}?&lt;br /&gt;
&lt;br /&gt;
BTW, the idea with using the mount options for usbfs is very good, maybe you should add that info to the article page? I use the permission changing script without problems, also after resume, but the usbfs version is probably easier to set up, most people will be able to find {{path|/etc/fstab|}}.&lt;br /&gt;
&lt;br /&gt;
--[[User:Spiney|spiney]] 10:12, 23 Dec 2005 (CET)&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xscreensaver: 20:56:01: alternative_pam:  1 -&amp;gt; pam service: xscreensaver-alternative&lt;br /&gt;
xscreensaver: 20:56:01: pam_start (&amp;quot;xscreensaver-alternative&amp;quot;, &amp;quot;keegan&amp;quot;, ...) ==&amp;gt; 0 (Success)&lt;br /&gt;
xscreensaver: 20:56:01:   pam_set_item (p, PAM_TTY, &amp;quot;:0.0&amp;quot;) ==&amp;gt; 0 (Success)&lt;br /&gt;
xscreensaver: 20:56:01:     PAM ECHO_OFF(&amp;quot;Password: &amp;quot;) ==&amp;gt; password&lt;br /&gt;
xscreensaver: 20:56:03:   pam_authenticate (...) ==&amp;gt; 7 (Authentication failure)&lt;br /&gt;
xscreensaver: 20:56:03: pam_end (...) ==&amp;gt; 0 (Success)&lt;br /&gt;
xscreensaver: 20:56:03: prompting for password.&lt;br /&gt;
xscreensaver: 20:56:03: 0: creating password dialog.&lt;br /&gt;
xscreensaver: 20:56:03: 0: mouse is at 442,412.&lt;br /&gt;
xscreensaver: 20:56:03: grabbing server...&lt;br /&gt;
xscreensaver: 20:56:03: 0: ungrabbing mouse (was 0x48).&lt;br /&gt;
xscreensaver: 20:56:03: 0: grabbing mouse on 0xe0002b... GrabSuccess.&lt;br /&gt;
xscreensaver: 20:56:03: ungrabbing server.&lt;br /&gt;
xscreensaver: 20:56:05: alternative_pam:  12582928 -&amp;gt; pam service: xscreensaver&lt;br /&gt;
xscreensaver: 20:56:05: pam_start (&amp;quot;xscreensaver&amp;quot;, &amp;quot;keegan&amp;quot;, ...) ==&amp;gt; 0 (Success)&lt;br /&gt;
xscreensaver: 20:56:05:   pam_set_item (p, PAM_TTY, &amp;quot;:0.0&amp;quot;) ==&amp;gt; 0 (Success)&lt;br /&gt;
xscreensaver: 20:56:05:     PAM ECHO_OFF(&amp;quot;Password: &amp;quot;) ==&amp;gt; password&lt;br /&gt;
xscreensaver: 20:56:05:   pam_authenticate (...) ==&amp;gt; 0 (Success)&lt;br /&gt;
xscreensaver: 20:56:05:   pam_acct_mgmt (...) ==&amp;gt; 9 (Authentication service cannot retrieve authentication info.)&lt;br /&gt;
xscreensaver: 20:56:05:   pam_setcred (...) ==&amp;gt; 0 (Success)&lt;br /&gt;
xscreensaver: 20:56:05: pam_end (...) ==&amp;gt; 0 (Success)&lt;br /&gt;
xscreensaver: 20:56:05: password correct.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
So we've got the first attempt with {{cmd|pam_bioapi|}}, which fails immediately (no sign of the GUI fingerprint prompt, nor a &amp;quot;silent&amp;quot; chance to swipe the finger as with xdm), then the fallback to {{cmd|pam_unix|}} which succeeds.  Earlier I had xscreensaver set up to only try {{cmd|pam_bioapi|}}, with essentially the same result -- it gives up on pam entirely and does unix auth itself.&lt;br /&gt;
&lt;br /&gt;
I'd really like to strace the pam module and see what it's attempting to do to {{path|/proc/bus/usb|}}, but as that actually fixes the problem I'm kinda at a loss.  Maybe there's some kernel option to print debugging info for usbfs?  I'd be all for changing the article to suggest using mount options in {{path|/etc/fstab|}}, if it weren't for this one weird bug.  Has anyone else had the same problem?&lt;br /&gt;
&lt;br /&gt;
-- [[User:keegan|keegan]]&lt;br /&gt;
&lt;br /&gt;
Same here, I had the whole setup workin flawlessly (I really need to get that 'never-touch-a-running-system' mantra burnt into the back of my hands), but after a fresh install of the same distro (Ubuntu) and following the same procedure to get things working i get exactly this behaviour. Login works (now even with multifinger, although there are other issues with that), I can use test_verify-pam_bioapi as a user. and the stock xscreensaver works, albeit only after entering a bogus password first.&lt;br /&gt;
The patched xscreensaver works when run within a strace (Now that sucks) but fails otherwise. And as i said before, I had this working...&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
open(&amp;quot;/dev/bus/usb&amp;quot;, O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 13&lt;br /&gt;
fstat64(13, {st_mode=S_IFDIR|0755, st_size=140, ...}) = 0&lt;br /&gt;
fcntl64(13, F_SETFD, FD_CLOEXEC)        = 0&lt;br /&gt;
getdents64(13, /* 7 entries */, 4096)   = 168&lt;br /&gt;
getdents64(13, /* 0 entries */, 4096)   = 0&lt;br /&gt;
close(13)                               = 0&lt;br /&gt;
open(&amp;quot;/dev/bus/usb/003&amp;quot;, O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 13&lt;br /&gt;
fstat64(13, {st_mode=S_IFDIR|0755, st_size=80, ...}) = 0&lt;br /&gt;
fcntl64(13, F_SETFD, FD_CLOEXEC)        = 0&lt;br /&gt;
getdents64(13, /* 4 entries */, 4096)   = 96&lt;br /&gt;
open(&amp;quot;/dev/bus/usb/003/002&amp;quot;, O_RDWR)    = -1 EACCES (Permission denied)&lt;br /&gt;
open(&amp;quot;/dev/bus/usb/003/002&amp;quot;, O_RDONLY)  = 14&lt;br /&gt;
ioctl(14, USBDEVFS_CONNECTINFO, 0xafd5bd34) = -1 EPERM (Operation not permitted)&lt;br /&gt;
read(14, &amp;quot;\22\1\0\1\0\0\0\10\203\4\26 \1\0\1\2\0\1&amp;quot;, 18) = 18&lt;br /&gt;
read(14, &amp;quot;\t\2\'\0\1\1\0\240&amp;quot;, 8)       = 8&lt;br /&gt;
read(14, &amp;quot;2\t\4\0\0\3\377\0\0\0\7\5\201\2@\0\0\7\5\2\2@\0\0\7\5\203&amp;quot;..., 31) = 31&lt;br /&gt;
close(14)                               = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is all the excitement from the strace on xscreensaver.  As I originally thought, you cannot get away with just playing with the proc entries :P  You also need to deal with the counterpart in /dev.  We can wrap up all the permissions issues with a single UDEV rule:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# fingerprint fun&lt;br /&gt;
BUS==&amp;quot;usb&amp;quot;, DRIVER==&amp;quot;usb&amp;quot;, SYSFS{product}==&amp;quot;Biometric Coprocessor&amp;quot;, GROUP=&amp;quot;bioapi&amp;quot;, SYMLINK=&amp;quot;misc/fingerprint&amp;quot;, RUN+=&amp;quot;/bin/sh -c 'chgrp bioapi /proc/$RESULT; chmod g+rw /proc/$RESULT'&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I created a 'bioapi' group and configured pam to add groups to anyone logging in ''locally''.  Now all you need to do is amend the pam configuraion files below.  We use 'wdm', but of course its as applicable for all those resource hungry touchy-feely gdm/kdm folk out there too ;)&lt;br /&gt;
&lt;br /&gt;
/etc/security/group.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# local group settings&lt;br /&gt;
login; tty*; *; al0000-2400; audio,floppy,video,cdrom,nvram,plugdev,bioapi&lt;br /&gt;
wdm; :*; *; al0000-2400; audio,floppy,video,cdrom,nvram,plugdev,bioapi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/etc/pam.d/login&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[snipped]&lt;br /&gt;
&lt;br /&gt;
# group *has* to go here&lt;br /&gt;
auth       optional   pam_group.so&lt;br /&gt;
&lt;br /&gt;
# fingerprint action&lt;br /&gt;
auth       sufficient /usr/local/lib/security/pam_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi1.10/pam/&lt;br /&gt;
&lt;br /&gt;
# Standard Un*x authentication.&lt;br /&gt;
@include common-auth&lt;br /&gt;
&lt;br /&gt;
# This allows certain extra groups to be granted to a user&lt;br /&gt;
# based on things like time of day, tty, service, and user.&lt;br /&gt;
# Please edit /etc/security/group.conf to fit your needs&lt;br /&gt;
# (Replaces the `CONSOLE_GROUPS' option in login.defs)&lt;br /&gt;
#auth       optional   pam_group.so&lt;br /&gt;
&lt;br /&gt;
[snipped]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/etc/pam.d/wdm&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#%PAM-1.0&lt;br /&gt;
auth            required        pam_nologin.so&lt;br /&gt;
auth            required        pam_env.so&lt;br /&gt;
&lt;br /&gt;
# local tweak&lt;br /&gt;
auth       optional   pam_group.so&lt;br /&gt;
&lt;br /&gt;
# fingerprint action&lt;br /&gt;
auth       sufficient /usr/local/lib/security/pam_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi1.10/pam/&lt;br /&gt;
&lt;br /&gt;
@include common-auth&lt;br /&gt;
@include common-account&lt;br /&gt;
@include common-session&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''N.B.''' as with all pam related things, the order is important&lt;br /&gt;
&lt;br /&gt;
-- [[User:Jim diGriz|Jim diGriz]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Driver Expiring!!!==&lt;br /&gt;
Don't anyone notice that both betas of the UPEK driver is expiring in&lt;br /&gt;
about a month in the new year, Jan 1st 2006? They really mean it! &lt;br /&gt;
I set my computer date to next year and get a message &amp;quot;the driver has expired&amp;quot; when using fingerprint reader! This is a grave threat to our computer lifestyle, i.e. for those of us who got it working and use it&lt;br /&gt;
daily:) &lt;br /&gt;
Is there any workaround other than setting the date back a year when&lt;br /&gt;
new year come and wait for new driver? Is there a way to figure out where exactly in the driver it checked the date and how? The must have set it &lt;br /&gt;
somewhere in file libtfmessbsp.so, but it is binary and I can't figure out how to Reverse Engineer it.&lt;br /&gt;
&lt;br /&gt;
---Jiang&lt;br /&gt;
&lt;br /&gt;
Yes, the beta driver will expire. The final version (which is due REALLY soon now) will not.&lt;br /&gt;
&lt;br /&gt;
Sumedha&lt;br /&gt;
&lt;br /&gt;
Any news? Just 9 days left to expiry. --[[User:Thinker|Thinker]] 21:36, 22 Dec 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
The final is out, get it at [http://www.upek.com/support/dl_linux_bsp.asp UPEK's download page]. And how does one edit the industry watch section of the main page?&lt;br /&gt;
&lt;br /&gt;
--[[User:Spiney|spiney]] 21:39, 22 Dec 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
Ah, great! Both the article page and the driver page it points to are out of date... For the news, just follow the &amp;quot;[[ThinkWiki:News|News]]&amp;quot; link in the main page. &lt;br /&gt;
&lt;br /&gt;
--[[User:Thinker|Thinker]] 21:44, 22 Dec 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
As this is now very soon I've updated the article page to link to the final driver, which is better in a few ways anyway.  This is unless anyone minds (are there any unresolved issues with the final that don't exist in the betas?).&lt;br /&gt;
&lt;br /&gt;
--[[User:Keegan|keegan]] 05:06, 24 Dec 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
== Updated xscreensaver patch ==&lt;br /&gt;
&lt;br /&gt;
I've tried to address some usability issues with the old patch, e.g. that it calls the PAM bioapi module twice before falling back to the normal authentication methods. It can be found on my [http://linux.spiney.org/debian_gnu_linux_on_an_ibm_thinkpad_t43p_fingerprint_reader Fingerprint Reader] page, feedback is very welcome.&lt;br /&gt;
&lt;br /&gt;
--[[User:Spiney|spiney]] 20:36, 22 Dec 2005 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Fingerprint or password ==&lt;br /&gt;
&lt;br /&gt;
Is there any way to have PAM accept either a password or a finger swipe, right away? Sometimes one is more convenient, sometimes the other, so and it's a lot of trouble to wait for the UPEK scanner prompt and then cancel it in order to reach the password entry.&lt;br /&gt;
&lt;br /&gt;
--[[User:Thinker|Thinker]] 19:27, 24 Dec 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
== KDE screensaver ==&lt;br /&gt;
&lt;br /&gt;
If you get the following in {{path|/var/log/secure}} when you try to unlock the KDE screensaver, it means you forgot to set the USB device permissions.&lt;br /&gt;
 localhost pam_bioapi[24981]: Unable to load BioAPI BSP with UUID of {5550454b-2054-464d-2f45-535320425350}, BioAPI error #194d.&lt;br /&gt;
&lt;br /&gt;
--[[User:Thinker|Thinker]] 21:21, 24 Dec 2005 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== fingerprint reader in action. ==&lt;br /&gt;
&lt;br /&gt;
small video with fingerprint reader in action with login: http://chao.ch/tmp/mov01302.mpg&lt;br /&gt;
&lt;br /&gt;
--[[User:62.202.35.30|62.202.35.30]] 17:57, 29 Dec 2005 (CET)&lt;br /&gt;
&lt;br /&gt;
==A little feedback...==&lt;br /&gt;
...for all the editors of this article:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;[[How to enable the fingerprint reader]] over at ThinkWiki.org is some real exhaustive documentation for getting the fingerprint scanner working on the ThinkPads. There is also a troubleshooting section towards the end that might be very useful to anyone messing around with it.&lt;br /&gt;
&lt;br /&gt;
Thanks to those responsible for taking the time to write up this excellent guide.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Those thanks come from [http://linuxbiometrics.com/modules/news/ LinuxBiometrics.com]&lt;br /&gt;
&lt;br /&gt;
[[User:Wyrfel|Wyrfel]] 01:24, 9 Jan 2006 (CET)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==pam_bioapi.so is not linked to libbioapi100.so==&lt;br /&gt;
I downloaded the pam_bioapi package and patched the file by following the wiki. However, I got the following result:&lt;br /&gt;
&lt;br /&gt;
    ~/soft/thinkpad/pam_bioapi-0.2.1/libpam_bioapi/.libs$ ls -la&lt;br /&gt;
    total 48&lt;br /&gt;
    drwxr-xr-x  2 louis users   248 2006-01-12 01:18 ./&lt;br /&gt;
    drwxr-xr-x  4 louis users   312 2006-01-12 01:18 ../&lt;br /&gt;
    lrwxrwxrwx  1 louis users    16 2006-01-12 01:18 pam_bioapi.la -&amp;gt; ../pam_bioapi.la&lt;br /&gt;
    -rw-r--r--  1 louis users   824 2006-01-12 01:18 pam_bioapi.lai&lt;br /&gt;
    -rw-r--r--  1 louis users 19716 2006-01-12 01:18 pam_bioapi.o&lt;br /&gt;
    lrwxrwxrwx  1 louis users    19 2006-01-12 01:18 pam_bioapi.so -&amp;gt; pam_bioapi.so.0.0.0*&lt;br /&gt;
    lrwxrwxrwx  1 louis users    19 2006-01-12 01:18 pam_bioapi.so.0 -&amp;gt; pam_bioapi.so.0.0.0*&lt;br /&gt;
    -rwxr-xr-x  1 louis users 21789 2006-01-12 01:18 pam_bioapi.so.0.0.0*&lt;br /&gt;
    &lt;br /&gt;
    ~/soft/thinkpad/pam_bioapi-0.2.1/libpam_bioapi/.libs$ ldd pam_bioapi.so&lt;br /&gt;
            linux-gate.so.1 =&amp;gt;  (0xffffe000)&lt;br /&gt;
            libc.so.6 =&amp;gt; /lib/tls/libc.so.6 (0x40025000)&lt;br /&gt;
            /lib/ld-linux.so.2 (0x80000000)&lt;br /&gt;
    ~/soft/thinkpad/pam_bioapi-0.2.1/libpam_bioapi/.libs$&lt;br /&gt;
&lt;br /&gt;
pam_bioapi.so is NOT linked to libbioapi100.so. The latter is in the ld path:&lt;br /&gt;
&lt;br /&gt;
    ~/soft/thinkpad/pam_bioapi-0.2.1/libpam_bioapi/.libs$ ldconfig -p |grep bioapi&lt;br /&gt;
            libtfmessbsp.so (libc6) =&amp;gt; /opt/bioapi/lib/libtfmessbsp.so&lt;br /&gt;
            libpwbsp.so.0 (libc6) =&amp;gt; /opt/bioapi/lib/libpwbsp.so.0&lt;br /&gt;
            libpwbsp.so (libc6) =&amp;gt; /opt/bioapi/lib/libpwbsp.so&lt;br /&gt;
            libmds_util.so.0 (libc6) =&amp;gt; /opt/bioapi/lib/libmds_util.so.0&lt;br /&gt;
            libmds_util.so (libc6) =&amp;gt; /opt/bioapi/lib/libmds_util.so&lt;br /&gt;
            libbioapi100.so.0 (libc6) =&amp;gt; /opt/bioapi/lib/libbioapi100.so.0&lt;br /&gt;
            libbioapi100.so (libc6) =&amp;gt; /opt/bioapi/lib/libbioapi100.so&lt;br /&gt;
            libbioapi_mds300.so.0 (libc6) =&amp;gt; /opt/bioapi/lib/libbioapi_mds300.so.0&lt;br /&gt;
            libbioapi_mds300.so (libc6) =&amp;gt; /opt/bioapi/lib/libbioapi_mds300.so&lt;br /&gt;
            libbioapi_dummy100.so.0 (libc6) =&amp;gt; /opt/bioapi/lib/libbioapi_dummy100.so.0&lt;br /&gt;
            libbioapi_dummy100.so (libc6) =&amp;gt; /opt/bioapi/lib/libbioapi_dummy100.so&lt;br /&gt;
&lt;br /&gt;
and the Sample program also works allowing me to enroll and test a fingerprint.&lt;br /&gt;
&lt;br /&gt;
My system is SuSE 10 with the kernel of 2.6.13-15. Any ideas?&lt;br /&gt;
&lt;br /&gt;
Thanks.&lt;br /&gt;
&lt;br /&gt;
--[[User:Tyne|Tyne]] 09:51, 12 Jan 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
==xscreensaver 4.23+fingerprint.patch causes xscreensaver-gl to crash kernel==&lt;br /&gt;
&lt;br /&gt;
I've gotten bioapi and 'Sample' to allow me to enroll my fingerprint, and I've also experienced the 'two logon' issue. &lt;br /&gt;
&lt;br /&gt;
I compiled xscreensaver 4.23 (though it seemed that apt came with 4.24) and applied the patch. My goal was to have the fingerprint prompt come up and to see the &amp;quot;bad image&amp;quot; of the fingerprint scan.&lt;br /&gt;
&lt;br /&gt;
The first time I did this, xscreensaver-gl took a dump and was causing kernel crashes. So I went and got the newest xscreensaver source and patches, and applied the bioapi patch to those. It worked (meaning it didnt crash the kernel anymore ;b )&lt;br /&gt;
&lt;br /&gt;
It would seem that there is a /etc/pam.d/xscreensaver, so I commented everything out of that except the bioapi line. &lt;br /&gt;
&lt;br /&gt;
Locking xscreensaver, then attempting to unlock didnt show me any fingerprint requirements, and my password didnt work.&lt;br /&gt;
&lt;br /&gt;
I'm wondering if theres something that was left out of the xscreensaver howto? or if theres anyone out there who's gotten the xscreensaver portion of this to work, who would be willing to help me out :)&lt;br /&gt;
&lt;br /&gt;
--[[User:Viss|Viss]] 11:15am, 5 Feb 2006 (PST)&lt;br /&gt;
&lt;br /&gt;
== gdm hangs on kde logout ==&lt;br /&gt;
&lt;br /&gt;
Hi.&lt;br /&gt;
&lt;br /&gt;
I am using a Thinkpad t43, installed with gentoo.&lt;br /&gt;
I run gdm as the login manager, with kde 3.4 and enlightenment dr16 as the window manager.&lt;br /&gt;
&lt;br /&gt;
I followed the steps in the wiki, and the biometric scanner is now working fine, appart from the fact that when I close/end the session I just get a blank screen, in place of the gdm login screen.&lt;br /&gt;
&lt;br /&gt;
Disabling the biometrics (by setting the pam.d file back to their originals), the session ends fine. I do this for a few times, and then set the biometrics back again, and it work fine for a few logouts, and then back to the blank screen again.&lt;br /&gt;
&lt;br /&gt;
I can do ctrl+shift+f1 to get to a console window and from there I can issue a shutdown.&lt;br /&gt;
Although this works ok, it is a bit of a pain.&lt;br /&gt;
&lt;br /&gt;
Any ideas ?&lt;br /&gt;
&lt;br /&gt;
== 'gksudo' Doesn't show biopam finger swipe prompt... ==&lt;br /&gt;
&lt;br /&gt;
Hey all,&lt;br /&gt;
&lt;br /&gt;
First off... this is an excellent how-to!  I have no real interest in using fingerprint scanner with xscreensaver, but it was up and working with everything else on my system pretty much effortlessly.&lt;br /&gt;
&lt;br /&gt;
I'm running Ubuntu Breezy Badger 5.10 on an IBM T43p (2678) and have run into two oddities:&lt;br /&gt;
1) /etc/pam.d/xscreensaver - as it is initially configured, if you have an xscreensaver session set to require password (or xlock with screensaver) then you get prompted for the normal text-password entry and then will be prompted to swipe your finger... This is easily fixed by commenting out the '@include common-auth' line in /etc/pam.d/xscreensaver and adding the line 'auth required pam_unix.so nullok_secure'.  After that change it only prompts for the text-password entry challenge.&lt;br /&gt;
&lt;br /&gt;
2) gksudo - This is more of a pain... I can use the fingerprint scanner with gksudo, but gksudo doesn't prompt with the (ugly-but-functional) finger swipe dialog the way that gdm does during login or xscreensaver does when configured as mentioned above (pre-fix).  So, if I start a Gnome app launcher that is prepended with gksudo, nothing appears to happen until I swipe my finger and then the app gets launched.  That's cool and all, but there are times (esp. when multi-tasking) when I forget to swipe and then go &amp;quot;what happened to xxxxx? oh yeah...&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Anyway... does anyone have an idea of what I can do to get the dialog to appear?&lt;br /&gt;
&lt;br /&gt;
thanx&lt;br /&gt;
&lt;br /&gt;
--[[User:JELaVallee|JELaVallee]] 05:56, 20 February 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
The gksudo problem is a restriction from the X server. It doesn't allow to grab the display for other users than the logged-in one. And the pam_bioapi is invoked as root.&lt;br /&gt;
&lt;br /&gt;
--[[User:Whoopie|Whoopie]] 13:10, 20 February 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
That makes sense... so, now I have to wonder, is there a patchable work-around like the xscreensaver one that could allow for this to work?  Where should I research such?  gksu's project or is this more an issue at the X11-level?&lt;br /&gt;
&lt;br /&gt;
--[[User:JELaVallee|JELaVallee]] 19:38, 27 February 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
I got it working. Grab out the newer pam-bioapi from CVS (http://savannah.nongnu.org/cvs/?group=pam-bioapi). This version supports &amp;quot;multi-finger&amp;quot; when using the sqlite3 database. And it supports defining the used display.&lt;br /&gt;
Change your line in your /etc/pam.d/ files like this:&lt;br /&gt;
&lt;br /&gt;
auth            sufficient      pam_bioapi.so   {5550454b-2054-464d-2f45-535320425350}  /etc/bioapi/pam/bioshadow.db :0&lt;br /&gt;
&lt;br /&gt;
--[[User:Whoopie|Whoopie]] 14:27, 1 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
Very cool... Did you run into any issues rebuilding/installing this?  I'll give it a shot this evening... THANKS!&lt;br /&gt;
&lt;br /&gt;
--[[User:JELaVallee|JELaVallee]] 21:07, 1 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
Invoke 'xhost +local:' should be able to let gksudo work. Or just blindly sweap the finger. ;)&lt;br /&gt;
&lt;br /&gt;
--[[User:YChao|YChao]] 21:25, 7 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
== Multifinger ==&lt;br /&gt;
&lt;br /&gt;
Wow, theres a new version of pam_bioapi which supports multifinger enrollment and user identification.&lt;br /&gt;
I'll break my system with that this evening :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Yes, but I'm searching the patch for xdm. The download page from Josef Hajas (http://nax.hn.org/pub/bioapi/) is down. Does anybody have it?&lt;br /&gt;
&lt;br /&gt;
Update: The patch can be found here: http://www.qrivy.net/~michael/blua/xdm_bio.patch&lt;br /&gt;
&lt;br /&gt;
--[[User:Whoopie|Whoopie]] 17:43, 1 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
Tried the newest pam-bioapi from CVS (http://savannah.nongnu.org/cvs/?group=pam-bioapi) on FC3. Failed on enrolling fingerprints: ({{path|/var/log/secure|}})&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Mar  9 15:30:40 localhost pam_bioapi[32407]: Can't open database: library routine called out of&lt;br /&gt;
sequence&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Could anyone help?&lt;br /&gt;
&lt;br /&gt;
--[[User:Ychao|Ychao]] 00:38, 10 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
I don't know how to solve it. It seems to be a problem with sqlite3. Which version do you use? Under Ubuntu Breezy, it's 3.2.1.&lt;br /&gt;
&lt;br /&gt;
--[[User:Whoopie|Whoopie]] 12:27, 10 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Did anybody tried multifinger with BioAPI? I am interested in multifinger at all, not only PAM.&lt;br /&gt;
&lt;br /&gt;
Updated:&lt;br /&gt;
&lt;br /&gt;
succesfully installed pam_bioapi with multifinger support, some info:&lt;br /&gt;
&lt;br /&gt;
use: &amp;lt;code&amp;gt;auth sufficient pam_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi/pam/bioshadow.db :0&amp;lt;/code&amp;gt; in pam.d, the bioshadow column is path to bioapi sqlite database.&lt;br /&gt;
&lt;br /&gt;
if authentication doesn't work, edit /etc/syslog.conf and write line *.alert /var/log/syslog, so you see pam_bioapi messages in /var/log/syslog&lt;br /&gt;
most common error is missing biodata table, newest pam_bioapi version should create it automatically, but if it doesn't, go to /etc/bioapi/pam/ and run command &amp;lt;code&amp;gt;sqlite3 bioshadow.db&amp;lt;/code&amp;gt;, then insert this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;CREATE TABLE biodata (id INTEGER PRIMARY KEY,uid INTEGER,uuid TEXT,header BLOB,data BLOB,signature BLOB,type INTEGER,other BLOB);&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you must then enroll at least one fingerprint to the database, do it using test_enroll-pam_bioapi from pam_bioapi distribution. note that you must have root user enrolled in order to use &amp;lt;code&amp;gt;su&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
--[[User:MeBa|MeBa]] 16:58, 22 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
== GNOME Screensaver support ==&lt;br /&gt;
&lt;br /&gt;
Did anybody try to port the xscreensaver patch to gnome-screensaver? Since Ubuntu Dapper will be shiped with it, it would be nice to have it working then with the fingerprint reader.&lt;br /&gt;
&lt;br /&gt;
Update: Initial support can be found in gnome-screensaver CVS. See [http://bugzilla.gnome.org/show_bug.cgi?id=338635 bugreport].&lt;br /&gt;
&lt;br /&gt;
--[[User:Whoopie|Whoopie]] 12:36, 16 March 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
I'm just working on changes in pam_bioapi which makes gui callbacks from gnome-screensaver possible. But first I have to debug BioAPI error #194d after hibernation because gnome-screensaver is one of the applications returning this error.&lt;br /&gt;
&lt;br /&gt;
--[[User:Nax|nax]] 23:59, 9 July 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== No sources for bioapi 1.2.3 ==&lt;br /&gt;
&lt;br /&gt;
There doesn't seem to be any sources available for the recommended Debian package bioapi-1.2.3.  That's rather distressing since this is security-related software.  A google search doesn't seem to be turning up anything, either.  Anybody have a lead on where to find sources?&lt;br /&gt;
&lt;br /&gt;
--[[User:TedTso|TedTso]] 7:47, 29 Apri 2006 (EDT)&lt;br /&gt;
&lt;br /&gt;
== Strange issue on GDM login ==&lt;br /&gt;
&lt;br /&gt;
I successfully have the fingerprint reader running. Everything is working nicely, except when I try to login with GDM for the first time. The login seems to work fine (the PAM_BIOAPI seems to return true) but GDM hangs then. This issue does not occur when I already logged in using password and logged out again or if I kill GDM when it hangs after the first attempt. Anyone an idea on this?&lt;br /&gt;
&lt;br /&gt;
--[[User:Dotxp|dotxp]] 22:54, 2 May 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Don't ask for finger scan when lid closed ==&lt;br /&gt;
&lt;br /&gt;
When using an external CRT+keyboard+mouse with the LD lid closed, it's quiet annoying to have to reach over and open the lid in order to do a finger scan.&lt;br /&gt;
Any idea how to make PAM use the fingerprint reader when the lid is open, but skip it when the lid is closed?&lt;br /&gt;
&lt;br /&gt;
--[[User:Thinker|Thinker]] 13:30, 7 May 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
I edited my /etc/gdm/Init/Default script in a way, that it changes /etc/pam.d/common-auth depending on the lid state: When the lid is closed, the file is replaced by a version without the lines for the finterprint reader, and of course the opposite action when the lid is open.&lt;br /&gt;
&lt;br /&gt;
--[[User:Aerials|Aerials]] 15:52, 9 July 2006 (CEST)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Unable to initialize Bioapi framework, BioAPI error #:3 ==&lt;br /&gt;
&lt;br /&gt;
I see some other discussion on this page about the dreaded &amp;quot;Unable to initialize Bioapi framework, BioAPI error #:3&amp;quot; error, but the only solution i can see seems really complicated -- adding users to groups when they log in, etc. Is that really the simplest way to make xscreensaver work? I'm the only user of my laptop -- the only account who will ever log in, the only fingerprint in the database, the only person who will ever run xscreensaver. Is there some quick easy way to make xscreensaver unlock when i swipe my finger?&lt;br /&gt;
&lt;br /&gt;
-- [[User:Mike Schiraldi|Mike Schiraldi]] 19:52, 16 May 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
== Security level ==&lt;br /&gt;
&lt;br /&gt;
[http://www.upek.com/support/pdf/BioAPI_PerfectMatchBSP1.7.pdf UPEK PerfectMatch Algorithm]&lt;br /&gt;
According to this link, highest security level is 0 which is opposite to 5 mentioned in the article. What is correct?&lt;br /&gt;
&lt;br /&gt;
Update: Well,TFMESS_BSP_LIN.pdf, i downloaded somewhere stated 5 as highest security level. So, ?&lt;/div&gt;</summary>
		<author><name>Nax</name></author>
		
	</entry>
</feed>