29 de des. 2007

thinkfinger lenovo 3000 v100

Tras mucho buscar por la red he encontrado la web de un gavacho que tenia en su portátil el mismo lector de huella dactilar, así que lo he seguido y ahora tengo el lector de huellas dactilares funcionando :D

si consideráis que me explico fatal aquí tenéis la versión original en francés, pero weno, intentaré hacerlo lo mejor que pueda en castellano:

http://www.geekplanet.fr/index.php?option=com_content&task=view&id=25&Itemid=35

Anteriormente he hecho algunas pruebas con otro driver pero no funcionaba, no reconocía el dispositivo, así que la siguiente uri no es válida:

http://thinkfinger.sourceforge.net/

Para instalar este dispositivo necesitaremos algunos paquetes.

libusb-dev:
# apt-get install libusb-dev

Imagemagick:
ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz

Lo descargamos y lo instalamos

# tar xvzf ImageMagick.tar.gz
# cd ImageMagick-6.3.7
# ./configure --prefix=/usr
# make
# make install

Fprint:
La web del proyecto es la siguiente
http://www.reactivated.net/fprint

y aquí se encuentran los ficheros a descargar
http://sourceforge.net/project/showfiles.php?group_id=208521

Los bajamos todos, los descomprimimos y los instalamos, en este orden

# cd libfprint-0.0.5
# ./configure --prefix=/usr
# make
# make install

nos fijamos si en /usr/lib/pkgconfig/ se ha copiado libfprint.pc, si no es así, lo copiamos
# cp libfprint.pc /usr/lib/pkgconfig/

seguimos con pam_fprint
# cd pam_fprint-0.2
# ./configure --prefix=/usr
# make
# make install

y luego con fprint_demo, el programa para gestionar las huellas
# cd fprint_demo-0.4
# ./configure --prefix=/usr
# make
# make install

si en algun momento da algun problema de librerías probar con:

# ldconfig

o

# ln -s /usr/local/lib/libWand.so.10 /usr/lib/libWand.so.10
# ln -s /usr/local/lib/libMagick.so.10 /usr/lib/libMagick.so.10

luego ejecutamos como root

# fprint_demo

si todo ha ido bien, se abre una pantallita con muchos botones, en la parte inferior podemos ver si nos ha detectado correctamente el lector de huellas dactilares.

En mi caso me aparece:
Authentec AES1610

si hacemos un lsusb podemos ver esto:
# lsusb
Bus 004 Device 003: ID 08ff:1600 AuthenTec, Inc.

Si pulsamos en uno de los botones nos saldrá una ventana dónde nos pide de pasar el dedo por el lector, por primera vez mi linux ha leído mi dedo! por fin sabe como soy!

Vale, ahora sólo falta decirle a gnome que tenemos un lector de huellas dactilares para autentificarnos.

# vi /etc/pam.d/gdm
auth requisite pam_nologin.so
auth required pam_env.so readenv=1
auth required pam_env.so readenv=1 envfile=/etc/default/locale
auth sufficient pam_fprint.so

y añadimos la última linea referente a pam_fprint.so, debajo hay mas cosas, por si las moscas, no tocar. :P

También añadiremos estas líneas en /etc/pam.d/common-auth para que nos pide el dedo al autentificar como usuario.

auth sufficient pam_fprint.so
auth required pam_unix.so nullok_secure #esta linea ya existe

Ahora añadimos una huella a pam_fprint:

# pam_fprint_enroll --enroll-finger 7
con esto le estamos indicando que le vamos a pasar el dedo numero 7, que es el dedo índice de la mano derecha (si, el de las burillas), adivinad cuales son los numeros de los otros dedos...

De momento sólo he podido hacer funcionar el programa de captura con el usuario root, es decir que con mi usuario no tengo ninguna huella activa así que no he podido probar aún la entrada en gdm.

mas información:
http://www.madman2k.net/comments/105

Solución para que el usuario no root pueda usar pam_fprint_enroll

Al usar este programa se accede a /dev/bus/usb/00* pero nuestro usuario no tiene permiso para leer estos ficheros así que deberemos definir un grupo al que nuestro usuario pertenezca para poderlo hacer, estos ficheros cada vez que se inicia el sistema se les definen los permisos, así que deberemos definir los permisos de estos ficheros desde udev.
# ls -l /dev/bus/usb/00*

me han dicho que antes cuando se quería montar algo manualmente se tenían que editar estos ficheros! y con un programa no tan user-friendly como este que tiene ficheros de configuración y tal.

# touch /etc/udev/rules.d/fprint.rules
# vi /etc/udev/rules.d/fprint.rules
SUBSYSTEM=="usb_device", MODE="0664", GROUP="plugdev"

también debemos asegurarnos que nuestro usuario está en el grupo plugdev, podemos mirarlo de 2 formas

$ groups
laura adm dialout cdrom floppy audio dip video plugdev scanner netdev lpadmin powerdev admin vboxusers

$ cat /etc/group |grep plugdev
plugdev:x:46:haldaemon,laura

Hasta aquí tenemos ya el programa funcionando, pero ahora nos encontramos que nuestro usuario al grabar la huella no tiene permisos para leerla, porqué el programa usa en algun momento el usuario root para guardar la huella.

Nuestras huellas se guardan en:
~/.fprint/prints/0006/00000000

así que deberemos fijarnos que nuestro usuario tiene derechos de lectura, escritura y ejecución en este directorio y los otros usuarios no lo tienen.

Con esto ya tenemos mas o menos funcionando el fingerprint!

2 comentaris:

Anònim ha dit...

hola me gusta esta pagina tiene buenasrespuestaspero no encontre la q necesito, compre mi hp bueno no me acuerdo q modelo es,pero le active el sistema de huella para iniciar seccion y todo eso, pero cuando quiero vajar unprograman no puedo me sale el lector de huella. y al pasar mi dedo no responde y no da ninguna solucion, sera q me pueden ayudar por favor, que debo hacer

Blackhold ha dit...

¡oygan!

una propuesta, haz un lspci o un lsusb y pega la línea de la salida de tu hardware fingerprint al google. Ahí fijo encuentras lo que debes hacer.

Publica un comentari a l'entrada