I recently bought a Lenovo T15 to have a more comfortable and portable workstation which comes with an integrated IR + Webcam module.
This module is meant to be used with Windows Hello authentication which uses IR emitters plus an 8bit camera in order to recognize your face and perform a login in your machine which clearly doesn’t work out of the box on Linux
During a quick search session, I found Howdy, a project that enables a Windows Hello-like login system that works with PAM so it can be used to authenticate on the login screen, sudo commands, etc.
List your cameras
First I need to list the cameras included in the camera bundle, to do that I installed v4l-utils.
Then, I executed the following command to get a list of the video devices detected by the Kernel:
v4l2-ctl --list-devices
The output is a list of 4 video devices with the assigned path
Integrated Camera: Integrated C (usb-0000:00:14.0-8):
/dev/video0
/dev/video1
/dev/video2
/dev/video3
That doesn’t mean that I have 4 cameras available. Video0 is the main camera and Video1 is the metadata capture while Video2 is the 8-bit camera used for authentication purposes along with the IR emitter.
After doing a couple of tests with the secondary camera, I noticed that the IR sensor was not activated when I captured some FFmpeg frames. So I found another project which will enable the IR module on cameras that won’t trigger the emitter when the secondary camera is used.
Enabling the IR emitter
Clone the Linux-enable-ir-emitter
git clone https://github.com/EmixamPP/linux-enable-ir-emitter.git
Run the autoconfig script and follow the instructions, you will notice that now your IR emitter starts to work.
cd auto && python auto-config.py
Now we’re ready to go
Install and Setup Howdy
sudo add-apt-repository ppa:boltgolt/howdy
sudo apt update
sudo apt install howdy
Follow the instructions and leave the default settings for now, we will configure the camera in the next step
Run
sudo howdy config
This will open a config file in your default text editor. We need to locate the device_path
entry in the [Video]
section and set the path to our secondary camera (which includes our IR emitter)
# The path of the device to capture frames from
# Should be set automatically by an installer if your distro has one
device_path = /dev/video2
Save the file and exit
Now we will add our first face model
sudo howdy add
Look at your camera (you will notice that the IR emitter is also enabled) and let the process finish
Now it’s time to test your face model, run sudo -i
and look at your camera, then you will see the following output:
$ sudo -i
Identified face as <user>
Then you are ready to go, try locking your screen or running another sudo command and the IR camera will be triggered to authenticate you based on your face model.
You can add more face models if you want to increase the accuracy or if you use glasses and want a model to log in when you’re not wearing them.
As the Howdy creator states while using an IR camera is more reliable than just using a camera, keep in mind that it won’t replace a password in environments that require higher security levels. Also, you shouldn’t keep Howdy as your exclusive login mechanism.