[TRACKING] Fingerprint scanner compatibility with linux (ubuntu, fedora, etc)

@snee (and anyone else)

First of all, clone this repository:

git clone https://gitlab.freedesktop.org/devyn/libfprint.git --branch goodixmoc-clear-storage

To build, you will need several dependencies, but to start you’ll need meson and ninja as well as the usual gcc setup. Once you have that, run:

mkdir build
meson setup build

Meson will tell you if you have any missing dependencies. For each one, install it and then run meson setup build again until it succeeds. On Ubuntu/Debian, you will most likely need several -dev versions of packages; on Fedora, -devel.

Once you have all of the dependencies, go to build directory, and run ninja

cd build
ninja

If that builds successfully, save the script I posted above to a file (ideally just put it in the build directory) and then run it with:

sudo LD_LIBRARY_PATH=$PWD/libfprint G_MESSAGES_DEBUG=all python clear_storage.py

If the script doesn’t work, just post the log output here and I’ll take a look at it. If you have trouble with dependencies I’ll also try to help, but that’s a bit more tricky because different distros are different.

11 Likes

@Devyn_Cairns

The guide and the patch worked like a charm! Going to link to this guide in another thread that had questions. Thank you!

1 Like

Help. I’m a total newb and I have no idea how to do this.

Got it working again thanks

1 Like

I will see if I can package everything up into a single zip file somehow so that it’s a bit easier to get going. I’ll have to statically link everything somehow and you’ll have to trust whatever binaries I send… but that should at least make it better for anyone who needs a solution and doesn’t know how to install developer stuff.

1 Like

@CSab6482

I spent some more time on this, and I got together something that should be reasonably easy. I can’t guarantee it will work, and I provide this as-is with zero warranty - it has not been approved by Goodix, the manufacturer of the fingerprint device; I have just taken a guess at how their device works based on some code they left behind.

If you wish to verify this, I have signed the checksum file inside there with my GPG signature, FA6FB12588810A870C92609D3901327190847975 Devyn Cairns <devyn.cairns@gmail.com> - so check that checksum file and then the signature with gpg.

Download and extract, then open a terminal wherever you put the AppImage file (right click, open a terminal in GNOME), then run:

sudo ./fprint-clear-storage-0.0.1-x86_64.AppImage

If goes well, it should tell you the name of the device and that it cleared it (along with some other libusb and udev related errors you can ignore)

If it doesn’t work, please post the log output.

57 Likes


This is what I’m currently seeing, so it looks like it works! I will attempt to enroll my fingerprint and see how it goes.

Update - Thank you so much.

2 Likes

@Devyn_Cairns - Thank you!

I feel somewhat guilty having long abandoned my previous efforts to get fingerprint detection working in Fedora on my tri-boot system while others toil to get it working (while educating the rest of us).

Rest assured it’s appreciated. :slightly_smiling_face:

1 Like

No worries. It definitely seems like there’s something weird going on with the hardware. I don’t really understand how Windows gets its prints in, because they’re not normally visible to Linux, but then sometimes there can be side effects of that and it causes corruption to the data on the Linux side.

For now I’m just happy to have figured out how to reset the device, but long term someone will either have to make it easy to reset the device if the system detects weird behavior happening, or Goodix will have to sort things out and figure out how to stop the drivers from behaving badly with each other.

3 Likes

@Devyn_Cairns Thank you so much for the script!

I thought everything worked OK after using Ventoy to run Windows but after a shutdown and a cold boot, among the problems I found was that my fingerprint reader was no longer working.

I guess as soon as you install the Windows driver for the fingerprint reader this conflict occurs. I didn’t even register fingerprints in Windows.

But your script reset it right away, I re-enrolled all my fingerprints and it’s back to normal.

Thanks!

1 Like

@Devyn_Cairns

Thank you so much! I had reinstalled Xubuntu 21.10 and nothing I did would let me re-enroll my fingerprints. I was not a happy camper.

