Archinux 下小米 pro 使用指纹识别

2018-04-06 14:45:00 +08:00
 indexofire

注意:用fprintd验证时,需要将右手食指划第一节慢慢滑过 sensor ( 2 秒左右) 5 次。

## Archlinux extra 源里 libfprint 的版本还不支持 Elan。
## 需要到 github 下载最新源代码支持了小米 pro 的
## 04f3:0c1a 的 Elan Microeletronics 指纹识别器。
$ git clone https://github.com/iafilatov/libfprint
$ cd libfprint
$ ./autogen.sh
$ ./autoconfigure
$ make && sudo make install
$ sudo ln -s /usr/local/lib/libfprint.so.0 /usr/lib

## 不安装 libfprint 依赖
$ sudo pacman -Sdd fprintd

## 确认 fprintd.service 正常运行,如果 failed,
## 用`systemctl status fprintd`查看问题
$ systemctl | grep fprinted.service

## 修改登录验证机制,如果顺序是 fprintd 在前,则登录时先用 finger 验证
$ sudo vim /etc/pam.d/system-local-login
auth      sufficient pam_fprintd.so
auth      include    system-login

## 建立指纹并验证
$ fprintd-enroll
Using device /net/reactivated/Fprint/Device/0
Enrolling right-index-finger finger.
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-completed

## 验证过程,看到 veryify-match 即表示验证通过
$ fprintd-verify 
Using device /net/reactivated/Fprint/Device/0
Listing enrolled fingers:
 - #0: right-index-finger
Verify result: verify-match (done)

## 重启,由于我没有用 Display manager,用 xinit startx 来启动 i3,
## 所以 console 界面输入用户名后就会提示“滑动手指验证指纹登录”
$ reboot

## i3lock 指纹解锁有一个问题在于需要输错 1 次密码后才能正常指纹解锁。
## 可能需要 xss-lock 等其他方法解决
$ sudo pacman -S i3lock
$ sudo vim /etc/pam.d/i3lock
auth include login

## 总结:
## 小米的 Elan 指纹识别器面积太小,导致 libfprint 需要滑动才能识别,
## 另外感觉指纹识别速度不是特别敏锐,扫完指纹需要 0.5s 左右才能解锁。
## 总体上来说,可用性不是太高。个人感觉不如摄像头人脸识别可用性更高...
7320 次点击
所在节点    Linux
12 条回复
Phantom19
2018-04-06 15:19:27 +08:00
小米 pro 装 arch 好用么,驱动问题都能解决吗
indexofire
2018-04-06 15:46:15 +08:00
@Phantom19 我是 Archlinux+i3,显卡用 bumbelee 交火,鼠标外设是微软 designer v4,触控、蓝牙、webcam 没有任何问题。
gainsurier
2018-04-06 16:38:31 +08:00
我用的 manjaro deepin,
/usr/lib/libfprint.so.0 已经存在
https://imgur.com/a/ytTnb
但是,
systemctl status fprintd
返回结果告诉我,没有 libprint.so.0 这个文件
https://imgur.com/a/ohtih
catteroLo
2018-04-06 18:24:27 +08:00
@indexofire 问一下 HDMI 的视频输出和 type-c 的视频输出能用吗?
indexofire
2018-04-06 19:14:21 +08:00
@catteroLo HDMI 视频输出在一台极米 1s 上试过了,尴尬的是投影仪虽然是 1920x1080,但是由于投影技术问题,点对点只能做到 1880x1040 左右( http://bbs.xgimi.cn/thread-111069-1-1.html )。type-c 还没机会尝试。
indexofire
2018-04-06 19:21:31 +08:00
@gainsurier 可能发行版不同,lib 没有正确加载吧,ldconfig -p | awk '/libfprint/' 看看有没有输出。或者 sudo ldconfig 重新 cache 一下
zsx
2018-04-06 19:28:13 +08:00
分享一下我前阵子改的 pam_fprintd.so ,允许在按指纹的时候同时输入密码: https://github.com/zsxsoft/libfprint-fprintd
效果见 https://unix.stackexchange.com/questions/207360/use-multiple-pam-login-methods-at-once/433982#433982

不过因为我用的是 sddm 的原因,我只把我的 pam 加到 sudo 和 su 里,开机还是不能按指纹((
chocotan
2018-04-06 19:43:32 +08:00
我这总是 verify-no-match 是我操作不对吗。。
indexofire
2018-04-06 19:54:59 +08:00
@chocotan 重新做 enroll 吧,食指第一节慢慢滑过,大约 2s。角度和滑动速度都有关系。所以说小米 pro linux 指纹解锁有点鸡肋
gainsurier
2018-04-06 20:48:41 +08:00
@indexofire ldconfig 之后可以正确录入指纹了。
Sasasu
2018-06-22 19:28:54 +08:00
我来挖个坟.
我改的 sddm 可以在不修改 pam.so 的情况下允许在按指纹的时候同时输入密码.
同时不需要先敲回车, 开机就能输入指纹.
https://github.com/sddm/sddm/issues/1038
Kaiv2
2018-09-25 17:19:58 +08:00
希望博主更新下,现在已经不适用了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/444670

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX