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

发布于 2022-07-19 20:37:04 字数 5606 浏览 24 评论 0

参照这个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是检验已输入的指纹。

bioapi_enroll1.jpeg (46.75 KB, 下载次数: 1)

下载附件

2006-08-21 16:30 上传



3. 安装pam_bioapi

下载 http://www.nax.cz/pub/bioapi/pam_bioapi/pam-bioapi_0.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

然后用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 这里有一些有关的讨论。

[ 本帖最后由 wolfg 于 2006-8-21 16:31 编辑 ]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文