This solved my problem quickly and had me back up in running in minutes following the guide by @AndrewGurn.

This is a great community. I really appreciate everyone with this kind of knowledge helping noobs like me.

3 Likes

Hey everyone, I got my Framework laptop in today and am trying Linux for the first time. I installed Ubuntu. So suffice it to say, I’m VERY new to command line and the terminal. I’m trying to get the fingerprint scanner working. I scrolled through this whole thread trying a lot of the things people suggested starting with tutorial @Davis_Ladd posted. It seemed like I was able to install all of the dependencies in step one, but after that I kept getting stuck on all the subsequent steps. I kept getting error message in the terminal. Mainly syntax errors. Would anyone be willing to help a noob out? Thanks!

2 Likes

Post the commands you typed/copied and the error the system gave you. Like this:

mark@Sauron:~$ echo "hello world"
hello world
mark@Sauron:~$ ehho "hello world"

Command 'ehho' not found, did you mean:

  command 'echo' from deb coreutils (8.30-3ubuntu2)

Try: sudo apt install <deb name>

mark@Sauron:~$
1 Like

Thanks @Fraoch! I’ll run it again when I get home from work in a few hours. It may very well be user error, I was just copying all the code into the terminal. So I wouldn’t be surprised if I misunderstood and missed a step somewhere.

So I ran it again and for some reason compiling the newest version of libfprint. This is what displayed after running that part of the code:

Now I seem to be getting hung up on editing meson_options.txt. I tried running the code and got this:

I even tried entering the nano meson_options.txt which brought this up, but I couldn’t figure out if I could do anything with it.

I tried moving on to build, compile and install it seemed to install one file but not the other:

And when I tried installing the newest version of fprintd I got this:

Here’s the all of the code copy/pasted:

