VFS 495指纹读取器无法在Ubuntu中工作

我有HP Probook 450,它集成了Validity Inc.的指纹识别器VFS 495.我有来自惠普网站的Linux驱动程序。 现在我想让它在Ubuntu中运行。 驱动程序是rpm格式,所以我使用外来转换器将其转换为deb包然后安装。

链接到HP驱动程序页面: 驱动程序

仅供参考:此驱动程序包包含一些fprint包装器库,并且还有一个文件HPUsbVFS495.img,但我无法弄清楚它是如何工作的。

输出lspci && lsusb

 00:00.0主机桥:英特尔公司第三代核心处理器DRAM控制器(rev 09)
 00:02.0 VGA兼容控制器:英特尔公司第三代核心处理器图形控制器(rev 09)
 00:14.0 USB控制器:英特尔公司7系列/ C210系列芯片组系列USB xHCI主机控制器(转04)
 00:16.0通信控制器:英特尔公司7系列/ C210系列芯片组家庭MEI控制器#1(转04)
 00:1a.0 USB控制器:英特尔公司7系列/ C210系列芯片组系列USB增强型主机控制器#2(转04)
 00:1b.0音频设备:Intel Corporation 7系列/ C210系列芯片组家族高清晰度音频控制器(rev 04)
 00:1c.0 PCI桥:英特尔公司7系列/ C210系列芯片组家族PCI Express根端口1(rev c4)
 00:1c.2 PCI桥接器:英特尔公司7系列/ C210系列芯片组家族PCI Express根端口3(rev c4)
 00:1c.3 PCI桥接器:英特尔公司7系列/ C210系列芯片组家族PCI Express根端口4(rev c4)
 00:1c.5 PCI桥接器:英特尔公司7系列/ C210系列芯片组家族PCI Express根端口6(rev c4)
 00:1d.0 USB控制器:英特尔公司7系列/ C210系列芯片组系列USB增强型主机控制器#1(转速04)
 00:1f.0 ISA网桥:英特尔公司HM76高速芯片组LPC控制器(转04)
 00:1f.2 SATA控制器:英特尔公司7系列芯片组家族6端口SATA控制器[AHCI模式](转速04)
 02:00.0未指定类[ff00]:Realtek Semiconductor Co.,Ltd。RTS5229 PCI Express读卡器(rev 01)
 03:00.0网络控制器:Ralink corp。  RT3290无线802.11n 1T / 1R PCIe
 03:00.1蓝牙:Ralink corp。  RT3290蓝牙
 04:00.0以太网控制器:Realtek Semiconductor Co.,Ltd。RTL8111 / 8168/8411 PCI Express千兆以太网控制器(rev 0c)
总线002设备002:ID 8087:0024英特尔公司综合速率匹配中心
总线002设备001:ID 1d6b:0002 Linux Foundation 2.0根集线器
总线001设备004:ID 04ca:7022 Lite-On Technology Corp. 
总线001设备003:ID 138a:003f Validity Sensors,Inc。 
总线001设备002:ID 8087:0024英特尔公司综合速率匹配中心
总线001设备001:ID 1d6b:0002 Linux Foundation 2.0根集线器
总线004设备001:ID 1d6b:0003 Linux Foundation 3.0根集线器
公交车003设备002:ID 09da:c10a A4 Tech Co.,Ltd 
总线003设备001:ID 1d6b:0002 Linux Foundation 2.0根集线器

我按照本指南在16.04上的这台机器上工作但是链接有一些问题所以这就是我所做的……

(首先你可能想导航到一个空文件夹,因为我们会做一些下载和编译和转换。文件将全部到位)

 mkdir temporary cd ./temporary 

现在我们已经创建了一个文件夹并导航到它,我们可以继续……

首先下载并将其放在空文件夹中。

该指南很长,但它的好处在于,如果您按顺序执行它,它应该可以工作。 如果你不明白发生了什么,只需一个接一个地复制和粘贴这些行(或在评论中提问)

安装驱动程序:

 tar xf vfs495.tar cd vfs495 sudo apt install alien sudo alien Validity-Sensor-Setup-4.5-118.00.x86_64.rpm sudo dpkg -i validity-sensor-setup_4.5-119_amd64.deb 

现在破碎的链接部分。 以下是应该起作用的链接:

 sudo apt install libssl1.0.0 ln -s /lib/x86_64-linux-gnu/libssl.so.1.0.0 /lib/x86_64-linux-gnu/libssl.so.0.9.8 sudo apt-get install libcrypto++-dev ln -s /usr/lib/libcrypto++.so.9 /usr/lib/libcrypto.so.0.9.8 

然后继续。 安装libfprint

 mkdir libfprint cd libfprint rpm2cpio ../libfprint-0.0.6-18.20.1.src.rpm | cpio -i --make-directories tar xf libfprint-0.0.6.tar.bz2 cp ../libfprint-validity.patch ./libfprint-validity.patch cd libfprint-0.0.6/ patch -p1 < ../libfprint-validity.patch sudo apt-get install libusb-dev libcrypto++-dev libssl-dev libglib2.0-dev libmagickcore-dev checkinstall ./configure --prefix=/usr make sudo checkinstall -install=no make install sudo dpkg -i libfprint_0.0.6-1_amd64.deb 

安装fprint_demo

 cd ../.. sudo apt-get install libgtk2.0-dev tar xf fprint_demo-0.4.tar.bz2 cd fprint_demo-0.4 ./configure --prefix=/usr make sudo checkinstall -install=no make install sudo dpkg -i fprint-demo_0.4-1_amd64.deb 

此时我们可以开始注册我们的手指了。

 sudo /etc/init.d/vcsFPServiceDaemon start sudo fprint_demo 

...在您注册手指后,您可以在“识别”选项卡中进行训练。 它会显示你的指纹! 它非常有趣:D有时候我会去那里继续刷XD

只是旁注,不要截取你的手指截图并分享它, 除非你当然知道你在做什么。 您的指纹很有价值。 最好只为你的眼睛保持它。

......无论如何,继续。 安装pam_fprint

 cd .. tar xf pam_fprint-0.2.tar.bz2 cd pam_fprint-0.2/ sudo apt-get install libpam-dev ./configure --prefix=/usr make sudo checkinstall -install=no make install sudo dpkg -i pam-fprint_0.2-1_amd64.deb 

现在我们可以开始设置指纹认证了。 我建议你到此为止,因为我已经使用了一段时间,并且有几个问题。 到目前为止,你的司机正在工作,这很好。 您可以尝试进行身份validation并根据需要进行还原,但它不适合日常使用。

无论如何,我们需要编辑/etc/pam.d/common-auth文件。 小心这个文件!! 。 如果搞砸了,你必须从恢复模式修复它。

这将使ubuntu要求您提供指纹或密码,以授予您root访问权限和登录权限。 所以你仍然可以使用你的密码登录

 sudo nano /etc/pam.d/common-auth 

我们需要添加以下行:

 # fingerprint authentication through fprintd auth sufficient pam_fprint.so 

并修改具有pam_unix.so nullok_secure try_first_pass以使其足够,如下所示:

 auth sufficient pam_unix.so nullok_secure try_first_pass 

所以最后这是我的文件的样子 。

请注意,行为将取决于您放置线的位置。 如果将它们放在上面(“主要”块)部分,它将首先询问您的指纹,然后是密码,反之亦然。

我希望有人可以澄清或给出一个关于这个文件究竟如何工作的好指针。

最后...

 cd .. sudo cp vcsFPServiceDaemon /etc/init.d/ sudo update-rc.d vcsFPServiceDaemon defaults 

事情应该有效。