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

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

This was a nix issue, you just don’t specify the driver and it works.

I had an issue where i want to login with password on first boot to unlock my kdewallet, but every subsequent unlock screen want to use fingerprint, I couldn’t really see anyone else having the same issue, so posting here for everyone what fixed it for me:

services.fprintd.enable = true;
security.pam.services.login.fprintAuth = false;

security.pam.services.kde = {
text = ‘’
auth sufficient pam_fprintd.so
auth include system-login
‘’;
};

I have been having issues with idle power use on my stock 13th gen intel FW13 running NixOS, but recently they were mostly resolved. I wanted to share my results for others to compare.

Measurements were done using powertop.

On 50% brightness:

On 10% brightness:

I am using the following power settings:

boot.kernelParams = mkIf cfg.intel.enable [

    "intel_idle.max_cstate=9"

    "i915.enable_psr=1"

    "pcie_aspm=force"

];

powerManagement.enable  = true;

powerManagement.powertop.enable = true;

powerManagement.cpuFreqGovernor = "schedutil";

hardware.system76.power-daemon.enable = true;

services.system76-scheduler.settings.cfsProfiles.enable = true;

services.thermald.enable = true;

services.upower.enable = true;

Alongside this I am using Niri with the Niri system76 scheduler. You can check out the full configuration here: BW20/nixos - Codeberg.org

I hope this helps other’s with resolving high idle power use.