samlane86@samlane86-Laptop:~$ git clone https://gitlab.freedesktop.org/libfprint/libfprint.git cdlibfprint
Cloning into ‘cdlibfprint’…
remote: Enumerating objects: 9581, done.
remote: Counting objects: 100% (1544/1544), done.
remote: Compressing objects: 100% (281/281), done.
remote: Total 9581 (delta 1352), reused 1431 (delta 1263), pack-reused 8037
Receiving objects: 100% (9581/9581), 10.07 MiB | 18.58 MiB/s, done.
Resolving deltas: 100% (7322/7322), done.
samlane86@samlane86-Laptop:~$ option(‘drivers’,
bash: syntax error near unexpected token 'drivers',' samlane86@samlane86-Laptop:~$ description: 'Drivers to integrate, "default" selects the default set, "all" selects all drivers', description:: command not found samlane86@samlane86-Laptop:~$ type: 'string', Command 'type:' not found, did you mean: command 'typer' from snap erlang (22.3.4.1) See 'snap info <snapname>' for additional versions. samlane86@samlane86-Laptop:~$ value: 'goodixmoc') bash: syntax error near unexpected token )’
samlane86@samlane86-Laptop:~$
samlane86@samlane86-Laptop:~$
samlane86@samlane86-Laptop:~$ nano meson_options.txt
samlane86@samlane86-Laptop:~$ meson builddir
Command ‘meson’ not found, but can be installed with:
sudo apt install meson
samlane86@samlane86-Laptop:~$ ninja -C builddir
ninja: Entering directory `builddir’
ninja: fatal: chdir to ‘builddir’ - No such file or directory
samlane86@samlane86-Laptop:~$ sudo apt install meson
[sudo] password for samlane86:
Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
The following packages were automatically installed and are no longer required:
chromium-codecs-ffmpeg-extra gstreamer1.0-vaapi
libgstreamer-plugins-bad1.0-0 libva-wayland2
Use ‘sudo apt autoremove’ to remove them.
The following NEW packages will be installed:
meson
0 upgraded, 1 newly installed, 0 to remove and 69 not upgraded.
Need to get 438 kB of archives.
After this operation, 2,827 kB of additional disk space will be used.
Get:1 Index of /ubuntu impish/universe amd64 meson all 0.57.0+really0.56.2-0.1ubuntu1 [438 kB]
Fetched 438 kB in 1s (573 kB/s)
Selecting previously unselected package meson.
(Reading database … 198109 files and directories currently installed.)
Preparing to unpack …/meson_0.57.0+really0.56.2-0.1ubuntu1_all.deb …
Unpacking meson (0.57.0+really0.56.2-0.1ubuntu1) …
Setting up meson (0.57.0+really0.56.2-0.1ubuntu1) …
Processing triggers for man-db (2.9.4-2) …
samlane86@samlane86-Laptop:~$ git clone libfprint / fprintd · GitLab cd fprintd
fatal: Too many arguments.

usage: git clone [] [–] []

-v, --verbose         be more verbose
-q, --quiet           be more quiet
--progress            force progress reporting
--reject-shallow      don't clone shallow repository
-n, --no-checkout     don't create a checkout
--bare                create a bare repository
--mirror              create a mirror repository (implies bare)
-l, --local           to clone from a local repository
--no-hardlinks        don't use local hardlinks, always copy
-s, --shared          setup as shared repository
--recurse-submodules[=<pathspec>]
                      initialize submodules in the clone
--recursive ...       alias of --recurse-submodules
-j, --jobs <n>        number of submodules cloned in parallel
--template <template-directory>
                      directory from which templates will be used
--reference <repo>    reference repository
--reference-if-able <repo>
                      reference repository
--dissociate          use --reference only while cloning
-o, --origin <name>   use <name> instead of 'origin' to track upstream
-b, --branch <branch>
                      checkout <branch> instead of the remote's HEAD
-u, --upload-pack <path>
                      path to git-upload-pack on the remote
--depth <depth>       create a shallow clone of that depth
--shallow-since <time>
                      create a shallow clone since a specific time
--shallow-exclude <revision>
                      deepen history of shallow clone, excluding rev
--single-branch       clone only one branch, HEAD or --branch
--no-tags             don't clone any tags, and make later fetches not to follow them
--shallow-submodules  any cloned submodules will be shallow
--separate-git-dir <gitdir>
                      separate git dir from working tree
-c, --config <key=value>
                      set config inside the new repository
--server-option <server-specific>
                      option to transmit
-4, --ipv4            use IPv4 addresses only
-6, --ipv6            use IPv6 addresses only
--filter <args>       object filtering
--remote-submodules   any cloned submodules will use their remote-tracking branch
--sparse              initialize sparse-checkout file to include only files at root

samlane86@samlane86-Laptop:~$ meson builddir

ERROR: Neither directory contains a build file meson.build.

OK your first post is probably why your second post is failing.

You missed a command - “nano”. I went back through this enormous thread and back in post #36 or so I see where it asks you to:

nano meson.txt

nano is a minimalist command-line text editor. It’s actually pretty elegant once you get used to it but it’s proably mystifying the first few times you use it.

The command is asking you to use nano on “meson.txt” and paste lines into it. You’re not in nano, you’re just pasting these lines into the terminal. These are not commands so it doesn’t know what to do with them and gives you errors.

One of your photos does show you got into nano. Just look around for the text the directions indicate and paste. To get out of nano there are hints at the bottom: CTRL + X. It will ask you if you want to save Y / N then you have the ability to edit the file name.

2 Likes

Thanks for the help everyone, I was able to enable my fingerprint reader on Ubuntu 21.04! I am now getting this message shortly after each logon:
login
Any idea what might be causing it ?

Edit: Was related to 1Password. Checking “Unlock using system authentication service” fixed it!

@WBWBW where did you find that option? I’m not using 1 password (another manager) but still get that request?

Could that request be from Google Chrome? I get that every time. I found a way to get it to use the fingerprint reader on logon but then lost access to my account settings (saved website passwords).