Linux通过Howdy实现人脸登录和一些bug修复

| 字数:762 | 阅读:约4min

前言

Windows上有Hello登录,很羡慕,然后Linux不仅没有人脸,还到处需要输入密码很麻烦,配置为不用密码后又不太可靠,所以找到了Howdy这个东西,实现了Linux上的人脸登录。
Howdy请按照下面步骤使用beta版本。

方法

下载并安装howdy(以deb系为例)

Arch系用户如果直接yay -S howdy-beta-git来安装,可跳过此步骤,如果安装失败也可以按照下面步骤进行

{warning} 目前尽量不要用Howdy README里的安装方式,因为过于久远没有更新readme了

在终端里输入:

# 安装依赖
sudo apt-get update && sudo apt-get install -y \
python3 python3-pip python3-setuptools python3-wheel \
cmake make build-essential \
libpam0g-dev libinih-dev libevdev-dev python3-opencv \
python3-dev libopencv-dev
sudo apt install python3-numpy python3-dlib libpam-python dlib-models libinireader0
# 克隆仓库并进入
git clone https://github.com/boltgolt/howdy
cd howdy

# 进入最新的Beta3.0分支(重要)
# (目前分支名是这个,如有更新请自行改为最新分支)
git checkout d3ab993

# 编译和安装
meson setup build
meson compile -C build
meson install -C build

进行配置howdy

下载模型

先输入sudo howdy add,它会弹出

Data files have not been downloaded, please run the following commands:
	cd (一个路径)
    sudo ./install.sh

执行弹出的那两行命令,然后会下载识别的模型

识别并配置摄像头

在shell里输入

v4l2-ctl --list-devices --all

获取摄像头路径,一般来说/dev/video0就是普通摄像头,/dev/video2就是摄像头加红外,但你的可能不一样,看情况而定
再输入

sudo howdy config

找到device_path,将后面的值设置为/dev/video2或你设备对应的路径,然后再输入

sudo howdy test

如果看到摄像头开启并红外正常活动便成功了,如果没有的话就换个device_path试试

添加人脸数据

输入sudo howdy add即可

配置PAM

把howdy配置好后,就能配置pam来用上人脸识别了,进入 /etc/pam.d/ 文件夹,可以看到很多配置文件,可以单独配置,但如果想每个地方都能使用人脸识别的话,就直接修改里面的system-auth就行了
用你熟悉的编辑器打开 /etc/pam.d/system-auth ,然后在 #%PAM-1.0 下面加上这两行

auth sufficient pam_unix.so try_first_pass likeauth nullok
auth sufficient /usr/local/lib/security/pam_howdy.so

第二行就是使用人脸识别,第一行是优先使用密码输入,不加这一行可能会出现输入密码后回车后仍然需要等待人脸识别的时间

如果是arch直接安装的话第二行中pam_howdy.so可能是lib/security/pam_howdy.so,请注意修改

保存后无须重启,应该人脸识别就生效了!

一些bug修复

如果红外始终唤不醒的话可以使用linux-enable-ir-emitter来唤醒,具体看它的README
如果发现greeting和sudo等都能正常使用人脸识别,而使用kde时弹出的Polkit界面无法使用时,请按照以下方法修改: 在shell里输入

sudo systemctl edit polkit-agent-helper@.service

### Edits below this comment will be discarded的上面加上以下几行

[Service]
PrivateDevices=no
DeviceAllow=/dev/video2 rw

上面的DeviceAllow后的值应该是你的红外正常工作的摄像头路径

然后sudo systemctl daemon-reload并重启即可 这个似乎是kde更新给polkit引入了更安全的机制,在日志中可以看到 Unknown line ‘Howdy could not find a camera device at the path specified in the config file.’ from helper ,解决方法来自这个issue下面的解答

后言

sudo howdy config中还有一些配置可修改,可以自行试试
howdy的精确度肯定不如Windows Hello高,所以使用有风险
如有错误,欢迎指正

版权信息