ThinkPad X1 Carbon 2017 的指纹硬件 ID 是 138a:0097,很遗憾,Linux 下的官方指纹管理模块是不支持这玩意的,网络上有很多大神在进行逆向工程,让这个模块在 Linux 下可用,但是折腾了那么久,感觉还是比较尴尬。
曾经有一个方案,是 Patch 掉 libfprint,不过那个方案也就工作了大概半年,很快 libprint 就发布了 2.0 版本,原本的 Patch 也就嗝儿屁了。
不过最近有人使用了新的方法解决了这个问题,直接用 Python 写了个指纹管理和驱动,替代掉原本的傻逼 libprint,于是就可以工作了,感谢 uunicorn 以及 Marco 等幕后人员的工作。
$ sudo apt remove fprintd
$ sudo add-apt-repository ppa:uunicorn/open-fprintd
$ sudo apt-get update
$ sudo apt install open-fprintd fprintd-clients python3-validity
$ fprintd-enroll
删掉原本的 fprintd 然后安装新的 open-fprint,替换掉后端管理,并且自己录制指纹,就完成了。
如果你的指纹识别机器里曾经录入过指纹,那么启动可能报错,需要重置一下:
$ sudo systemctl stop python3-validity
$ sudo validity-sensors-firmware
$ sudo python3 /usr/share/python-validity/playground/factory-reset.py
$ sudo systemctl start python3-validity
$ fprintd-enroll
最后在 pam 里启用指纹登陆与解锁:
sudo pam-auth-update
用空格勾选指纹即可。
现在你已经可以使用指纹来解锁和登陆笔记本了。
当然这么做有个问题,你可能发现这个指纹甚至会被强制用在 sudo 等命令里,这显得很蠢,所以我们可以修改一下相关的策略:
修改文件:
sudo vim /etc/pam.d/sudo
增加
auth sufficient pam_unix.so try_first_pass likeauth nullok
然后基本上只会在解锁电脑的时候使用指纹了,之前的扫脸也是如此。
链接:
现在21.10对指纹支持好太多了2333