I’ve been using fingerprint authentication ever since I started using my X1 Carbon 6 laptop as my daily driver. However, when I’m hooked up to my external monitor/hub, reaching across my desk to login is annoying! Fortunately, there’s a great project called Howdy that providess “Windows Hello™ style facial authentication for Linux”.
This is how I setup Howdy on my X1 Carbon Gen 6 running Mint Linux Uma with multiple cameras.
Install Howdy and Setup a facial model
This was the easiest part, just follow the instructions on the Howdy project page.
sudo add-apt-repository ppa:boltgolt/howdy
sudo apt update
sudo apt install howdy
Once installed, you need to add a model to be used for facial comparison.
sudo howdy add
Test it out!
sudo -i
Multiple Cameras Support with udev
If I’m hooked up to my external monitor and camera, I want to be able to use that in the case my laptop is closed or off to the side. Fortunately, tdaniely has the solution using udev
rules.
Create the file /lib/udev/rules.d/99-howdy-camera-select.rules
with the following contents:
KERNEL=="video2", SYMLINK+="videohowdy"
KERNEL=="video0", SYMLINK+="videohowdy"
Trigger udev
sudo udevadm trigger
Update the howdy config file sudo howdy config
to use the dynamic symlink we created with the udev rule.
device_path = /dev/videohowdy
# this is also handy, since we could have the
# lid closed but still use the external camera
ignore_closed_lid = false
Add a new facial model using the new camera. Make sure the light comes on for your external camera and not the builtin on your laptop.
sudo howdy add
Tweaks
Disable Confirmation Messaging
By default, when a successful login occurs, you’ll get some output like the following.
$ sudo -i
Identified face as bwigginton
Let’s disable that. This may also help situations where some software will interpret any output as a failure. Set no_confirmation = true
sudo howdy config
# Howdy config file
# Do not print anything when a face verification succeeds
no_confirmation = true
...
Pretty awesome!