Comment 20 for bug 1101647

Denys (frasinich) wrote :

So, there is way to set it up with propriethal drive... only for 64bit systems.

We need driver:
h20565.www2.hp.com/portal/site/hpsc/template.PAGE/public/psi/swdHome?javax.portlet.begCacheTok=com.vignette.cachetoken&javax.portlet.endCacheTok=com.vignette.cachetoken&javax.portlet.prp_bd9b6997fbc7fc515f4cf4626f5c8d01=wsrp-navigationalState%3DswEnvOID%253D2020%257CswLang%253D%257Caction%253DlistDriver&javax.portlet.tpst=bd9b6997fbc7fc515f4cf4626f5c8d01&sp4ts.oid=5229459&ac.admitted=1397379248506.876444892.492883150#Driver%20-%20Scanner

SLED libfprint source:
http://suse.mes.edu.cu/SLES_11_SP2/CD2/suse/src/libfprint-0.0.6-18.20.1.src.rpm

fprint_demo:
http://sourceforge.net/projects/fprint/files/fprint_demo/v0.4/

pam module:
http://sourceforge.net/projects/fprint/files/pam_fprint/v0.2/

First, we need to convert with alien rpm driver package to deb and install it.
After that we need to make some symlinks to start vcsFPServiceDaemon.
Here is my (i`m debian sid user):

sudo ln /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 /usr/lib/libssl.so.0.9.8
sudo ln /usr/lib/libcryptopp.so.9 /usr/lib/libcrypto.so.0.9.8

Also we need to edit init script. Somthing like that:

#!/bin/sh
### BEGIN INIT INFO
# Provides: Validity Fingerprint Service Daemon
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 5
# Default-Stop: 0 6
# Short-Description: Validity Fingerprint Service Daemon
# Description: Start vcsFPService to provide Validity FP Service
### END INIT INFO
#
# Note on runlevels:
# 0 - halt/poweroff 6 - reboot
# 1 - single user 2 - multiuser without network exported
# 3 - multiuser w/ network (text mode) 5 - multiuser w/ network and X11 (xdm)
#

. /lib/lsb/init-functions

vcsFPService_BIN=/usr/bin/vcsFPService
test -x $vcsFPService_BIN || { echo "$vcsFPServiceDaemon is not installed";
 if [ "$1" = "stop" ]; then exit 0;
 else exit 5; fi; }

case "$1" in
    start)
 echo -n "Starting vcsFPService Daemon \n"
 start-stop-daemon --start --background --quiet --exec "$vcsFPService_BIN" > /dev/null 2 >&1

 ;;
    stop)
 echo -n "Stopping vcsFPService Daemon \n"

 #/sbin/killall -TERM $vcsFPService_BIN
 start-stop-daemon --stop --quiet --quiet --oknodo --retry=0/1/KILL/5 --exec "$vcsFPService_BIN" > /dev/null 2 >&1

 ;;
    status)
 echo "Checking for vcsFPService Daemon \n"

 if pidof -o %PPID $vcsFPService_BIN> /dev/null; then
  echo "client is running. \n"
  exit 0
 else
  echo "client is not running. \n"
  exit 1
 fi
 ;;
    *)
 echo "Usage: $0 {start|stop|status}"
 exit 1
 ;;
esac

exit 0

So, we had vcsFPServiceDaemon working and starting, when system booting.
lets do other packages. First of all, delete yuor system packages

And unpack sles sources and appaly validity patch
patch -p1 < <libfprint-validity.patch location>

after that you nid
./configure --prefix=/usr
make
sudo checkinstall -install=no make install

instal your package if evrything go fine. Also, you can make examples, witch comes with libfprint sources
 and try yor sensor (WARNING! vcsFPServiceDaemon must be started)

After that yuo need to compile fprint_demo and pam module, make packages and install it.

Than change yor /etc/pam.d/common-auth
Somthing like that

auth sufficient pam_unix.so nullok_secure
auth sufficient pam_fprint.so

(first you will be asked as password and if it fails (just hit enter) you will be asked a finger)

To enroll users finger call command

pam_fprint_enroll

from users, what you want to register.

Works fine with dibian sid and kde.