What is libfprint TOD and why it is not in official repos?

So recently I bought a Lenovo ThinkBook 13s gen4. Even though it is not an officially supported by Lenovo as Linux laptop, Fedora 38 beta mostly works on it. Things that do not work is resuming from suspend (pretty much known why) and a fingerprint reader. Fingerprint reader is Goodix with ID: 27c6:550a. It is marked in libfprint’s wiki as unsupported: Unsupported Devices · Wiki · libfprint / wiki · GitLab and same page notes that these devices are unlikely to ever be supported. However after searching around a bit I found a driver for this particular fingerprint reader provided by lenovo for Ubuntu (different laptop, but same sensor): https://pcsupport.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-edge-laptops/thinkpad-e14-gen-4-type-21eb-and-21ec/downloads/ds560884-goodix-fingerprint-driver-for-linux-thinkpad-e14-gen-4-e15-gen-4?category=Fingerprint%20Reader

So after a bit more of searching around I found some random repo by some random person which provides libfprint-tod package for fedora, I replaced libfprint package with it, manually copied .so file I extracted from that .deb package to /usr/lib64/libfprint-2/tod-1/, also manually copied udev rules for it and bob’s your uncle - I have perfectly working fingerprint reader now.

So, I understand that this is a proprietary driver and as such cannot be distributed by Fedora, but the question is: what exactly is libfprint-tod and why it is not available as part of Fedora?

2 Likes

libfprint-tod is a fork of libfprint for touch-based devices.

Because nobody has packaged it for Fedora.

There are some Copr builds of libfprint-tod. You can refer to their spec files as a starting point.

Although, it would be preferable if the fork was merged into upstream libfprint, then a separate package would not be needed. You could also look into making that happen.

1 Like

Thanks for the reply. I was just trying to understand the history of this whole thing, still not clear why it is a fork if it just supersedes the libfprint with the ability to load drivers as shared objects. Guess should ask the author of the fork directly, just not sure how to do that.

And you probably do not want me as a package maintainer, I am very bad at… maintaining. :slight_smile:

1 Like

i have the same issue and would like to use my fingerprint reader =D could you share that repo?

I believe I’ve got the package from either from here: Show home:sp1rit / libfprint-tod - openSUSE Build Service even though this is some openSuSe build system it builds for Fedora too. Or maybe from here: Index of /linux/packages/fedora

Use it at you own risk - for all I know it could be some malware.

Continuing the discussion from What is libfprint TOD and why it is not in official repos?:

Hello, I tried to install the same drivers by following your steps but I think I messed up since Fedora broke after rebooting. Am I missing something? For what it’s worth, I used this link for the libfprint-tod.

What do you mean by ‘broke’ and how exactly did you install the package?

I installed the package and driver by:

  1. Downloading the package and following the instructions in the link
  2. Extract the deb file that I got from the Lenovo’s driver page
  3. Copy the extracted .so file to /usr/lib64/libfprint-2/tod-1/
  4. Copy the extracted udev rules to usr/lib/udev/rules.d/
  5. Reboot

After rebooting, it resulted to boot efi not mounting properly.

Don’t know, I believe I just swapped libfprint package with libfprint-tod. Can’t think of any way it could interfere with filesystem mounts.

In any case - dealing with unofficial packages is inherently messy and if you do not feel really adventurous - probably best to avoid doing that.