技术解析

Archinux 下小米 pro 使用指纹识别
0
1975-02-24 12:46:52
idczone

注意:用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 左右才能解锁。
## 总体上来说,可用性不是太高。个人感觉不如摄像头人脸识别可用性更高...

小米 pro 装 arch 好用么,驱动问题都能解决吗

我是 Archlinux+i3,显卡用 bumbelee 交火,鼠标外设是微软 designer v4,触控、蓝牙、webcam 没有任何问题。

我用的 manjaro deepin,
/usr/lib/libfprint.so.0 已经存在
https://imgur.com/a/ytTnb
但是,
systemctl status fprintd
返回结果告诉我,没有 libprint.so.0 这个文件
https://imgur.com/a/ohtih

问一下 HDMI 的视频输出和 type-c 的视频输出能用吗?

HDMI 视频输出在一台极米 1s 上试过了,尴尬的是投影仪虽然是 1920x1080,但是由于投影技术问题,点对点只能做到 1880x1040 左右( http://bbs.xgimi.cn/thread-111069-1-1.html )。type-c 还没机会尝试。

可能发行版不同,lib 没有正确加载吧,ldconfig -p | awk '/libfprint/' 看看有没有输出。或者 sudo ldconfig 重新 cache 一下

分享一下我前阵子改的 pam_fprintd.so ,允许在按指纹的时候同时输入密码: https://github.com/zsxsoft/libfprint-fprintd
效果见 https://unix.stackexchange.com/questions/207360/use-multiple-pam-login-methods-at-once/433982sddm 的原因,我只把我的 pam 加到 sudo 和 su 里,开机还是不能按指纹((

我这总是 verify-no-match 是我操作不对吗。。

重新做 enroll 吧,食指第一节慢慢滑过,大约 2s。角度和滑动速度都有关系。所以说小米 pro linux 指纹解锁有点鸡肋

ldconfig 之后可以正确录入指纹了。

我来挖个坟.
我改的 sddm 可以在不修改 pam.so 的情况下允许在按指纹的时候同时输入密码.
同时不需要先敲回车, 开机就能输入指纹.
见 https://github.com/sddm/sddm/issues/1038

希望博主更新下,现在已经不适用了

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服