Change:
Steps to reproduce the behavior: fprint reader in my device is supported by . use these config: Nothing. Please run and paste the result.
This builds but I haven't tested it yet.
Doesn't work yet. Now it segfaults in libusb. Likely due to this:
This finally builds and doesn't segfault but still doesn't work. There is a mysterious in the log, which Google knows .
Looks like we have to upgrade some versions: I'll wait with that for some days (maybe weeks) until my libusb update () percolated through the channels.
any update on this? It looks like merged 16 days ago but I'm still getting this same failure as above. I'm running nixos-unstable.
I'm on NixOS 22.05 and the update hasn't arrived there yet. I'll look into it again in the next days.
The libusb update is scheduled for the next staging iteration on 22.05: Just a few more days.
PR is open and welcomes your review: In the meanwhile, this works for me on Dell XPS 13 9310.
I was able to get it installed using your workaround! But when I try to enroll, as soon as I touch the fingerprint sensor, I get : Here's :
Great...
Upstream refuses to fix this: The good news is that with the updated my previous attempt seems to work again on NixOS 22.05.
thanks the latest config you shared is working for me!
I think this issue can be closed with the fix by Thanks a lot,
Please leave this open until the fix is merged.
The backport has also been merged. So the fixed derivation is soon going to appear in the channels.
I tried building on unstable and got following error: Maybe I jumped the gun? I've lost track of which PR I'm supposed to care about. :smile:
Have been trying to make this work with: libfprint-2-tod1-goodix-550a It is building correctly, no errors, but on enrolling: ~ sudo fprintd-enroll ⏎ [sudo] password for qlexqndru: Using device /net/reactivated/Fprint/Device/0 Enrolling right-index-finger finger. Enroll result: enroll-unknown-error I am using the latest 1.94.7 Anyone else in my shoes? Or any ideas? Any help is appreciated, thank you! journalctl Jul 12 13:02:38 0xQ fprintd[]: About to load configuration file '/nix/store/fwqf97ljyiv2pq6c0ibfchmilbmfzqi7-fprintd-' Jul 12 13:02:38 0xQ fprintd[]: Launching FprintObject Jul 12 13:02:38 0xQ fprintd[]: Opening driver /nix/store/clmh3fz32d296pvgcjjkbsmk0njnlqva-libfprint-2-tod1-goodix-550a-0.0.9/lib/libfprint-2/tod-1/libfprint-tod-goodix-550a- Jul 12 13:02:38 0xQ fprintd[]: Found TOD entry point symbol 0x7f580205a630, GType is Jul 12 13:02:38 0xQ fprintd[]: Loading driver goodix-tod (Goodix Fingerprint Sensor 550A) Jul 12 13:02:38 0xQ fprintd[]: Initializing features for driver goodix-tod Jul 12 13:02:38 0xQ fprintd[]: Preparing devices for resume Jul 12 13:02:38 0xQ fprintd[]: No driver found for USB device 1D6B:0003 Jul 12 13:02:38 0xQ fprintd[]: No driver found for USB device 5986:215D Jul 12 13:02:38 0xQ fprintd[]: No driver found for USB device 8087:0026 Jul 12 13:02:38 0xQ fprintd[]: No driver found for USB device 1D6B:0002 Jul 12 13:02:38 0xQ fprintd[]: No driver found for USB device 1D6B:0003 Jul 12 13:02:38 0xQ fprintd[]: No driver found for USB device 1D6B:0002 Jul 12 13:02:38 0xQ fprintd[]: GFUSBGM168SECAPP15045 Jul 12 13:02:39 0xQ fprintd[]: Device reported probe completion Jul 12 13:02:39 0xQ fprintd[]: Got delay inhibitor for sleep. Jul 12 13:02:39 0xQ fprintd[]: Completing action FPIDEVICEACTIONPROBE in idle! Jul 12 13:02:39 0xQ fprintd[]: Updated temperature model after 0.65 seconds, ratio 0.27 -0.27, active 0 -0, FPTEMPERATURECOLD -FPTEMPERATURECOLD Jul 12 13:02:39 0xQ fprintd[]: Device Goodix Fingerprint Sensor 550A scan type changed to 'press' Jul 12 13:02:39 0xQ fprintd[]: Device Goodix Fingerprint Sensor 550A enroll stages changed to 13 Jul 12 13:02:39 0xQ fprintd[]: Finger present 0 Jul 12 13:02:39 0xQ fprintd[]: Finger needed 0 Jul 12 13:02:39 0xQ fprintd[]: entering main loop Jul 12 13:02:39 0xQ fprintd[]: D-Bus service launched with name: net.reactivated.Fprint Jul 12 13:02:39 0xQ systemd[1]: Started Fingerprint Authentication Daemon. Jul 12 13:02:46 0xQ fprintd[]: Requesting authorization from :1.183 to call method 'ListEnrolledFingers' for device 'Goodix Fingerprint Sensor 550A' Jul 12 13:02:46 0xQ fprintd[]: Getting authorization to perform Polkit action Jul 12 13:02:46 0xQ fprintd[]: Getting authorization to perform Polkit action Jul 12 13:02:46 0xQ fprintd[]: Authorization granted to :1.183 to call method 'ListEnrolledFingers' for device 'Goodix Fingerprint Sensor 550A'! Jul 12 13:02:46 0xQ fprintd[]: filestoragediscoverprints() for user 'qlexqndru' in '/var/lib/fprint/qlexqndru/goodix-tod/0' Jul 12 13:02:46 0xQ fprintd[]: scandevstoredir(): opendir("/var/lib/fprint/qlexqndru/goodix-tod/0") failed: Error opening directory “/var/lib/fprint/qlexqndru/goodix-tod/0”: No suchJul 12 13:02:50 0xQ fprintd[]: Requesting authorization from :1.184 to call method 'Claim' for device 'Goodix Fingerprint Sensor 550A' Jul 12 13:02:50 0xQ fprintd[]: Getting authorization to perform Polkit action Jul 12 13:02:50 0xQ fprintd[]: Authorization granted to :1.184 to call method 'Claim' for device 'Goodix Fingerprint Sensor 550A'! Jul 12 13:02:50 0xQ fprintd[]: user 'root' claiming the device: 0 Jul 12 13:02:50 0xQ fprintd[]: GFUSBGM168SECAPP15045 Jul 12 13:02:50 0xQ fprintd[]: Device reported open completion Jul 12 13:02:50 0xQ fprintd[]: Completing action FPIDEVICEACTIONOPEN in idle! Jul 12 13:02:50 0xQ fprintd[]: Updated temperature model after 11.51 seconds, ratio 0.27 -0.26, active 0 -0, FPTEMPERATURECOLD -FPTEMPERATURECOLD Jul 12 13:02:50 0xQ fprintd[]: claimed device 0 Jul 12 13:02:50 0xQ fprintd[]: Requesting authorization from :1.184 to call method 'EnrollStart' for device 'Goodix Fingerprint Sensor 550A' Jul 12 13:02:50 0xQ fprintd[]: Getting authorization to perform Polkit action Jul 12 13:02:50 0xQ fprintd[]: Authorization granted to :1.184 to call method 'EnrollStart' for device 'Goodix Fingerprint Sensor 550A'! Jul 12 13:02:50 0xQ fprintd[]: filestorageprintdataload(): loaded '/var/lib/fprint/root/goodix-tod/0/7' Unknown error -2 Jul 12 13:02:50 0xQ fprintd[]: start enrollment device 0 finger 7 Jul 12 13:02:50 0xQ fprintd[]: filestoragediscoverprints() for user 'goodix' in '/var/lib/fprint/goodix/goodix-tod/0' Jul 12 13:02:50 0xQ fprintd[]: scandevstoredir(): opendir("/var/lib/fprint/goodix/goodix-tod/0") failed: Error opening directory “/var/lib/fprint/goodix/goodix-tod/0”: No such file Jul 12 13:02:50 0xQ fprintd[]: Updated temperature model after 0.00 seconds, ratio 0.26 -0.26, active 1 -1, FPTEMPERATURECOLD -FPTEMPERATURECOLD Jul 12 13:02:50 0xQ fprintd[]: [goodix-tod] IDENTIFYSTARTNUMSTATES entering state 0 Jul 12 13:02:50 0xQ fprintd[]: [goodix-tod] IDENTIFYSTARTNUMSTATES entering state 1 Jul 12 13:02:51 0xQ fprintd[]: Identify result: 0, index: -1 Jul 12 13:02:51 0xQ fprintd[]: [goodix-tod] SSM IDENTIFYSTARTNUMSTATES failed in state 1 with error: An unspecified error occurred! Jul 12 13:02:51 0xQ fprintd[]: [goodix-tod] IDENTIFYSTARTNUMSTATES completed with error: An unspecified error occurred! Jul 12 13:02:51 0xQ fprintd[]: Device reported identify completion Jul 12 13:02:51 0xQ fprintd[]: Completing action FPIDEVICEACTIONIDENTIFY in idle! Jul 12 13:02:51 0xQ fprintd[]: Updated temperature model after 1.16 seconds, ratio 0.26 -0.27, active 0 -0, FPTEMPERATURECOLD -FPTEMPERATURECOLD Jul 12 13:02:51 0xQ fprintd[]: Device reported an error during identify for enroll: An unspecified error occurred! Jul 12 13:02:51 0xQ fprintd[]: Requesting authorization from :1.184 to call method 'EnrollStop' for device 'Goodix Fingerprint Sensor 550A' Jul 12 13:02:51 0xQ fprintd[]: Authorization granted to :1.184 to call method 'EnrollStop' for device 'Goodix Fingerprint Sensor 550A'! Jul 12 13:02:51 0xQ fprintd[]: Requesting authorization from :1.184 to call method 'Release' for device 'Goodix Fingerprint Sensor 550A' Jul 12 13:02:51 0xQ fprintd[]: Authorization granted to :1.184 to call method 'Release' for device 'Goodix Fingerprint Sensor 550A'! Jul 12 13:02:52 0xQ fprintd[]: Device reported close completion Jul 12 13:02:52 0xQ fprintd[]: Completing action FPIDEVICEACTIONCLOSE in idle! Jul 12 13:02:52 0xQ fprintd[]: Updated temperature model after 0.51 seconds, ratio 0.27 -0.27, active 0 -0, FPTEMPERATURECOLD -FPTEMPERATURECOLD Jul 12 13:02:52 0xQ fprintd[]: released device 0

