[分享]ubuntu下使用T43的指纹识别设备

笔记本/便携移动设备,手机平板等软硬件
wolfg
帖子: 27
注册时间: 2006-08-18 22:49
来自: 梨树
联系:

[分享]ubuntu下使用T43的指纹识别设备

#1

帖子 wolfg » 2006-08-21 16:06

参照这个Howto设置了T43上的指纹识别设备,在登录GDM时可以刷指纹了。

1. 安装bioapi framework

http://www.qrivy.net/~michael/temp/ 下载bioapi_1.2.3_i386.deb
$ sudo dpkg -i bioapi_1.2.3_i386.deb
不用理会出现的"Ignore the warning about not finding /usr/lib/libqtpwbsp.so"这个错误信息,

用ldconfig命令验证
$ ldconfig -p |grep bioapi
我这里的输出是:
libbioapi100.so.0 (libc6) => /usr/lib/libbioapi100.so.0
libbioapi100.so (libc6) => /usr/lib/libbioapi100.so
libbioapi_mds300.so.0 (libc6) => /usr/lib/libbioapi_mds300.so.0
libbioapi_mds300.so (libc6) => /usr/lib/libbioapi_mds300.so
libbioapi_dummy100.so.0 (libc6) => /usr/lib/libbioapi_dummy100.so.0
libbioapi_dummy100.so (libc6) => /usr/lib/libbioapi_dummy100.so
2. 安装并配置指纹识别设备的驱动

2.1 安装驱动

http://www.upek.com/support/dl_linux_bsp.asp 下载TFMESS_BSP_LIN_1.0.zip
$ unzip TFMESS_BSP_LIN_1.0.zip -d tfmess

$ cd tfmess

$ sudo sh install.sh /usr/lib
2.2 配置权限使非root用户也可以使用
$ sudo addgroup –system bioapi
$ sudo addgroup –system usbfs
$ sudo adduser yournormaluser bioapi
$ sudo adduser yournormaluser usbfs
把yournormaluser换成你的用户名。

ubuntu Dapper使用了udev,所以按照howto里说的,修改/etc/udev/permissions.rules,添加一行
SUBSYSTEM=="usb_device", MODE="0660", GROUP="usbfs"
2.3 用TFMESS_BSP_LIN_1.0.zip带的工具测试
$ cd tfmess

$ cd NonGUI_Sample

$ vi main.c
注释掉这行 #include "port/bioapi_port.h"
$ gcc -o Sample main.c -L/usr/local/lib -lbioapi100 -DUNIX -DLITTLE_ENDIAN
应该有一个叫Sample的程序生成。用root身份运行这个程序
$ sudo ./Sample
出现一个菜单:
e .. Enroll
v .. Verify
m .. Verify Match
c .. Capture and Create Template
q .. quit
输入e,再按照提示给出你的用户名后就会出现一个输入指纹的小窗口,连续刷3次,你的指纹就录入到文件中了,文件名是你的用户名+.bir

输入v是检验已输入的指纹。


3. 安装pam_bioapi

下载 http://www.nax.cz/pub/bioapi/pam_bioapi ... 3.0.tar.gz
$ sudo apt-get install libpam0g-dev

$ sudo apt-get install sqlite3 libsqlite3-dev

$ tar xvzf pam-bioapi_0.3.0.tar.gz

$ cd pam-bioapi

$ ./configure –libdir=/lib && make

$ sudo make install
下面要取得指纹设备的序列号用来设置pam
$ SERIAL=`sudo BioAPITest | sed -ne "/Fingerprint/{n;n;s/^.*: \(.\{9\}\)\(.\{4\}\)\(.\{4\}\)\(.\{4\}\)\(.*\)/\1-\2-\3-\4-\5/gp}"`

$ echo $SERIAL
结果是像这样的一串字符 {5550454b-2054-464d-2f45-535320425350}

修改/etc/pam.d/gdm

