I currently have a Lenovo Thinkpad L14 Gen1 laptop equipped with fingerprint. I was belok from KDE Neon to use Fedora 40 because of someone. Now I am tempted to enable my fingerprint.

To be sure, I got this from lsusb:

 lsusb | grep -i fingerprint
Bus 001 Device 004: ID 27c6:55b4 Shenzhen Goodix Technology Co.,Ltd. Fingerprint Reader

Dump the firmware

Assuming this is a fresh install, lets do some magic by getting some dependencies: sudo dnf install gcc git python-pip python-devel openssl Let’s get the source code:

git clone --recurse-submodules https://github.com/goodix-fp-linux-dev/goodix-fp-dump.git
cd goodix-fp-dump

Create an isolated Python environment:

python -m venv .v
source .v/bin/activate

Do the magic:

sudo su
pip install -r requirements.txt
python run_55b4.py
exit

There are some python scripts available. I run run_55b4.py because my device ID is 27c6:55b4. It will spell some nonsense, which is a good thing. That nonsense actually the firmware captured by our device. Also, I typed exit because we want to enroll our finger in our own user, not root. If we run the fprintd-enroll as a root, the finger will be for root, not us. Anyway,

fprintd-enroll 
Using device /net/reactivated/Fprint/Device/0
Enrolling right-index-finger finger.
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-stage-passed
Enroll result: enroll-completed

Yes! In my case, the fingerprint need to add my right index finger ten times. I was confused at first because the lack of message. I thought it was error. But, it didn’t. After that, everything in the system is automatically pick the fingerprint as one way to authenticate.

Overall

There is nothing to change. Fedora 40 will automatically enable fingerprint login.

KDE

When the fingerprint enabled, it is automatically show up:

image-center

sudo

Same with KDE settings

image-center

Dual Boot

Dual booting with Windows 11 will make the fingerprint firmware rewritten. We need to redo the magic:

source .v/bin/activate
sudo su
pip install -r requirements.txt
python run_55b4.py
exit

SDDM

NOTE: I have done this before. However, I have disabled this as it doesn’t unlock KWallet. I am writing this for future if I am bored and want to do some hacking on the SDDM device.

Configure SDDM PAM Module

SDDM is not ready for fingerprint. There is a patched version if you don’t mind compile it yourself. A workaround is to have skip password authentication and go to fingerprint. I opted for this one.

In /etc/pam.d/sddm, add these two lines on top of the current configuration code:

auth [success=1 new_authtok_reqd=1 default=ignore]  pam_unix.so try_first_pass likeauth nullok
auth sufficient  pam_fprintd.so

The catch for this one is that I need to press ENTER key at the password input before the fingerprint works to enable fingerprint input. This approach makes KWallet unauthenticated at login. I need to input password for KWallet when it is activated for the first time in my KDE session.

Source

  • https://discussion.fedoraproject.org/t/d-k-bo-libfprint-goodixtls/43849
  • https://copr.fedorainfracloud.org/coprs/d-k-bo/libfprint-goodixtls
  • https://github.com/goodix-fp-linux-dev/goodix-fp-dump