Thank you! For normal Fedora 34, I just opened an issue ticket to ask to upgrade libfprint to 1.92.0 or newer, though I am not sure if it is possible because the Fedora 34 is stable version. I agree that distros tend to keep a major and minor version of a package to avoid a breaking change on a distro’s stable version, just upgrading a maintainer version or a release version of the package applying a patch. And it’s not the case on a development version like current Fedora 35.
If someone wants to see Ubuntu to support the fingerprint feature for Framework laptop on a future released version, you need to ask a Debian libfprint package maintainer to upgrade to the latest libfprint version. Because Debian is the upstream distro of Ubuntu. Maybe you can find a way to open the ticket somewhere in the Debian libfprint package tracker page. And same for other distros too!
For normal Fedora 34, I just opened an issue ticket to ask to upgrade libfprint to 1.92.0 or newer, …
Great news! I got an answer from the Fedora libfprint maintainer that the libfprint >= 1.90.7-3.fc34 on normal Fedora 34 should work for Framework laptop. Because they applied a patch file (update-goodix.patch) to fix the issue in the RPM spec (recipe) file libfprint.spec rather than upgrading to the upstream version.
I’ve seen references to upgrading libfprint to >=1.92 on Ubuntu, but must confess to inexperience in building/installing drivers from source (shows you how much more user-friendly linux has gotten!).
Looking at the libfprint repository (for 1.9.2 release v1.92.0 · libfprint / libfprint · GitLab) and the meson webpage (tutorial at Quickstart Guide) I get how it ought to compile, but if there are any gurus out there who know what to do with the compiled products - eg does the meson build automatically put the needed files in the right places or does something have to be moved into place? - would be grateful for guidance. Thanks!
Has anyone gotten the fingerprint sensor working in arch yet? I have libfprint installed at the latest compatible version but gnome 40 still does not recognize the fingerprint. I would love to get this figured out and added to the arch linux thread.
I believe that is all the steps you need to do. If you have any problems let me know and I would be happy to help. This is the first time I have ever written instructions.
Thank you for this little guide. I am a application level developer but rarely have need to sudo anything and install packages etc. Don’t even have permissions to do so in my day job.
Apparently pip is not installed by default on Ubuntu. So the first command “sudo pip install meson” didn’t work for me.
So I did “sudo pip” which suggested installing pip by “sudo apt install python3-pip”
Tried that and got to a point where it wants to insert the Ubuntu 21.04 disc into the drive ‘/media/cdrom’
There is no cdrom on this device, so I assume it would be the installation media used.
Assuming I recreate the boot USB flash drive, will that work?
Are there any other traps to be found for the less system oriented among us?
Okay found that the cdrom line needed to be removed from the sources.lst file
‘sudo sed -i ‘/cdrom/d’ /etc/apt/sources.lst’
Two more questions.
pip install python-gobject is failing,
No matching distribution found …
Could not find a version that satisfies the requirement python-gobject.
The meson builddir line fails with Dependency “gusb” not found, tried pre-configured
Thanks for the guide! Alas, it’s not quite working for me.
Maybe a stupid question:
After I build the latest libfprint, when I try to build the latest fprintd, it complains: “Dependency libfprint-2 found: NO found 1.90.7+git20210222+tod1 but need: ‘>=1.92.0’”
Where is it looking for libfprint? It’s not finding the one I just built.
Although I’ve never used it before, I feel like the “ninja -C builddir” step was supposed to put the new libfprint in the right place; however, when I try to do that step again, it simply says, “ninja: no work to do.” Seems like it believes it did it’s job without error.
Is it safe to run git checkout to the current newest tag before running meson for reproductive steps, isn’t it? As the HEAD commit of the master branch is updated continuously, I am afraid your guide will be outdated after some time.
“Dependency libfprint-2 found: NO found 1.90.7+git20210222+tod1 but need: ‘>=1.92.0’”
Maybe you need to set LD_LIBRARY_PATH for the libfprint library’s path installed from the source, to prioritize the path than standard system lib path where system libfprint exists.
And to the Linux compile newbies, where would that be?
the directory where libfprint was compiled? or is it something that should be visible in the Ninja log?
Maybe the directory is where the libfprint-2.so.* file compiled by you exists.
export LD_LIBRARY_PATH=<directory>
Edited: Maybe this is not a wrong solution for the compiler error, as the LD_LIBRARY_PATH is a library path searched in the run time, not build time. Sorry.
I thought of that, but immediately dismissed it as being kind of an odd solution. Surely, Davis_Ladd (op of the guide) would have mentioned having to do something like that - I’m guessing he didn’t have to.
What I did do, as a test, was temporarily replace the libfprint library in /usr/lib/x86[snip] with the newly-built one. After a reboot, I was able to go into settings and add my fingerprint (and then use my fingerprint to login.) However, I was still not able to build fprintd! Same complaint (found 1.90, need at least 1.92). So, the system sees the new libfprint 1.92, but meson doesn’t? I put the old libfprint back because I want a real solution to this.
I don’t know what the “system” means. But maybe the meson in fprintd found the libfprint deb package installed to standard lib directory by apt-get install, but the fprinted couldn’t find another libfprint you installed by building from the source.
By “system” I simply meant, settings app, login screen, etc. I don’t know the proper way to describe the running ubuntu desktop system.
I searched the entire boot drive for “libfprint-2.so.2.0.0”. It found two files: the one I built from source and the one located in “/usr/lib/x86_64-linux-gnu”. That’s when I decided to try replacing the one in /usr/lib/x86_64-linux-gnu with the one I built. It worked… kinda. I could register my fingerprint in the settings app and then login with my fingerprint, but I still couldn’t build fprintd.
I feel like I’m just not getting something here. Is there more to libfprint than the resulting libfprint-2.so file? I’m going to try setting LD_LIBRARY_PATH (not sure why I didn’t try that before writing this.)
By checking the meson build log (duh), I figured out why the build of fprintd is failing. It’s using “/usr/bin/pkg-config --modversion libfprint-2” to determine the version of libfprint that’s installed. So, basically, you can do whatever you want to the libfprint library, but meson is just going to look at which version was installed with apt-get.
I’m not sure how the build of fprintd could possibly work without some intermediate step that updates the libfprint package version information.
I’ve just spent a bunch of time trying to get the build of fprintd working. I’m basically having to edit the various meson configuration files and google, google, google. Feels like whack-a-mole (work around one issue to have another immediately pop up.)
I’m just going to live with fprintd 1.90. Replacing only libfprint with 1.92 seems to do the trick. I’m not sure what I’m missing by not having an updated fprintd. The settings app lets you add fingerprints, so isn’t that enrollment, right there?