把 @include common-auth 这行替换成下面两行,其中第一行中的第四列就是前面那个$SERIAL的值。
auth sufficient pam_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi/pam/biopasswd.db :0
auth required pam_unix.so nullok_secure
更新:要改成下面这样(原因见本帖8楼,10楼)
auth sufficient pam_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi/pam/biopasswd.db
password sufficient pam_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi/pam/biopasswd.db
auth required pam_unix.so nullok_secure
然后用root身份执行test_enroll-pam_bioapi命令(在/usr/local/bin下)来保存用户对应的指纹信息。
$ sudo test_enroll-pam_bioapi
完成后,/etc/bioapi/pam下应该生成一个biopasswd.db的SQLite数据库文件,可以用sqlite3命令查看。
$ sudo sqlite3 /etc/bioapi/pam/biopasswd.db

sqlite> .schema
CREATE TABLE biodata (id INTEGER PRIMARY KEY,uid INTEGER,uuid TEXT,header BLOB,data BLOB,signature BLOB,type INTEGER,other BLOB);
sqlite> select count(*) from biodata;
3
sqlite> .quit
如果没有生成,就用sqlite3命令手工建立这个数据库。
$ sudo sqlite3 /etc/bioapi/pam/biopasswd.db

sqlite> CREATE TABLE biodata (id INTEGER PRIMARY KEY,
uid INTEGER,
uuid TEXT,
header BLOB,
data BLOB,
signature BLOB,
type INTEGER,
other BLOB);
sqlite> .quit
可以多次执行test_enroll-pam_bioapi命令为一个用户关联多个指纹。用test_verify-pam_bioapi命令验证指纹。

也可以安装pamtester针对某个pam service进行测试。
$ sudo pamtester gdm guoyong authenticate
没有问题的话,就可以退出Gnome测试一下了。

对于屏保解锁,目前只有针对xscreensaver的patch,需要重新编译xscreensaver。我试着编译了5.0的,发现解锁时还是要先输入字符到密码对话框,然后才验证指纹。目前还没有针对Gnome-screensaver的patch,所以就暂时放弃了。http: //bugzilla.gnome.org/show_bug.cgi?id=338635 这里有一些有关的讨论。
附件
bioapi_enroll1.jpeg
上次由 wolfg 在 2006-08-23 23:27,总共编辑 2 次。
头像
Beetle
帖子: 1637
注册时间: 2005-10-14 16:55
系统: OS X
来自: 江苏
联系:

#2

帖子 Beetle » 2006-08-21 16:13

收藏了,以后留用!

PS:对外置的也能支持?!
wolfg
帖子: 27
注册时间: 2006-08-18 22:49
来自: 梨树
联系:

#3

帖子 wolfg » 2006-08-21 16:27

Beetle 写了:收藏了,以后留用!

PS:对外置的也能支持?!
不太清楚。不过感觉它把指纹设备也当成一个usb设备。
flyinwind
帖子: 69
注册时间: 2006-06-06 16:55

#4

帖子 flyinwind » 2006-08-21 16:34

哇塞,楼主这个贴子太好了,

前段时间自己找到过一个IBM本本各类设备在linux下如何使用的国外网站,看了一点,最后还是没耐心,
有楼主这个,晚上回去试试呼
flyinwind
帖子: 69
注册时间: 2006-06-06 16:55

#5

帖子 flyinwind » 2006-08-21 16:38

呵,打开了顶楼的那个HOWTO网址,果然和偶前段时间找到的是同一个网站咯,看来偶还是不够敬业,水平和耐心都米有楼主高
wolfg
帖子: 27
注册时间: 2006-08-18 22:49
来自: 梨树
联系:

#6

帖子 wolfg » 2006-08-21 16:39

flyinwind 写了:哇塞,楼主这个贴子太好了,

前段时间自己找到过一个IBM本本各类设备在linux下如何使用的国外网站,看了一点,最后还是没耐心,
有楼主这个,晚上回去试试呼
www.thinkwiki.org 这个网站吗?
我就是参考它上面的howto做的。

不过,我现在还没搞定 红外 和 外置的usb 蓝牙。想用这些设备连我的手机啊。我用手机拍了GDM的指纹登录画面,没法传到笔记本里,呵呵。
flyinwind
帖子: 69
注册时间: 2006-06-06 16:55

#7