Discussion:
<del> { fetchFromGitLab </del> <ins> { lib , fetchFromGitLab , fetchpatch </ins> , fprintd , libfprint-tod }: <del> (fprintd.override { libfprint = libfprint-tod; }).overrideAttrs (oldAttrs: let </del> <ins> (fprintd.override { libfprint = libfprint-tod; }).overrideAttrs (oldAttrs: rec { </ins> pname = "fprintd-tod"; version = "1.90.9"; <del> in { inherit pname version; </del> src = fetchFromGitLab { domain = "gitlab.freedesktop.org"; owner = "libfprint"; <del> repo = "${oldAttrs.pname}"; </del> <ins> repo = "fprintd"; </ins> rev = "v${version}"; sha256 = "sha256-rOTVThHOY/Q2IIu2RGiv26UE2V/JFfWWnfKZQfKl5Mg="; }; <ins> patches = oldAttrs.patches or [] ++ [ (fetchpatch { name = "use-more-idiomatic-correct-embedded-shell-scripting"; url = "https://gitlab.freedesktop.org/libfprint/fprintd/-/commit/f4256533d1ffdc203c3f8c6ee42e8dcde470a93f.patch"; sha256 = "sha256-4uPrYEgJyXU4zx2V3gwKKLaD6ty0wylSriHlvKvOhek="; }) (fetchpatch { name = "remove-pointless-copying-of-files-into-build-directory"; url = "https://gitlab.freedesktop.org/libfprint/fprintd/-/commit/2c34cef5ef2004d8479475db5523c572eb409a6b.patch"; sha256 = "sha256-2pZBbMF1xjoDKn/jCAIldbeR2JNEVduXB8bqUrj2Ih4="; }) (fetchpatch { name = "build-Do-not-use-positional-arguments-in-i18n.merge_file"; url = "https://gitlab.freedesktop.org/libfprint/fprintd/-/commit/50943b1bd4f18d103c35233f0446ce7a31d1817e.patch"; sha256 = "sha256-ANkAq6fr0VRjkS0ckvf/ddVB2mH4b2uJRTI4H8vPPes="; }) ]; postPatch = oldAttrs.postPatch or "" + '' # part of "remove-pointless-copying-of-files-into-build-directory" but git-apply doesn't handle renaming mv src/device.xml src/net.reactivated.Fprint.Device.xml mv src/manager.xml src/net.reactivated.Fprint.Manager.xml ''; meta = { homepage = "https://fprint.freedesktop.org/"; description = "fprintd built with libfprint-tod to support Touch OEM Drivers"; license = lib.licenses.gpl2Plus; platforms = lib.platforms.linux; maintainers = with lib.maintainers; [ hmenke ]; }; </ins> })