VFS 495 指纹读取器在 Ubuntu 中不起作用

Ali*_*waz 12 rpm fingerprint-reader deb drivers alien

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

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

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

的输出lspci && lsusb

00:00.0 主桥:英特尔公司第三代核心处理器 DRAM 控制器(修订版 09)
00:02.0 VGA 兼容控制器:英特尔公司第三代核心处理器图形控制器(修订版 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 音频设备:英特尔公司 7 系列/C210 系列芯片组家族高清晰度音频控制器(修订版 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 读卡器(修订版 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 Gigabit Ethernet Controller (rev 0c)
总线 002 设备 002:ID 8087:0024 英特尔公司集成速率匹配集线器
总线 002 设备 001:ID 1d6b:0002 Linux Foundation 2.0 根集线器
总线 001 设备 004:ID 04ca:7022 光宝科技 
总线 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 根集线器
Bus 003 Device 002: ID 09da:c10a A4 Tech Co., Ltd 
总线 003 设备 001:ID 1d6b:0002 Linux Foundation 2.0 根集线器

Min*_*ael 9

我按照本指南在这台机器上的 16.04 上运行,但链接有一些问题,所以这正是我所做的......

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

mkdir temporary
cd ./temporary
Run Code Online (Sandbox Code Playgroud)

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

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

该指南很长,但它的好处在于,如果您只是按顺序进行操作,它应该会起作用。如果您不明白发生了什么,只需逐行复制并粘贴行(或在评论中提问)

安装驱动程序:

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
Run Code Online (Sandbox Code Playgroud)

现在是断开的链接部分。以下是应该有效的链接:

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
Run Code Online (Sandbox Code Playgroud)

然后继续。安装 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
Run Code Online (Sandbox Code Playgroud)

安装 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
Run Code Online (Sandbox Code Playgroud)

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

sudo /etc/init.d/vcsFPServiceDaemon start
sudo fprint_demo
Run Code Online (Sandbox Code Playgroud)

...注册手指后,您可以在“识别”选项卡中进行训练。它会显示你的指纹!太有趣了 :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
Run Code Online (Sandbox Code Playgroud)

现在我们可以开始设置指纹认证了。我建议你停在这里,因为我已经使用它一段时间了,它有几个问题。到目前为止,您的驱动程序正在运行,这很好。您可以尝试使用它进行身份验证并根据需要还原它,但它对于日常使用来说并不健壮。

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

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

sudo nano /etc/pam.d/common-auth
Run Code Online (Sandbox Code Playgroud)

我们需要添加以下几行:

# fingerprint authentication through fprintd
auth    sufficient                      pam_fprint.so
Run Code Online (Sandbox Code Playgroud)

并修改pam_unix.so nullok_secure try_first_pass必须使其足够的行,如下所示:

auth    sufficient      pam_unix.so nullok_secure try_first_pass
Run Code Online (Sandbox Code Playgroud)

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

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

我希望有人能澄清或给出一个关于这个文件究竟是如何工作的很好的指示。

最后...

cd ..
sudo cp vcsFPServiceDaemon /etc/init.d/
sudo update-rc.d vcsFPServiceDaemon defaults
Run Code Online (Sandbox Code Playgroud)

一切正常。

  • 谢谢!!只是小说明:您必须在第一次运行服务之前将 vcsFPServiceDaemon 复制到 /etc/init.d/,因此,在运行 fprint_demo 之前 (3认同)