A few months ago, I decided to try getting my laptop's fingerprint sensor working in Ubuntu. I use a Lenovo Thinkbook 16 G6 ABP, which has a combined sensor and power button. The fingerprint sensor is integrated very well under Windows 11, and I've had little to no issue using it in that environment. Ubuntu, however, doesn't seem to have fingerprint sensor support by default, and I had to find my own way to make it work.

I first identified my fingerprint sensor in lsusb, which gave an ID of 04f3:0c4b (manufactured by ELAN Microelectronics). I found this forum post which gave instructions on installing libfprint, the fingerprint reader library. While I was able to complete it successfully, I ran into issues getting my fingerprint enrolled. The settings window would repeatedly complain that the fingerprint reader had disconnected. After spending some time searching around, I was able to find the correct driver in Lenovo's website. The instructions instructed me to copy the driver file into /usr/lib/x86_64-linux-gnu/libfprint-2/tod-1/, which I did. However, systemd gave an error when starting the service:

Mar 26 22:43:47 kaiyu-thinkbook fprintd[22853]: Impossible to load module /usr/lib/x86_64-linux-gnu/libfprint-2/tod-1/libfprint-2-tod1-elan.so: libcrypto.so.1.1: cannot open shared object file: No such file or directory

The missing libcrypto.so.1.1 is part of the OpenSSL library version 1.1. Ubuntu 24.04 has version 3.0 installed, which is incompatible. I could not find a way to install multiple versions of the library simultaneously, so I decided to compile the required version. I downloaded the last release of version 1.1, and compile with the default installation path (/usr/local) which does not interfere with the current install. After running ldconfig, the fingerprint library was able to load the driver and I was able to enroll my fingerprint.

This current setup works, albeit with some issues. The sensor reading seems to be way more sensitive than on Windows, as it often rejects the figerprint I have enrolled. This happens the majority of the time, which can become a bit frustrating. Another issue is that the fingerprint sensor doesn't work some of the time after the computer wakes up from suspend. I do not yet know why, but it is not a huge concern for me. Overall, I am satisfied with the results and am happy that I have learned new things along the way.