你的爽到,别人不懂


感谢 3v1n0, nmikhailov的杰出工作!


上回书说道,这T460P的指纹,可谓非常好用,Windows用起来那个爽啊,是真爽。但是我不怎么用windows啊,所以这个爽,你还只能想想。但是光想那可不行啊,爽不爽还得自己经常用才能体会到。

书接上文,开启了指纹开机验证后,windows那边其实已经就是一步到位了,而Linux这边不是太好搞。相比与Ubuntu,oS没有关于指纹相关的预装;相比于GNOME,KDE没有内置指纹管理的组件。那只能回到梦开始地方,手动搞这个玩意。

  • 首先,安装fprintdfprintd-pam,这是基础:
    sudo zypper in fprintd fprintd-pam
  • 然后这回呢你发现,我草怎么用不了,那肯定的,没驱动怎么用。libfprint官方没有VFS7500(138a:0090)的驱动,那么在哪里能找到驱动呢?看这里:
    git clone https://github.com/3v1n0/libfprint
    sudo zypper in meson ninja gcc-c++ openssl libopenssl-devel\
     libusb-1_0-devel libusb-compat-devel libtool gtk3-devel\
      glib2-devel libXv-devel nss-shared-helper-devel gtk-doc\
       gobject-introspection-devel cmake libgusb-devel
    
  • so far so good, 完成上述步骤其实就可以开始下一步编译了。该项目使用了meson&ninja的组合,不同以往的编译,这次这样编译:
    cd libfprint  
    meson . _build && sudo ninja -C _build install
    
  • well done! 看见一长串的编译安装完成后,驱动我们就算装上了,接下来处理一下pam模块:
    ln -s /lib64/security/pam_fprintd.so /lib64/security/pam_fprint.so
    
  • 不要急,坐和放宽,请重启一下 : )
  • 验证一下看看fprint是否检测到了设备:
    fprintd-list <用户名>
  • 如果看到了 found 1 devices 那就说明成功一大半了!马上开始录入指纹!录入成功是绿灯,失败或有问题是红灯/黄灯:
    for finger in {left,right}-{thumb,{index,middle,ring,little}-finger}; do fprintd-enroll -f "$finger" "$USER"; done
    
  • 最后一步!把pam模块接入进系统验证,有两种选择:
    • 手动加pam配置文件:
      vi /etc/pam.d/common-auth-pc
      在auth required pam_env.so这一行下面加入
      auth sufficient pam_fprint.so
    • 使用pam-config
      sudo pam-config -a --fprint
  • 这样就完成了,再重启一下,就可以使用了!

再简单讲讲使用方法,现在指纹可以在如下情况使用,:

  • SDDM登录界面
  • KDE登录界面
  • sudo
  • su
  • KDE su
    前四种情况,屏幕/终端都会提示Place your finger on the fingerprint reader,这时指纹识别器上方绿灯会亮起,进行识别即可,正常识别后绿灯会闪一下,如果太快会闪一下黄灯,认证失败会让你输入密码。
    后一种情况下,又分两种小情况,多数情况下KDE su的认证提示框会出来,但是不会有字面提示,此时指纹灯亮起,直接认证即可;而有些时间KDE SU的对话框并不会弹出来,但是指纹指示灯会亮,此时直接完成指纹识别也可以认证。

开始享受吧!