I have found a couple different guides addressing how to set up the fingerprint reader on Ubuntu, Fedora, and other distros, but I haven’t seen anyone post on how to setup the finger print reader in Pop_OS!.
Here is the script I pieced together from these guides. Hope this helps and feel free to make suggest any improvements.
#!/bin/bash
sudo apt update
sudo apt upgrade -y
## Path correction for python (solved a compilation issue)
export PATH="/home/$USER/.local/bin:$PATH"
## Fingerprint reader
sudo apt purge --auto-remove fprintd libfprint-2-2 -y
sudo apt install gtk-doc-tools libfprint-2-dev libgirepository1.0-dev libgusb-dev libgudev-1.0-dev libpam-wrapper libpam0g-dev libpamtest0-dev libpolkit-gobject-1-dev libxml2-utils python3-pip python3-pypamtest git gettext valgrind -y
sudo apt install build-essential cmake gettext libdbus-1-dev libdbus-glib-1-dev libdebconfclient0 libglib2.0-dev libnss3-dev libpixman-1-dev libsystemd-dev meson python3-dbusmock libpam-fprintd udev libcairo2-dev -y
sudo pip install meson
pip install ninja gobject python-dbusmock
git clone https://gitlab.freedesktop.org/libfprint/fprintd.git
git clone https://gitlab.freedesktop.org/libfprint/libfprint.git
cd libfprint/
git fetch
latestTag=$(git describe --tags `git rev-list --tags --max-count=1`)
echo $latestTag
git checkout $latestTag
sudo chown $USER.$USER -R .
meson setup builddir
meson setup --wipe builddir
sudo ninja -C builddir install
cd ../fprintd/
git fetch
latestTag=$(git describe --tags `git rev-list --tags --max-count=1`)
echo $latestTag
git checkout $latestTag
sudo chown $USER.$USER -R .
meson setup builddir
meson setup --wipe builddir
sudo ninja -C builddir install
cd ..
sudo pam-auth-update
echo "You can now go to Settings -> Users to enroll your fingerprints"
echo "If the option does not appear, then there must have been an error in one of the steps above (probably the compilations, lines 31-34)"
Common issues
If you have issues with registering a fingerprint where the dialog says Fingerprint reader disconnected, I have found that this is usually related to previously trying to register the fingerprint through the cli or other means and not clearing it before trying to register again.
This python script can show you any registered fingerprint and adding the -d flag will delete these fingerprints.
Script: https://drop.azokai.com/NCeIGZcl/libfprint_delete_device_prints.py
Just FYI I tried this script on Pop!_OS 21.10 beta (sans sudo apt upgrade -y) and it messed up the gnome-session login screen (symptoms include only a mouse cursor visible for some time after reboot, followed eventually by only the gdm menu at top of screen, with no users listed and no way to log in).
I used recover mode to get back to a working system by running the following:
sudo mount /dev/nvme0n1p3 /mnt
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
sudo cp -n /etc/resolv.conf /mnt/etc/
sudo chroot /mnt
cd /home/duane/tmp/fprintd
ninja -C builddir uninstall
cd /home/duane/tmp/libfprint
ninja -C builddir uninstall
pam-auth-update # <-- then uncheck "fingerprintd"
exit
reboot
Here are some of the error logs I saw when using journalctl -xe but I haven’t had time to figure out what actually went wrong:
Dec 07 19:46:31 pop-os-fw1 gnome-session[2425]: gnome-session-binary[2425]: WARNING: Error while executing session-migration: Failed to ex>
Dec 07 19:46:31 pop-os-fw1 gnome-session-binary[2425]: WARNING: Error while executing session-migration: Failed to execute child process “>
Dec 07 19:46:31 pop-os-fw1 gnome-keyring-daemon[1615]: The Secret Service was already initialized
Dec 07 19:46:31 pop-os-fw1 gnome-keyring-daemon[1615]: The PKCS#11 component was already initialized
Dec 07 19:46:31 pop-os-fw1 gnome-keyring-secrets.desktop[2475]: SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
Dec 07 19:46:31 pop-os-fw1 systemd[1595]: app-gnome-gnome\x2dkeyring\x2dpkcs11-2465.scope: Failed to add PIDs to scope's control group: No>
Dec 07 19:46:31 pop-os-fw1 gnome-keyring-pkcs11.desktop[2479]: SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
Dec 07 19:46:31 pop-os-fw1 gnome-keyring-ssh.desktop[2484]: SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
Dec 07 19:46:31 pop-os-fw1 gnome-keyring-daemon[1615]: The SSH agent was already initialized
Dec 07 19:46:31 pop-os-fw1 systemd[1595]: app-gnome-gnome\x2dkeyring\x2dpkcs11-2465.scope: Failed with result 'resources'.
...
Dec 07 19:46:35 pop-os-fw1 gnome-session[3397]: Unable to init server: Could not connect: Connection refused
Dec 07 19:46:35 pop-os-fw1 gnome-session-f[3397]: Cannot open display:
Dec 07 19:46:35 pop-os-fw1 gdm-launch-environment][1011]: pam_unix(gdm-launch-environment:session): session closed for user gdm
Dec 07 19:46:35 pop-os-fw1 gdm-launch-environment][1011]: GLib-GObject: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
I went through the entire process without any error popping out. I got the “Fingerprint login” option in the user settings. However, it is greyed out and won’t be able to click on it to add fingerprints. Have anyone run into this issue before?
I have been looking into trying to get the fingerprint working in pop for a few days but was a but daunted by the complexity behind all of the how-tos and posts about it.
I noticed that there is a libpam-fprintd in apt and figured it would be an easy thing to test out.
I installed it via apt then did a pam-auth-update to enable finger print scanning and everything started working without any issues.
libpam-fprintd/impish 1.90.9-1build1 amd64
PAM module for fingerprint authentication through fprintd
Im on the new 21.10 update. Login and mid-session prompts for elevated access are working. I was able to find the fingerprint option in the ‘Users’ menu immediately after the apt install was complete.
OK, this seems to be related to the Chromium browser. It uses some custom keyring to store saved passwords and this keyring isn’t unlocked by libfprint, you need your account password. It disappeared after Chromium uninstall (it isn’t my default browser).
Yet, the same appears when I open VSCode. So this is kind of a problem that libfprint cannot unlock the login keyring
Thanks to @Vizzo and @ololobus, it is now (mostly) working for me on Pop 21.10.
I am experiencing the same login issue that @ololobus describes, but as a workaround I can tab to the password field, type it in, wait for the fingerprint auth to time out, then hit enter to login.
Otherwise, it works great in CLI for sudo and in the OS UI dialogs (e.g, Preferences)
I’m coming across an error when trying to register a fingerprint though and a bit stumped. I don’t know what other process it alludes to as I don’t have a fingerprint registered yet.
Error: Failed to claim fingerprint device Goodix MOC Fingerprint Sensor: this device is already claimed by another process.
I ran the script but the fingerprint reader wasn’t enabled in the settings. Then when I rebooted, I didn’t get a login prompt at all. It was just a grey screen with the date at the top and the standard settings at the top right.
I booted up into Ubuntu on another partition but I’m not sure how to fix the Pop!_OS partition from here.
@Jacob_Griffin Is it now safe to remove the “fprintd” and “libfprint” directories? I installed them in my home directory and would ideally like to keep directories in there to a minimum.
@Duane_Johnson do you or anyone else have an idea of how to fix the issue of not having users listed & not being able to login from the original code if your drive is encrypted? I’m having a rough time trying to follow your fix because the Luks encryption. I still have not been able to mount my drive while in recovery mode and my user folder is denying me access.
I’m on Pop OS 21.10.
In my searching to fix this problem, I’ve encountered many others who’ve suggested trying things like this:
cryptsetup luksOpen /dev/nvme0n1p3 crypt_data
mount /dev/mapper/crypt_data /mnt
I tried the first line and i get stuck because it spits the error line:
cryptsetup open /dev/nvme0n1p3 crypt_data
Device /dev/nvme0n1p3 does not exist or access denied.
I’ve also tried just accessing my user folder through the Files app because graphical interfaces are my crutch and I was able to locate my user folder already mounted at: /media/recovery/[root folder]/home/[user] but to my dismay, it gave me this error when I tried to open it.
Please help? I have a backup of my entire home folder, but it would be really nice if I didn’t have to reinstall Pop OS for the 4th time since that’s a lot more work to re-setup my pc.
Edit: also, yes I tried the most recent suggestions by @ololobus and @rumlyne , neither worked for me for whatever reason. The fingerprint option never showed in the PAM settings.