Framework NixOS (Linux) users self-help (Firmware/Fingerprint discussion)

Did you enroll your fingerprint? If so, try tapping the fingerprint reader. I think this is a weird thing with SDDM, at least in the default config, you don’t actually even need to enter a password (can hit enter at the blank prompt) but you MUST tap your finger. It’s…confusing and not apparent.

1 Like

I believe it’s something with pam, same behavior on swaylock/waylock/greetd whatsoever.

@milas I tried it out for a bit, was a bit finicky and couldn’t log in despite seeing a graphical response (text bar shaking). I left everything as is in the nixos-hardware settings and just forced my fingerprint reader off in my main config with:

services.fprintd.enable = lib.mkForce false;

Your guess was right, I can log back in no problems! I’d rather have it off for now and figure this thing with SDDM later.
Thank you for the assist :).

EDIT: I’ve found this issue SDDM doesn't work with fingerprint login (fprintd) · Issue #239770 · NixOS/nixpkgs · GitHub basically going through the same thing for anyone interested!

2 Likes

Good find on the issue! I am on unstable (23.11), so based on some of the comments in that thread, it explains why fingerprint-via-SSDM works for me (albeit unintuitively - “hit enter at the blank prompt and then scan your finger without any feedback”).

FWIW unstable will imminently be stable, release schedule @ NixOS 23.11 — Release Schedule · Issue #258640 · NixOS/nixpkgs · GitHub

Random find, looks promising as an option to clear ones fingerprint for Nix users. GitHub - nixvital/fprint-clear: Quick solution to clear your fprint storage - passing along here on the dedicated thread.

2 Likes

@kjhoerr , thanks so much for the work on nixos hardware! Installed nixos with the hardware config yesterday and it went really well! So glad to be out of a VM :smile:

I’m having a bit of issue with the fingerprint though.

  1. It shows up sporadically in Gnome’s User settings page. But I was able to enroll via fprintd-enroll in the command line.

  2. On login it declares a failure without doing anything, but if I scan my fingerprint it logs me in…

  3. Running sudo in the cli doesn’t prompt for a fingerprint scan. ***Update, this now shows when running sudo in the cli. (Maybe a rebuild/restart enabled this, I’m unsure.)

1 Like

Happy to contribute!

This is also the behavior I see. It also prevents you from logging in with a password until a hidden timeout passes. As far as I know this is the common behavior of GDM for all devices, unless the fingerprint reader stores the pass/fail ephemerally on boot, which apparently exists on some (non-Framework) devices.

1 Like

I applied the configuration here: Enabling `fprintd` prevents authentication with password in graphical applications · Issue #171136 · NixOS/nixpkgs · GitHub

It’s greatly improved the fingerprint login/unlock experience, GDM and the lock screen now present a password entry immediately, appended by “(or place finger on reader)”. No timeouts to wait for.

4 Likes

I’ve got it working nicely after updating the goodix fingeprint reader using windows in a VM (under virt-manager) and enabling passthrough.

1 Like

Just wondering if anyone has managed to get the fingerprint scanner working on nixos? (I have an AMD 13)

(Edit: I should have read the above first…)
(Second edit: after looking further above looks like my issue is still relevant, My scanner cant be found.)
I get this when I run fprintd-enroll,
“Impossible to enroll: GDBus.Error:net.reactivated.Fprint.Error.NoSuchDevice: No devices available”
But I got it to work using fedora previously, and have the goodix driver in my config.

Any ideas?

This fixed it for me as well.
Do you think this should be added to the nixos hardware git repo?

1 Like

If it’s not Framework-specific (and it doesn’t look like it is), it should probably go into mainline NixOS or even Nixpkgs.

1 Like

Agreed. There’s already a linked PR for nixpkgs.

This one seems a good candidate for inclusion in nixos-hardware. Could you propose it there?

@uwelaf I had to spin up a vm, install windows, run the official framework’s firmware update tool, stop it in the middle of execution and getting the extracted files from the temp dir.

The extracted files have the goodix update tool so then I mounted the fingerprint reader on the windows vm and updated it there.

Reboot and now linux sees the fingerprint reader.

1 Like

@vitorio_cilia that didnt fix the issue…



1 Like

Moving the firmware / patch discussion portion of Framework NixOS (Linux) users self-help to keep things easier to navigate.

After switching from Manjaro to Nix on my Intel 12th gen, I’m getting the “No devices available” error when enrolling fingerprints. I’ve tried clearing the old fingerprints, updating the firmware (even though the guide said it’s only needed for 13th gen and AMD), nothing is working.

My config contains:

services.fprintd.enable = true;
services.fprintd.tod.enable = true;
services.fprintd.tod.driver = pkgs.libfprint-2-tod1-goodix;
security.pam.services.login.fprintAuth = true;

Any ideas?

1 Like

I think the tod stuff breaks it. Here’s my config: nix/foxtrot.nix at 1d192f702c079e9d4cd2bd7c6e7d02d0e3836feb - nix - git.lyte.dev

Edit: please disregard. I’m on AMD! Sorry!

Edit 2: though it looks like you might try it? The module from nixos-hardware for your main board doesn’t seem to include the tod stuff. https://github.com/NixOS/nixos-hardware/blob/master/framework/13-inch/12th-gen-intel/default.nix

3 Likes

Thanks! It works now