帖子 flyinwind » 2006-08-21 17:11

嗯,就是这个网址乐,既然楼主能配出指纹验证,根据下面链接里介绍的内容也能把红外用起来吧,哈 ,就算偶以前在windows下面也米用到红外和手机传数据,所以具体的偶帮不上忙咯
http://www.thinkwiki.org/wiki/How_to_make_use_of_IrDA

下面是这里有位大人贴出来滴,看看能不能参考得上
viewtopic.php?t=18877
wolfg
帖子: 27
注册时间: 2006-08-18 22:49
来自: 梨树
联系:

#8

帖子 wolfg » 2006-08-23 22:00

#

刚才添加一个新用户,已经添加到了bioapi和usbfs这两个组。想用test_enroll-pam_bioapi创建指纹,报错:
Xlib: connection to “:0.0″ refused by server
Xlib: No protocol specified


还有,现在执行sudo test_enroll-pam_bioapi 也不能注册新的指纹了,只是提示输入口令,不知道哪里有问题了?

更新:找到原因了,见10楼。
上次由 wolfg 在 2006-08-23 23:23,总共编辑 1 次。
flyinwind
帖子: 69
注册时间: 2006-06-06 16:55

#9

帖子 flyinwind » 2006-08-23 22:20

呵呵,和我前天晚上弄的结果一样了,当时来回弄了好几次,前面的步骤都成功,最后sudo test_enroll-pam_bioapi的时候只是让我输入用户名、口令,输完显示个success然后直接就退出命令结束了,郁闷
wolfg
帖子: 27
注册时间: 2006-08-18 22:49
来自: 梨树
联系:

#10

帖子 wolfg » 2006-08-23 23:22

flyinwind 写了:呵呵,和我前天晚上弄的结果一样了,当时来回弄了好几次,前面的步骤都成功,最后sudo test_enroll-pam_bioapi的时候只是让我输入用户名、口令,输完显示个success然后直接就退出命令结束了,郁闷
找到原因了:
1. Xlib错误,是因为pam_bioapi.so指定了DISPLAY参数,就是最后面的:0,gdm是不需要这个的(xdm可能需要),所以要改成
auth sufficient pam_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi/pam/biopasswd.db
2. 不能enroll新指纹的原因是/etc/pam.d/comm-auth(或者/etc/pam.d/gdm,看你怎么改的了,不要影响ssh等pam设置就行,具体可以参考那个howto)里还要加上一句
password sufficient pam_bioapi.so {5550454b-2054-464d-2f45-535320425350} /etc/bioapi/pam/biopasswd.db

呵呵,是我1楼没写清楚,可能是因为我先试了pam-bioapi 0.2.1,又改成0.3.0,完了回忆配置过程时疏忽了,幸好自己又碰上了,不然就误导各位朋友了。
wolfg
帖子: 27
注册时间: 2006-08-18 22:49
来自: 梨树
联系:

#11

帖子 wolfg » 2006-08-24 10:03

再更正一下,还是修改comm-auth这个文件吧,如果你改的是gdm,不知道enroll会不会有问题。
wolfg
帖子: 27
注册时间: 2006-08-18 22:49
来自: 梨树
联系:

#12

帖子 wolfg » 2006-08-24 23:38

发几张指纹登录的照片上来。用手机照的,呵呵,现在可以用蓝牙或红外了
附件
20060824074.jpg
20060824075.jpg
Image011.jpg
Image012.jpg
flyinwind
帖子: 69
注册时间: 2006-06-06 16:55

#13

帖子 flyinwind » 2006-08-25 7:51

哈,可以了,
多谢楼主呵
boswell_young
帖子: 2
注册时间: 2006-09-01 21:38

#14

帖子 boswell_young » 2006-09-01 22:03

我执行test_enroll-pam_bioapi设置过指纹之后
在/etc没有bioapi这个文件夹
请问是怎么回事啊 谢谢
flyinwind
帖子: 69
注册时间: 2006-06-06 16:55

#15

帖子 flyinwind » 2006-09-01 22:31

自己建,然后按上面说的自己creat TABLE,接着再执行test_enroll-pam_bioapi
回复