1. Intro
What is the first thing we want to do when we buy a new laptop that we will put linux on? Obviously it is making sure that all its components work 100%.
I recently bought a well configured ThinkPad X1 Carbon 6th generation and after doing a bit of distro hopping I have decided that for the moment I will put on this laptop Fedora 37, recently released.
Everything works out of the box except one thing.. the fingerprint reader, damn. After a quick search on the internet I found a repo on GitHub called python-validity which, very briefly, allows you to enable the fingerprint reader on three distros: Ubuntu, Arch and Fedora.
Unfortunately the simple guide of the repo was not enough to make everything work and I had to do some more operations (founded on the issues tab on the repo) in order to make everything work.. here is the reason for this guide.
2. Python-validity installation
This step is very simple: it consists of adding a specific repo for this software and replacing a couple of packages. Here are the steps of the guide for Fedora:
3. “Touching” a pair of files
Unfortunately, as soon as the software is installed, it will not be possible to start the systemd service since a couple of files are missing. So let’s create them by doing:
4. Downloading the firmware and start the service
Let’s move to the python-validity folder with:
Let’s now clean up the folder from the previous firmware with the command ,download the one that best suits our configuration and make it executable:
5. Set the first fingerprint and enable the GNOME implementation
Very simply, to set the fingerprint, you have to run the following command, which will ask you to place the index finger of your right hand a couple of times:
After that we can type
to integrate it with GNOME and GDM.
6. Last checks
At this point we can say that we have finished with the installation. If everything has been done successfully we can activate the boot time service with:
7. (Optional) Fix reboot / resume bug
If we put the system in suspension, unfortunately the service will not work anymore (even if it seems active from the sysctl command).
By changing the service located in /usr/lib/systemd/system/open-fprintd-resume.service
the problem seems solved.
We then change the content of the file with the following: