Giter VIP home page Giter VIP logo

synatudor's Introduction

Synaptics Tudor Driver Relinking Project

This project attempts to dynamically relink the driver of the Synaptics Tudor family of fingerprint sensors at run time, allowing them to run and provide their functionality on Linux-based x86-64 systems. It split off from the reverse engineering branch after it hit multiple dead ends, and because it showed the potential of quickly allowing for the creation of something which can at least allow users to use the sensors installed in their hardware.

THIS PROJECT IS PROVIDED AS IS, WITHOUT WARRANTY OR LIABILITY OF ANY KIND, OR FOR ANY RISKS OR SIDE EFFECTS WHICH MIGHT OCCUR FROM USAGE OF ANYTHING PROVIDED AS PART OF THIS PROJECT, INCLUDING, BUT NOT LIMITED TO, BRICKED SENSORS, CORRUPTED FIRMWARE, BYPASSES OF HOST SECURITY, AND VULNERABILITIES IN THE CODE. USE AT YOUR OWN RISK.

NOTE: The project should be fully functional right now, contrary to its earlier state. If there are any issues, please report them.

Structure

This project is split over multiple folders, all providing different parts of the functionality:

  • libtudor: Contains the common library code handling relinking and interfacing with the driver.
  • cli: Contains a simple CLI wrapper for the relinked driver.
  • tudor-host: Contains the host application for libtudor, used by the libfprint module.
  • tudor-host-launcher: Contains the systemd service which launches the tudor host processes. This extra step is needed to bypass the strict fprintd sandboxing, which messes with the host's even stricter sandboxing.
  • libfprint-tod: Contains the libfprint module, to be loaded by the libfprint TOD fork.

Building / Installation

The same build system used by libfprint, meson, is used for this project. During the first build, the Windows driver is automatically downloaded and extracted. innoextract has to be installed for this. To build and install all contained parts, execute:

meson build
cd build
ninja
sudo ninja install

(for Arch Linux specifically, you might want to use arch-meson instead of meson)

For documentation about build options etc., see the individual parts.

For the libfprint module to be picked up and work, you'll need to have a libfprint-tod fork of libfprint installed. Most Linux distributions have a seperate package which you can install instead of the regular libfprint one (e.g. Arch Linux: AUR libfprint-tod-git).

NOTE: Currently libfprint-tod has a bug which can cause fprintd to lock up. It's recommended to use this fork for now, at least until it's merged into the base repository. The regular upstream libfprint-tod repository should work now

synatudor's People

Contributors

popax21 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

synatudor's Issues

Support 06cb:0081

Hi!
I am impressed with your work! I wanted to ask if your package allows you to build drivers for other Synaptics devices? I have a Lenovo Yoga with Synaptics 06cb:0081. I tried to replace the source in the download_driver.sh file with mine: https://download.lenovo.com/consumer/mobiles/f7ye02af.exe Unfortunately, the files look completely different. I tried with your package and overwriting my files, but of course it doesn't work.
I understand that your package is not universal and only supports 06cb:00BE?
Can you help me somehow or is it too much work for you?
I'm not a programmer. I only write tiny programs in Python, so it's too difficult for me.
I hope I wrote understandably because I use Google Translator.

Randomly fprintd service stops

Randomly the fprintd service stops and says tudor failed and then won't work again until I manually say start the fprintd service

Segfault

Hi, i managed to compile your project by adding additional compile flags (e.g. -lusb-1.0 at CFLAGS and LFLAGS, i believe something is wrong with my libusb install.) Anyways, i finally got the following output:

$ sudo out/tudor ../../fingerprintfile
[INF] Initializing libcrypto...
[INF] Initializing libusb...
[INF] Found sensor USB device [bus 1 addr 4 vid 0x06cb pid 0x00be]
[INF] Opening sensor USB device...
[INF] Dropping root privileges... [new uid=1000 new gid=1000]
[INF] Initializing tudor driver...
[WRN] PE file contains unsupported resource data directory!
[WRN] PE file contains unsupported exception data directory!
[INF] Loaded driver DLL 'synaFpAdapter104.dll' [186656 bytes]
[WRN] PE file contains unsupported resource data directory!
[WRN] PE file contains unsupported exception data directory!
[WRN] Data directory 4 has invalid bounds! [end 0x17ebe0 > image end 0x17e000]
[INF] Loaded driver DLL 'synaWudfBioUsb104.dll' [1567712 bytes]
[INF] Initializing driver DLL 'synaFpAdapter104.dll'...
[INF] Initializing driver DLL 'synaWudfBioUsb104.dll'...
[INF] Loading data from data store '../../fingerprintfile'...
[INF] Opening tudor device...
[WRN] GetModuleHandleExW called with unsupported flag GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS! [addr=0x7fa9d7399710]
Segmentation fault

Using: Pop-OS latest

Maybe you can help.

Best regards!

Compile error: 'SYS_futex_waitv' undeclared

First of all, thank you very much for your effort to make this fingerprint reader work. I may have a rather simple problem: ninja throws the following error:

[61/83] Compiling C object tudor-host/tudor_host.p/src_sandbox.c.o
FAILED: tudor-host/tudor_host.p/src_sandbox.c.o 
cc -Itudor-host/tudor_host.p -Itudor-host -I../tudor-host -I../tudor-host/src -I../tudor-host/inc -I../libtudor/inc -I/usr/include/libusb-1.0 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -g -pthread -D_GNU_SOURCE -DUNMOUNTFS -MD -MQ tudor-host/tudor_host.p/src_sandbox.c.o -MF tudor-host/tudor_host.p/src_sandbox.c.o.d -o tudor-host/tudor_host.p/src_sandbox.c.o -c ../tudor-host/src/sandbox.c
In file included from ../tudor-host/src/sandbox.c:20:
../tudor-host/src/sandbox.c: In function ‘setup_seccomp’:
../tudor-host/src/sandbox.c:153:58: error: ‘SYS_futex_waitv’ undeclared (first use in this function)
  153 |     cant_fail(seccomp_rule_add(scmp_ctx, SCMP_ACT_ALLOW, SYS_futex_waitv, 0));
      |                                                          ^~~~~~~~~~~~~~~

I am running Ubuntu 22.04 with Kernel 5.15. Googling "SYS_futex_waitv", I have found out this syscall seems to have been introduced with kernel 5.16, so I installed that (and also 5.18) from the mainline repository, to no avail. Is there something I might be missing?

FEDORA: Impossible to enroll: GDBus.Error:net.reactivated.Fprint.Error.NoSuchDevice: No devices available

Hello! First of all thank you very much for creating the controller for this sensor!!!
I'm trying to get it to work on Fedora 37 and can't get it to detect the sensor:

$ fprintd-enroll 
Impossible to enroll: GDBus.Error:net.reactivated.Fprint.Error.NoSuchDevice: No devices available
$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 06cb:00be Synaptics, Inc. 
Bus 001 Device 002: ID 5986:212b Bison Electronics Inc. Integrated Camera
Bus 001 Device 004: ID 8087:0029 Intel Corp. AX200 Bluetooth
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
# dnf list installed | grep fprint
fprintd.x86_64                                       1.94.2-3.fc37                      @fedora                                        
libfprint-tod.x86_64                                 1.94.5+tod1-3.fc37                 @copr:copr.fedorainfracloud.org:dhodyn:personal
libfprint-tod-devel.x86_64                           1.94.5+tod1-3.fc37                 @copr:copr.fedorainfracloud.org:dhodyn:personal
# cat synaTudor/build/meson-logs/install-log.txt 
# List of files installed by Meson
# Does not contain files installed by custom scripts.
/sbin/tudor/libtudor.so
/sbin/tudor/tudor_cli
/sbin/tudor/tudor_host
/sbin/tudor/tudor_host_launcher
/usr/lib64/libfprint-2/tod-1/libtudor_tod.so
/usr/lib/systemd/system/tudor-host-launcher.service
/usr/share/dbus-1/system.d/net.reactivated.TudorHostLauncher.conf
/usr/share/dbus-1/system-services/net.reactivated.TudorHostLauncher.service
/usr/lib/udev/60-tudor-libfprint-tod.rules
# journalctl -b -u fprintd.service
abr 10 16:54:40 fedora systemd[1]: Starting fprintd.service - Fingerprint Authentication Daemon...
abr 10 16:54:40 fedora fprintd[1623]: Failed to start Tudor host process - is tudor-host-launcher.service running? Error: 'GDBus.Error:org.freedesktop.DBus.Error.NoReply: Remote peer disconnected' (g-dbus-error-quark code 4)
abr 10 16:54:40 fedora fprintd[1623]: Ignoring device due to initialization error: GDBus.Error:org.freedesktop.DBus.Error.NoReply: Remote peer disconnected
abr 10 16:54:40 fedora systemd[1]: Started fprintd.service - Fingerprint Authentication Daemon.
abr 10 16:55:11 fedora systemd[1]: fprintd.service: Deactivated successfully.
# journalctl -b -u tudor-host-launcher.service
abr 10 16:54:40 fedora systemd[1]: Starting tudor-host-launcher.service - Tudor host launcher DBus service...
abr 10 16:54:40 fedora systemd[1]: Started tudor-host-launcher.service - Tudor host launcher DBus service.
abr 10 16:54:40 fedora systemd[1]: tudor-host-launcher.service: Deactivated successfully.

I did the steps on a virtual installation of Ubuntu (VirtualBox) and it worked fine, but on Fedora (which is my real distro) I can't get it to detect the sensor.
I don't know how to continue diagnosing, could you help me. Thank you!!!

Sorry for my english, I'm using google translate.

Whenever fprintd launches, tudor-host-launcher.service loses DBus name

I'm on Fedora 40, GNOME 46
tudor-host-launcher.service runs fine when I start it, but as soon as I attempt to start fprintd, or go to Settings->System->Users, tudor-host-launcher immediately gets deactivated.

I've compiled fprintd, libfprint-tod myself.

Is there a way to solve this issue?

○ tudor-host-launcher.service - Tudor host launcher DBus service
     Loaded: loaded (/usr/lib/systemd/system/tudor-host-launcher.service; enabled; preset: disabled)
    Drop-In: /usr/lib/systemd/system/service.d
             └─10-timeout-abort.conf
             /etc/systemd/system/tudor-host-launcher.service.d
             └─override.conf
     Active: inactive (dead) since Fri 2024-05-17 22:12:59 CEST; 1s ago
   Duration: 26.883s
    Process: 15354 ExecStart=/usr/sbin/tudor/tudor_host_launcher (code=killed, signal=TERM)
   Main PID: 15354 (code=killed, signal=TERM)
        CPU: 48ms

May 17 22:12:32 dunkelheit systemd[1]: Starting tudor-host-launcher.service - Tudor host launcher DBus service...
May 17 22:12:32 dunkelheit tudor_host_laun[15354]: Using cross-namespace EXTERNAL authentication (this will deadlock if server is GDBus < 2.73.3)
May 17 22:12:32 dunkelheit systemd[1]: Started tudor-host-launcher.service - Tudor host launcher DBus service.
May 17 22:12:32 dunkelheit tudor_host_laun[15354]: Acquired DBus name 'net.reactivated.TudorHostLauncher'
May 17 22:12:59 dunkelheit tudor_host_laun[15354]: Launched Tudor host process ID 1 PID 15508 for USB bus 0x0001 addr 0x0005
May 17 22:12:59 dunkelheit tudor_host_laun[15354]: Lost DBus name 'net.reactivated.TudorHostLauncher'!
May 17 22:12:59 dunkelheit systemd[1]: tudor-host-launcher.service: Deactivated successfully.

synaTudor failes to compile on Fedora 39

I'm not really good at bug reporting, sorry. I've managed to get meson build and ninja to work, but installing it seems to fail.

[1/6] Compiling C object libfprint-tod/libtudor_tod.so.p/src_device.c.o
FAILED: libfprint-tod/libtudor_tod.so.p/src_device.c.o 
ccache cc -Ilibfprint-tod/libtudor_tod.so.p -Ilibfprint-tod -I../libfprint-tod -I../libtudor/inc -I../tudor-host/inc -I../tudor-host-launcher/inc -I/usr/include/nss3 -I/usr/include/libusb-1.0 -I/usr/include/json-glib-1.0 -I/usr/include/nspr4 -I/usr/local/include/libfprint-2/tod-1 -I/usr/include/gio-unix-2.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/libmount -I/usr/local/include/libfprint-2 -I/usr/include/blkid -I/usr/include/gusb-1 -I/usr/include/pixman-1 -I/usr/include/sysprof-6 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O0 -g -fPIC -pthread -D_GNU_SOURCE -Wno-missing-braces -MD -MQ libfprint-tod/libtudor_tod.so.p/src_device.c.o -MF libfprint-tod/libtudor_tod.so.p/src_device.c.o.d -o libfprint-tod/libtudor_tod.so.p/src_device.c.o -c ../libfprint-tod/src/device.c
../libfprint-tod/src/device.c: In function ‘fpi_device_tudor_class_init’:
../libfprint-tod/src/device.c:176:14: error: ‘FpDeviceClass’ {aka ‘struct _FpDeviceClass’} has no member named ‘clear_storage’
  176 |     dev_class->clear_storage = fpi_device_clear_storage;
      |              ^~
../libfprint-tod/src/device.c:178:5: warning: implicit declaration of function ‘fpi_device_class_auto_initialize_features’ [-Wimplicit-function-declaration]
  178 |     fpi_device_class_auto_initialize_features(dev_class);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[2/6] Compiling C object libfprint-tod/libtudor_tod.so.p/src_verify.c.o
FAILED: libfprint-tod/libtudor_tod.so.p/src_verify.c.o 
ccache cc -Ilibfprint-tod/libtudor_tod.so.p -Ilibfprint-tod -I../libfprint-tod -I../libtudor/inc -I../tudor-host/inc -I../tudor-host-launcher/inc -I/usr/include/nss3 -I/usr/include/libusb-1.0 -I/usr/include/json-glib-1.0 -I/usr/include/nspr4 -I/usr/local/include/libfprint-2/tod-1 -I/usr/include/gio-unix-2.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/libmount -I/usr/local/include/libfprint-2 -I/usr/include/blkid -I/usr/include/gusb-1 -I/usr/include/pixman-1 -I/usr/include/sysprof-6 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O0 -g -fPIC -pthread -D_GNU_SOURCE -Wno-missing-braces -MD -MQ libfprint-tod/libtudor_tod.so.p/src_verify.c.o -MF libfprint-tod/libtudor_tod.so.p/src_verify.c.o.d -o libfprint-tod/libtudor_tod.so.p/src_verify.c.o -c ../libfprint-tod/src/verify.c
../libfprint-tod/src/verify.c: In function ‘verify_acked_cb’:
../libfprint-tod/src/verify.c:87:5: warning: implicit declaration of function ‘fpi_device_report_finger_status_changes’ [-Wimplicit-function-declaration]
   87 |     fpi_device_report_finger_status_changes(FP_DEVICE(tdev), FP_FINGER_STATUS_NEEDED, FP_FINGER_STATUS_NONE);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libfprint-tod/src/verify.c:87:62: error: ‘FP_FINGER_STATUS_NEEDED’ undeclared (first use in this function)
   87 |     fpi_device_report_finger_status_changes(FP_DEVICE(tdev), FP_FINGER_STATUS_NEEDED, FP_FINGER_STATUS_NONE);
      |                                                              ^~~~~~~~~~~~~~~~~~~~~~~
../libfprint-tod/src/verify.c:87:62: note: each undeclared identifier is reported only once for each function it appears in
../libfprint-tod/src/verify.c:87:87: error: ‘FP_FINGER_STATUS_NONE’ undeclared (first use in this function)
   87 |     fpi_device_report_finger_status_changes(FP_DEVICE(tdev), FP_FINGER_STATUS_NEEDED, FP_FINGER_STATUS_NONE);
      |                                                                                       ^~~~~~~~~~~~~~~~~~~~~
[3/6] Compiling C object libfprint-tod/libtudor_tod.so.p/src_enroll.c.o
FAILED: libfprint-tod/libtudor_tod.so.p/src_enroll.c.o 
ccache cc -Ilibfprint-tod/libtudor_tod.so.p -Ilibfprint-tod -I../libfprint-tod -I../libtudor/inc -I../tudor-host/inc -I../tudor-host-launcher/inc -I/usr/include/nss3 -I/usr/include/libusb-1.0 -I/usr/include/json-glib-1.0 -I/usr/include/nspr4 -I/usr/local/include/libfprint-2/tod-1 -I/usr/include/gio-unix-2.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/libmount -I/usr/local/include/libfprint-2 -I/usr/include/blkid -I/usr/include/gusb-1 -I/usr/include/pixman-1 -I/usr/include/sysprof-6 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O0 -g -fPIC -pthread -D_GNU_SOURCE -Wno-missing-braces -MD -MQ libfprint-tod/libtudor_tod.so.p/src_enroll.c.o -MF libfprint-tod/libtudor_tod.so.p/src_enroll.c.o.d -o libfprint-tod/libtudor_tod.so.p/src_enroll.c.o -c ../libfprint-tod/src/enroll.c
../libfprint-tod/src/enroll.c: In function ‘enroll_start_acked_cb’:
../libfprint-tod/src/enroll.c:125:5: warning: implicit declaration of function ‘fpi_device_report_finger_status_changes’ [-Wimplicit-function-declaration]
  125 |     fpi_device_report_finger_status_changes(FP_DEVICE(tdev), FP_FINGER_STATUS_NEEDED, FP_FINGER_STATUS_NONE);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libfprint-tod/src/enroll.c:125:62: error: ‘FP_FINGER_STATUS_NEEDED’ undeclared (first use in this function)
  125 |     fpi_device_report_finger_status_changes(FP_DEVICE(tdev), FP_FINGER_STATUS_NEEDED, FP_FINGER_STATUS_NONE);
      |                                                              ^~~~~~~~~~~~~~~~~~~~~~~
../libfprint-tod/src/enroll.c:125:62: note: each undeclared identifier is reported only once for each function it appears in
../libfprint-tod/src/enroll.c:125:87: error: ‘FP_FINGER_STATUS_NONE’ undeclared (first use in this function)
  125 |     fpi_device_report_finger_status_changes(FP_DEVICE(tdev), FP_FINGER_STATUS_NEEDED, FP_FINGER_STATUS_NONE);
      |                                                                                       ^~~~~~~~~~~~~~~~~~~~~
[4/6] Compiling C object libfprint-tod/libtudor_tod.so.p/src_identify.c.o
FAILED: libfprint-tod/libtudor_tod.so.p/src_identify.c.o 
ccache cc -Ilibfprint-tod/libtudor_tod.so.p -Ilibfprint-tod -I../libfprint-tod -I../libtudor/inc -I../tudor-host/inc -I../tudor-host-launcher/inc -I/usr/include/nss3 -I/usr/include/libusb-1.0 -I/usr/include/json-glib-1.0 -I/usr/include/nspr4 -I/usr/local/include/libfprint-2/tod-1 -I/usr/include/gio-unix-2.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/libmount -I/usr/local/include/libfprint-2 -I/usr/include/blkid -I/usr/include/gusb-1 -I/usr/include/pixman-1 -I/usr/include/sysprof-6 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O0 -g -fPIC -pthread -D_GNU_SOURCE -Wno-missing-braces -MD -MQ libfprint-tod/libtudor_tod.so.p/src_identify.c.o -MF libfprint-tod/libtudor_tod.so.p/src_identify.c.o.d -o libfprint-tod/libtudor_tod.so.p/src_identify.c.o -c ../libfprint-tod/src/identify.c
../libfprint-tod/src/identify.c: In function ‘identify_acked_cb’:
../libfprint-tod/src/identify.c:131:5: warning: implicit declaration of function ‘fpi_device_report_finger_status_changes’ [-Wimplicit-function-declaration]
  131 |     fpi_device_report_finger_status_changes(FP_DEVICE(tdev), FP_FINGER_STATUS_NEEDED, FP_FINGER_STATUS_NONE);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../libfprint-tod/src/identify.c:131:62: error: ‘FP_FINGER_STATUS_NEEDED’ undeclared (first use in this function)
  131 |     fpi_device_report_finger_status_changes(FP_DEVICE(tdev), FP_FINGER_STATUS_NEEDED, FP_FINGER_STATUS_NONE);
      |                                                              ^~~~~~~~~~~~~~~~~~~~~~~
../libfprint-tod/src/identify.c:131:62: note: each undeclared identifier is reported only once for each function it appears in
../libfprint-tod/src/identify.c:131:87: error: ‘FP_FINGER_STATUS_NONE’ undeclared (first use in this function)
  131 |     fpi_device_report_finger_status_changes(FP_DEVICE(tdev), FP_FINGER_STATUS_NEEDED, FP_FINGER_STATUS_NONE);
      |                                                                                       ^~~~~~~~~~~~~~~~~~~~~
ninja: build stopped: subcommand failed.

I couldn't find a packaged version of fprint-tod that would work so I took it from packages.ubuntu.com and compiled it successfully. Should I get another version, or should I try something else?

exit code 159

I am using arch linux with the latest of everything as of today

Hm. Can you reinstall after running meson configure -DUNMOUNTFS=false, and then after reproducing the crash run sudo coredumpctl debug and then backtrace?

how exactly would I do that btw? (nvm figured it out)

Exit code 134

Hi there!

Sometimes when trying to add finger print fprint-enroll $USER have this at journalctl:

16:50:15 Notebook-PC tudor_host_launcher[1188582]: [WRN] libusb transfer failed: 4 [LIBUSB_TRANSFER_STALL]
16:50:17 Notebook-PC tudor_host_launcher[1188582]: [WRN] libusb transfer failed: 2 [LIBUSB_TRANSFER_TIMED_OUT]
16:50:17 Notebook-PC audit[1188582]: ANOM_ABEND auid=4294967295 uid=3333 gid=3333 ses=4294967295 pid=1188582 comm="tudor_host" exe="/usr/sbin/tudor/tudor_host" sig=6 res=1
16:50:17 Notebook-PC tudor_host_launcher[1188582]: [ERR] Error starting capture: 0x80098036!
16:50:17 Notebook-PC tudor_host_launcher[1188582]: [ERR] Identify action failed!
16:50:18 Notebook-PC systemd-coredump[1190482]: Process 1188582 (tudor_host) of user 3333 dumped core.
                                          Module libtudor.so with build-id 513a6e33304cde9dd60eb6269e484484158b5f2c
                                          Module tudor_host with build-id 17a00897d4bc84f4843c551c21613001406c70d7
                                          #3  0x0000000000407cf1 identify_cb (tudor_host + 0x7cf1)
                                          #4  0x00007f622d8c8c98 async_complete_op (libtudor.so + 0x2ec98)
                                          #5  0x00007f622d8cd374 identify_cb (libtudor.so + 0x33374)
                                          #6  0x00007f622d8b4c77 ovlp_cb_thread_func (libtudor.so + 0x1ac77)
                                          #4  0x0000000000402671 usb_thread_func (tudor_host + 0x2671)
                                          #2  0x00007f622d8b4876 ConnectNamedPipe (libtudor.so + 0x1a876)
16:50:18 Notebook-PC fprintd[1188576]: Tudor host process died! Exit Code 134
16:50:20 Notebook-PC abrt-notification[1190579]: Process 27406 (tudor_host) crashed in enroll_cb()

Question 2: How to delete all fingerprint records, cos with fprint-enroll $USER have this:

fprintd-enroll $USER
Using device /net/reactivated/Fprint/Device/0
Enrolling right-index-finger finger.
Enroll result: enroll-duplicate

At journalctl have this:

16:55:28 Notebook-PC tudor_host_launcher[1195108]: [INF] Added record GUID 45e38506... finger 2 size 88812
16:55:28 Notebook-PC tudor_host_launcher[1195108]: [INF] Added record GUID e070a266... finger 2 size 88812
16:55:28 Notebook-PC tudor_host_launcher[1195108]: [INF] Added record GUID 05c6acd1... finger 2 size 88812
16:55:31 Notebook-PC tudor_host_launcher[1195108]: [INF] Identify result -> matches GUID 45e38506... finger 2

Tried fprint-delete $USER but this not help

tudor_host fails on NixOS

journalctl:

Jul 16 22:29:25 work tudor_host_launcher[24142]: [INF] Activated sandbox
Jul 16 22:29:25 work tudor_host_launcher[24142]: [INF] Received init message - USB device 2-3
Jul 16 22:29:25 work tudor_host_launcher[24142]: [INF] Initialized libcrypto
Jul 16 22:29:25 work tudor_host_launcher[24142]: libusb: warning [op_init] sysfs not mounted
Jul 16 22:29:25 work tudor_host_launcher[24142]: [INF] Initialized libusb
Jul 16 22:29:25 work tudor_host_launcher[24142]: [WRN] PE file contains unsupported resource data directory!
Jul 16 22:29:25 work tudor_host_launcher[24142]: [WRN] PE file contains unsupported exception data directory!
Jul 16 22:29:25 work tudor_host_launcher[24142]: [INF] Initialized libusb
Jul 16 22:29:25 work tudor_host_launcher[24142]: [WRN] PE file contains unsupported resource data directory!
Jul 16 22:29:25 work tudor_host_launcher[24142]: [WRN] PE file contains unsupported exception data directory!
Jul 16 22:29:25 work tudor_host_launcher[24142]: [INF] Loaded driver DLL 'synaFpAdapter104.dll' [186656 bytes]
Jul 16 22:29:25 work tudor_host_launcher[24142]: [WRN] PE file contains unsupported resource data directory!
Jul 16 22:29:25 work tudor_host_launcher[24142]: [WRN] PE file contains unsupported exception data directory!
Jul 16 22:29:25 work tudor_host_launcher[24142]: [WRN] Data directory 4 has invalid bounds! [end 0x17ebe0 > image end 0x17e000]
Jul 16 22:29:25 work tudor_host_launcher[24142]: [INF] Loaded driver DLL 'synaWudfBioUsb104.dll' [1567712 bytes]
Jul 16 22:29:25 work tudor_host_launcher[24142]: [INF] Initializing driver DLL 'synaFpAdapter104.dll'...
Jul 16 22:29:25 work tudor_host_launcher[24142]: [ERR] Unresolved import called!
Jul 16 20:29:57 work systemd-coredump[20908]: [LNK] Process 20905 (tudor_host) of user 3333 dumped core.

                                              Module libudev.so.1 without build-id.
                                              Module libseccomp.so.2 without build-id.
                                              Module libcap.so.2 without build-id.
                                              Module libusb-1.0.so.0 without build-id.
                                              Module tudor_host without build-id.
                                              Stack trace of thread 20905:
                                              #0  0x00007fe4283cbefc __pthread_kill_implementation (libc.so.6 + 0x8fefc)
                                              #1  0x00007fe42837be86 raise (libc.so.6 + 0x3fe86)
                                              #2  0x00007fe428364935 abort (libc.so.6 + 0x28935)
                                              #3  0x00000000004037a2 unresolved_stub.cold (tudor_host + 0x37a2)
                                              #4  0x00007fe4282c68a2 n/a (n/a + 0x0)
                                              #5  0x00007fe4282c65b5 n/a (n/a + 0x0)
                                              ELF object binary architecture: AMD x86-64
Jul 16 20:29:57 work fprintd[20895]: Tudor host process died! Exit Code 134

uname -a: Linux work 6.8.12 #1-NixOS SMP PREEMPT_DYNAMIC Thu May 30 07:49:53 UTC 2024 x86_64 GNU/Linux

I'm trying to make synaTudor work on NixOS. I cannot make much sense of this error though, so any help would be very appreciated. For context, I've made some changes to the build process to make it work on NixOS, so it might be possible that the issue was caused by my changes.

Exit Code 31 after suspend

First of all thank you for your work on this. It works flawlessly most of the time.
The only problem I'm facing is fprintd crashes after suspend with exit code 31:

fprintd[3191]: g_task_return_boolean: assertion 'G_IS_TASK (task)' failed
fprintd[3191]: Tudor host process died! Exit Code 31

Edit: Some of the times it also dies with:

fprintd[6835]: g_task_return_boolean: assertion 'G_IS_TASK (task)' failed
fprintd[6835]: Tudor host process died! Exit Code 159

Also some if the times with a coredump:

Process 9964 (fprintd) of user 0 dumped core.                     
Module linux-vdso.so.1 with build-id d3c210522f2d619f9e3c2d7196aaa6ec2037e14b
Module libgpg-error.so.0 with build-id 4738b8a9478177c202cccd64e0eb65d3dea2bfae
Module libatomic.so.1 with build-id 7c1907c77fdfa87da0a195b2bcb1db37802b590c
Module liblz4.so.1 with build-id e63600ab23b2f6997f42fac2fa56e1f02ce159a1
Module libzstd.so.1 with build-id ab54c2881f53ab314e134f3e08c76d504376dd5d
Module liblzma.so.5 with build-id 28b40c7af8098a66af6ee093b6986b91cad7694d
Module libgcrypt.so.20 with build-id 8bf3cb884124273640de797a3e77d86c98434ea4
Module libcap.so.2 with build-id 1f87347b85b55db2f75a2ecea5cb45d846dc7093
Module libudev.so.1 with build-id 2a20e10475325f65fa29687073270e417e20a984
Module libnspr4.so with build-id e54087b0e38cf8936f6c458e922589406343b05d
Module libplc4.so with build-id 2f3f90e73b1f4fc3424689615d6d32f7427bb783
Module libplds4.so with build-id 2b49ec2f43d2e5fc2e56f35bcd094968f9bf36e6
Module libnssutil3.so with build-id 36c34a5ab8de68047e7886fe56da7ccf6722f465
Module libusb-1.0.so.0 with build-id 98d3b69176fc359d2c574759c2064f83e5cdf8ed
Module libblkid.so.1 with build-id 140694a62d8d4d07c6c320a501f948dd1b389d73
Module libpthread.so.0 with build-id 95ae4f30a6f12ccbff645d30f8e1a3ee23ec7d36
Module ld-linux-x86-64.so.2 with build-id 0effd0e43efa4468d3c31871c93af0b7f3005673
Module libsystemd.so.0 with build-id 3e5d9eb54ba96616b0f90c9b897f04fd126527de
Module libgudev-1.0.so.0 with build-id 460465b63a086d945124662363191903c0002793
Module libnss3.so with build-id 87abb242025e6e243d6974b3a9da26166884533a
Module libpixman-1.so.0 with build-id d2170a3ac106c2a68597bf7910ab04b1cdd69c14
Module libm.so.6 with build-id 1b7296ef9fd806e47060788389293c824b09ad72
Module libgusb.so.2 with build-id 1697140c599d0977dc94f5777c7dba48d8c1b16d
Module libffi.so.8 with build-id f0a9586cf0f42d2b9971bd1065ca3a6b19f4a2c2
Module libmount.so.1 with build-id 4436aeea0cd8c01b5a77969e0531184f8b3513ce
Module libz.so.1 with build-id fefe3219a96d682ec98fcfb78866b8594298b5a2
Module libpcre.so.1 with build-id 845483dd0acba86de9f0313102bebbaf3ce52767
Module libc.so.6 with build-id 60df1df31f02a7b23da83e8ef923359885b81492
Module libgcc_s.so.1 with build-id 0e3de903950e35ae59a5de8c00b1817a4a71ca01
Module libpolkit-gobject-1.so.0 with build-id 42b81fbd4311562066a33daac95868a4b20105ae
Module libfprint-2.so.2 with build-id afac3f96db72d486626bc72992302a7914a81773
Module libgmodule-2.0.so.0 with build-id abd986222e2cf12fc7324cb0182dfc2c8f2269c0
Module libgobject-2.0.so.0 with build-id a7515bd8cd51064d187953c0f506a43958de31a6
Module libgio-2.0.so.0 with build-id 7a769ec24a9a705d04ee0297730032f70ed0835b
Module libglib-2.0.so.0 with build-id 1340f3a762b2293ebf6d725edf0eb14839f85317
Module fprintd with build-id 381105c0d1b405b659d94e00992e74bb37386a3e
Stack trace of thread 9964:
#0  0x00007fc9258f1df1 n/a (n/a + 0x0)
#1  0x00007fc9258f21af n/a (n/a + 0x0)
#2  0x00007fc922040ef5 n/a (libc.so.6 + 0x40ef5)
#3  0x00007fc922041070 exit (libc.so.6 + 0x41070)
#4  0x00007fc922029297 n/a (libc.so.6 + 0x29297)
#5  0x00007fc92202934a __libc_start_main (libc.so.6 + 0x2934a)
#6  0x000055abee77d595 _start (fprintd + 0x9595)

Stack trace of thread 9965:
#0  0x00007fc922105c3f __poll (libc.so.6 + 0x105c3f)
#1  0x00007fc925827f68 n/a (libglib-2.0.so.0 + 0xaaf68)
#2  0x00007fc9257cf392 g_main_context_iteration (libglib-2.0.so.0 + 0x52392)
#3  0x00007fc9257cf3e2 n/a (libglib-2.0.so.0 + 0x523e2)
#4  0x00007fc925801405 n/a (libglib-2.0.so.0 + 0x84405)
#5  0x00007fc92208c54d n/a (libc.so.6 + 0x8c54d)
#6  0x00007fc922111874 __clone (libc.so.6 + 0x111874)

Stack trace of thread 9966:
#0  0x00007fc922105c3f __poll (libc.so.6 + 0x105c3f)
#1  0x00007fc925827f68 n/a (libglib-2.0.so.0 + 0xaaf68)
#2  0x00007fc9257d11cf g_main_loop_run (libglib-2.0.so.0 + 0x541cf)
#3  0x00007fc9256baacc n/a (libgio-2.0.so.0 + 0x108acc)
#4  0x00007fc925801405 n/a (libglib-2.0.so.0 + 0x84405)
#5  0x00007fc92208c54d n/a (libc.so.6 + 0x8c54d)
#6  0x00007fc922111874 __clone (libc.so.6 + 0x111874)
ELF object binary architecture: AMD x86-64`

relevant file in fprintd: https://gitlab.freedesktop.org/libfprint/fprintd/-/blob/master/src/device.c#L492

Am on Arch Linux, KDE, X11, systemd. Kernel: 5.18.12-arch1-1
Compiled this on: fde866fb6b612b013b2ee7afc059f88125ee13d5
As for libfrint am using: libfprint-tod-git 1.94.3+tod1-1 from the AUR
Do tell if any additional information is needed for this. Not sure if it's my DE's fault or the driver's.
As a workaround I've made a systemd service to restart fprintd after resuming from suspend.

Sol: undefined symbol: fp_device_suspend_finish

I've struggled with the problem just as issue9 did, then I fixed it by complying this project on a clear Ubuntu. However the fprintd service refuses to load our so file:

× fprintd.service - Fingerprint Authentication Daemon
     Loaded: loaded (/lib/systemd/system/fprintd.service; static)
     Active: failed (Result: exit-code) since Sun 2023-06-04 16:58:46 CST; 13s ago
       Docs: man:fprintd(1)
    Process: 2955 ExecStart=/usr/libexec/fprintd (code=exited, status=127)
   Main PID: 2955 (code=exited, status=127)

Jun 04 16:58:46 lenovo-air14 systemd[1]: Starting fprintd.service - Fingerprint Authentication Daemon...
Jun 04 16:58:46 lenovo-air14 fprintd[2955]: /usr/libexec/fprintd: symbol lookup error: /usr/libexec/fprintd: undefined symbol: fp_device_suspend_finish, version LIBFPRINT_2.0.0
Jun 04 16:58:46 lenovo-air14 systemd[1]: fprintd.service: Main process exited, code=exited, status=127/n/a
Jun 04 16:58:46 lenovo-air14 systemd[1]: fprintd.service: Failed with result 'exit-code'.
Jun 04 16:58:46 lenovo-air14 systemd[1]: Failed to start fprintd.service - Fingerprint Authentication Daemon.

and ldd /usr/libexec/fprintd shows me a suspicious loading:
libfprint-2.so.2 => /usr/local/lib/x86_64-linux-gnu/libfprint-2.so.2
It's the only .so files placed in directory /usr/local/.... . So I try to remove it, and then it loads a different .so file automatically:
libfprint-2-tod.so.1 => /lib/x86_64-linux-gnu/libfprint-2-tod.so.1 (0x00007fbcf2800000)
and then everything works fine.

Also I complied again in my system after deleting flies under /usr/local/include/libfprint-2/. No error occurs. The directories /usr/local/ and /usr/ look same, which really make me confused.

Long first startup

tudor-host-launcher.service takes some time to start. I think it would be better to start it automatically on system startup instead of on the first use via dbus.

Random crashes after waking up from suspend

journalctl -b0 -t tudor_host_launcher -t fprintd -t systemd-coredump
Jul 25 15:51:17 work tudor_host_launcher[3072]: [INF] Activated sandbox
Jul 25 15:51:17 work tudor_host_launcher[3072]: [INF] Received init message - USB device 2-2
Jul 25 15:51:17 work tudor_host_launcher[3072]: [INF] Initialized libcrypto
Jul 25 15:51:17 work tudor_host_launcher[3072]: libusb: warning [op_init] sysfs not mounted
Jul 25 15:51:17 work tudor_host_launcher[3072]: [INF] Initialized libusb
Jul 25 15:51:17 work tudor_host_launcher[3072]: [WRN] PE file contains unsupported resource data directory!
Jul 25 15:51:17 work tudor_host_launcher[3072]: [WRN] PE file contains unsupported exception data directory!
Jul 25 15:51:17 work tudor_host_launcher[3072]: [INF] Loaded driver DLL 'synaFpAdapter104.dll' [186656 bytes]
Jul 25 15:51:17 work tudor_host_launcher[3072]: [WRN] PE file contains unsupported resource data directory!
Jul 25 15:51:17 work tudor_host_launcher[3072]: [WRN] PE file contains unsupported exception data directory!
Jul 25 15:51:17 work tudor_host_launcher[3072]: [WRN] Data directory 4 has invalid bounds! [end 0x17ebe0 > image end 0x17e000]
Jul 25 15:51:17 work tudor_host_launcher[3072]: [INF] Loaded driver DLL 'synaWudfBioUsb104.dll' [1567712 bytes]
Jul 25 15:51:17 work tudor_host_launcher[3072]: [INF] Initializing driver DLL 'synaFpAdapter104.dll'...
Jul 25 15:51:17 work tudor_host_launcher[3072]: [INF] Initializing driver DLL 'synaWudfBioUsb104.dll'...
Jul 25 15:51:17 work tudor_host_launcher[3072]: [INF] Initialized tudor driver
Jul 25 15:51:17 work tudor_host_launcher[3072]: [INF] Opened USB device
Jul 25 15:51:18 work tudor_host_launcher[3072]: [WRN] GetModuleHandleExW called with unsupported flag GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS! [addr=0x603d9db1d710]
Jul 25 15:51:18 work tudor_host_launcher[3072]: [INF] Getting pairing data for sensor 'DA60EC7A380B0000'...
Jul 25 15:51:18 work tudor_host_launcher[3072]: [INF] Setting pairing data for sensor 'DA60EC7A380B0000'...
Jul 25 15:51:21 work tudor_host_launcher[3072]: [INF] Opened tudor device
Jul 25 15:51:21 work tudor_host_launcher[3072]: [INF] Sent ready message
Jul 25 15:51:21 work tudor_host_launcher[3072]: [INF] Added record GUID bca24c37... finger 2 size 88812
Jul 25 15:51:22 work tudor_host_launcher[3072]: [INF] Verify GUID bca24c37... finger 2 -> does match
Jul 25 15:51:57 work tudor_host_launcher[3072]: [INF] Cleared 1 records
Jul 25 15:54:09 work tudor_host_launcher[3072]: [INF] Added record GUID bca24c37... finger 2 size 88812
Jul 25 15:54:09 work tudor_host_launcher[3072]: [INF] Verify GUID bca24c37... finger 2 -> does match
Jul 25 15:54:41 work tudor_host_launcher[3072]: [INF] Cleared 1 records
Jul 25 16:18:12 work tudor_host_launcher[3072]: [INF] Added record GUID bca24c37... finger 2 size 88812
Jul 25 16:18:13 work tudor_host_launcher[3072]: [INF] Verify GUID bca24c37... finger 2 -> doesn't match
Jul 25 16:18:13 work tudor_host_launcher[3072]: [INF] Verify GUID bca24c37... finger 2 -> doesn't match
Jul 25 16:18:13 work tudor_host_launcher[3072]: [INF] Verify GUID bca24c37... finger 2 -> does match
Jul 25 16:18:56 work tudor_host_launcher[3072]: [INF] Cleared 1 records
Jul 25 16:21:05 work tudor_host_launcher[3072]: [INF] Added record GUID bca24c37... finger 2 size 88812
Jul 25 16:21:06 work tudor_host_launcher[3072]: [INF] Verify GUID bca24c37... finger 2 -> does match
Jul 25 16:21:39 work tudor_host_launcher[3072]: [INF] Cleared 1 records
Jul 25 16:23:33 work tudor_host_launcher[3072]: [INF] Added record GUID bca24c37... finger 2 size 88812
Jul 25 16:23:36 work tudor_host_launcher[3072]: [INF] Verify GUID bca24c37... finger 2 -> does match
Jul 25 16:24:32 work tudor_host_launcher[3072]: [INF] Cleared 1 records
Jul 25 16:38:06 work tudor_host_launcher[3072]: [INF] Added record GUID bca24c37... finger 2 size 88812
Jul 25 16:38:06 work tudor_host_launcher[3072]: [INF] Verify GUID bca24c37... finger 2 -> does match
Jul 25 16:38:40 work tudor_host_launcher[3072]: [INF] Cleared 1 records
Jul 25 16:57:35 work tudor_host_launcher[3072]: [INF] Added record GUID bca24c37... finger 2 size 88812
Jul 25 16:57:36 work tudor_host_launcher[3072]: [INF] Verify GUID bca24c37... finger 2 -> does match
Jul 25 16:58:18 work tudor_host_launcher[3072]: [INF] Cleared 1 records
Jul 25 17:13:51 work tudor_host_launcher[3072]: [INF] Added record GUID bca24c37... finger 2 size 88812
Jul 25 17:13:52 work tudor_host_launcher[3072]: [INF] Verify GUID bca24c37... finger 2 -> does match
Jul 25 17:14:29 work tudor_host_launcher[3072]: [INF] Cleared 1 records
Jul 25 17:45:28 work tudor_host_launcher[3072]: [INF] Added record GUID bca24c37... finger 2 size 88812
Jul 25 17:45:29 work tudor_host_launcher[3072]: [INF] Verify GUID bca24c37... finger 2 -> does match
Jul 25 17:46:09 work tudor_host_launcher[3072]: [INF] Cleared 1 records
Jul 25 17:48:21 work tudor_host_launcher[3072]: [INF] Added record GUID bca24c37... finger 2 size 88812
Jul 25 17:48:21 work tudor_host_launcher[3072]: [INF] Verify GUID bca24c37... finger 2 -> does match
Jul 25 17:48:55 work tudor_host_launcher[3072]: [INF] Cleared 1 records
Jul 25 17:51:10 work tudor_host_launcher[3072]: [INF] Added record GUID bca24c37... finger 2 size 88812
Jul 25 17:51:10 work tudor_host_launcher[3072]: [INF] Verify GUID bca24c37... finger 2 -> doesn't match
Jul 25 17:51:11 work tudor_host_launcher[3072]: [INF] Verify GUID bca24c37... finger 2 -> doesn't match
Jul 25 17:51:11 work tudor_host_launcher[3072]: [INF] Verify GUID bca24c37... finger 2 -> does match
Jul 25 17:51:52 work tudor_host_launcher[3072]: [INF] Cleared 1 records
Jul 25 17:56:02 work tudor_host_launcher[3072]: [INF] Added record GUID bca24c37... finger 2 size 88812
Jul 25 17:56:03 work tudor_host_launcher[3072]: [INF] Verify GUID bca24c37... finger 2 -> does match
Jul 25 17:56:44 work tudor_host_launcher[3072]: [INF] Cleared 1 records
Jul 25 18:19:07 work tudor_host_launcher[3072]: [INF] Added record GUID bca24c37... finger 2 size 88812
Jul 25 18:19:08 work tudor_host_launcher[3072]: [ERR] Error starting capture: 0x800703e3!
Jul 25 19:27:01 work fprintd[78235]: **
Jul 25 19:27:01 work fprintd[78235]: ERROR:../libfprint-tod/src/suspend.h:13:close_sleep_inhibitor: assertion failed (close(inhib) >= 0): errno 9: Bad file descriptor
Jul 25 19:27:01 work fprintd[78235]: Bail out! ERROR:../libfprint-tod/src/suspend.h:13:close_sleep_inhibitor: assertion failed (close(inhib) >= 0): errno 9: Bad file descriptor
Jul 25 19:27:02 work systemd-coredump[78452]: Process 78235 (fprintd) of user 0 dumped core.
                                              
                                              Module libtudor_tod.so without build-id.
                                              Module libcap.so.2 without build-id.
                                              Module libudev.so.1 without build-id.
                                              Module libnspr4.so without build-id.
                                              Module libplc4.so without build-id.
                                              Module libplds4.so without build-id.
                                              Module libnssutil3.so without build-id.
                                              Module libjson-glib-1.0.so.0 without build-id.
                                              Module libusb-1.0.so.0 without build-id.
                                              Module libsystemd.so.0 without build-id.
                                              Module libgudev-1.0.so.0 without build-id.
                                              Module libnss3.so without build-id.
                                              Module libgusb.so.2 without build-id.
                                              Module libfprint-2-tod.so.1 without build-id.
                                              Module libffi.so.8 without build-id.
                                              Module libselinux.so.1 without build-id.
                                              Module libz.so.1 without build-id.
                                              Module libpcre2-8.so.0 without build-id.
                                              Module libpolkit-gobject-1.so.0 without build-id.
                                              Module libfprint-2.so.2 without build-id.
                                              Module fprintd without build-id.
                                              Stack trace of thread 78235:
                                              #0  0x00006885ff307efc __pthread_kill_implementation (libc.so.6 + 0x8fefc)
                                              #1  0x00006885ff2b7e86 raise (libc.so.6 + 0x3fe86)
                                              #2  0x00006885ff2a0935 abort (libc.so.6 + 0x28935)
                                              #3  0x00006885ff7aa025 g_assertion_message.cold (libglib-2.0.so.0 + 0x23025)
                                              #4  0x00006885f9f2709d suspend_close_cb (libtudor_tod.so + 0x809d)
                                              #5  0x00006885ff651733 g_task_return_now (libgio-2.0.so.0 + 0xba733)
                                              #6  0x00006885ff652543 g_task_return (libgio-2.0.so.0 + 0xbb543)
                                              #7  0x00006885f9f25e2b host_died_signal_cb (libtudor_tod.so + 0x6e2b)
                                              #8  0x00006885ff6a704b emit_signal_instance_in_idle_cb (libgio-2.0.so.0 + 0x11004b)
                                              #9  0x00006885ff7e2e39 g_main_dispatch (libglib-2.0.so.0 + 0x5be39)
                                              #10 0x00006885ff7e5fd7 g_main_context_iterate_unlocked.isra.0 (libglib-2.0.so.0 + 0x5efd7)
                                              #11 0x00006885ff7e688f g_main_loop_run (libglib-2.0.so.0 + 0x5f88f)
                                              #12 0x000000000040983f main (fprintd + 0x983f)
                                              #13 0x00006885ff2a210e __libc_start_call_main (libc.so.6 + 0x2a10e)
                                              #14 0x00006885ff2a21c9 __libc_start_main@@GLIBC_2.34 (libc.so.6 + 0x2a1c9)
                                              #15 0x0000000000409b65 _start (fprintd + 0x9b65)
                                              
                                              Stack trace of thread 78237:
                                              #0  0x00006885ff37fd1d syscall (libc.so.6 + 0x107d1d)
                                              #1  0x00006885ff840d00 g_cond_wait (libglib-2.0.so.0 + 0xb9d00)
                                              #2  0x00006885ff7af0bb g_async_queue_pop_intern_unlocked (libglib-2.0.so.0 + 0x280bb)
                                              #3  0x00006885ff813b52 g_thread_pool_spawn_thread (libglib-2.0.so.0 + 0x8cb52)
                                              #4  0x00006885ff8133bd g_thread_proxy (libglib-2.0.so.0 + 0x8c3bd)
                                              #5  0x00006885ff306272 start_thread (libc.so.6 + 0x8e272)
                                              #6  0x00006885ff381dec __clone3 (libc.so.6 + 0x109dec)
                                              
                                              Stack trace of thread 78238:
                                              #0  0x00006885ff37462f __poll (libc.so.6 + 0xfc62f)
                                              #1  0x00006885ff7e5f2f g_main_context_iterate_unlocked.isra.0 (libglib-2.0.so.0 + 0x5ef2f)
                                              #2  0x00006885ff7e65cc g_main_context_iteration (libglib-2.0.so.0 + 0x5f5cc)
                                              #3  0x00006885ff7e6611 glib_worker_main (libglib-2.0.so.0 + 0x5f611)
                                              #4  0x00006885ff8133bd g_thread_proxy (libglib-2.0.so.0 + 0x8c3bd)
                                              #5  0x00006885ff306272 start_thread (libc.so.6 + 0x8e272)
                                              #6  0x00006885ff381dec __clone3 (libc.so.6 + 0x109dec)
                                              
                                              Stack trace of thread 78242:
                                              #0  0x00006885ff37fd1d syscall (libc.so.6 + 0x107d1d)
                                              #1  0x00006885ff840eac g_cond_wait_until (libglib-2.0.so.0 + 0xb9eac)
                                              #2  0x00006885ff7af093 g_async_queue_pop_intern_unlocked (libglib-2.0.so.0 + 0x28093)
                                              #3  0x00006885ff7af6a1 g_async_queue_timeout_pop (libglib-2.0.so.0 + 0x286a1)
                                              #4  0x00006885ff813d15 g_thread_pool_thread_proxy (libglib-2.0.so.0 + 0x8cd15)
                                              #5  0x00006885ff8133bd g_thread_proxy (libglib-2.0.so.0 + 0x8c3bd)
                                              #6  0x00006885ff306272 start_thread (libc.so.6 + 0x8e272)
                                              #7  0x00006885ff381dec __clone3 (libc.so.6 + 0x109dec)
                                              
                                              Stack trace of thread 78240:
                                              #0  0x00006885ff37462f __poll (libc.so.6 + 0xfc62f)
                                              #1  0x00006885fbdbbb3f linux_udev_event_thread_main (libusb-1.0.so.0 + 0x13b3f)
                                              #2  0x00006885ff306272 start_thread (libc.so.6 + 0x8e272)
                                              #3  0x00006885ff381dec __clone3 (libc.so.6 + 0x109dec)
                                              
                                              Stack trace of thread 78241:
                                              #0  0x00006885ff37462f __poll (libc.so.6 + 0xfc62f)
                                              #1  0x00006885fbdb6a38 usbi_wait_for_events (libusb-1.0.so.0 + 0xea38)
                                              #2  0x00006885fbdb3f56 handle_events (libusb-1.0.so.0 + 0xbf56)
                                              #3  0x00006885fbdb54e0 libusb_handle_events_timeout_completed (libusb-1.0.so.0 + 0xd4e0)
                                              #4  0x00006885fc21d0d6 g_usb_context_event_thread_cb (libgusb.so.2 + 0x80d6)
                                              #5  0x00006885ff8133bd g_thread_proxy (libglib-2.0.so.0 + 0x8c3bd)
                                              #6  0x00006885ff306272 start_thread (libc.so.6 + 0x8e272)
                                              #7  0x00006885ff381dec __clone3 (libc.so.6 + 0x109dec)
                                              
                                              Stack trace of thread 78239:
                                              #0  0x00006885ff37462f __poll (libc.so.6 + 0xfc62f)
                                              #1  0x00006885ff7e5f2f g_main_context_iterate_unlocked.isra.0 (libglib-2.0.so.0 + 0x5ef2f)
                                              #2  0x00006885ff7e688f g_main_loop_run (libglib-2.0.so.0 + 0x5f88f)
                                              #3  0x00006885ff6be526 gdbus_shared_thread_func (libgio-2.0.so.0 + 0x127526)
                                              #4  0x00006885ff8133bd g_thread_proxy (libglib-2.0.so.0 + 0x8c3bd)
                                              #5  0x00006885ff306272 start_thread (libc.so.6 + 0x8e272)
                                              #6  0x00006885ff381dec __clone3 (libc.so.6 + 0x109dec)
                                              ELF object binary architecture: AMD x86-64
Jul 25 21:34:50 work tudor_host_launcher[86568]: [INF] Activated sandbox
Jul 25 21:34:50 work tudor_host_launcher[86568]: [INF] Received init message - USB device 2-5
Jul 25 21:34:50 work tudor_host_launcher[86568]: [INF] Initialized libcrypto
Jul 25 21:34:50 work tudor_host_launcher[86568]: libusb: warning [op_init] sysfs not mounted
Jul 25 21:34:50 work tudor_host_launcher[86568]: [INF] Initialized libusb
Jul 25 21:34:50 work tudor_host_launcher[86568]: [WRN] PE file contains unsupported resource data directory!
Jul 25 21:34:50 work tudor_host_launcher[86568]: [WRN] PE file contains unsupported exception data directory!
Jul 25 21:34:50 work tudor_host_launcher[86568]: [INF] Loaded driver DLL 'synaFpAdapter104.dll' [186656 bytes]
Jul 25 21:34:50 work tudor_host_launcher[86568]: [WRN] PE file contains unsupported resource data directory!
Jul 25 21:34:50 work tudor_host_launcher[86568]: [WRN] PE file contains unsupported exception data directory!
Jul 25 21:34:50 work tudor_host_launcher[86568]: [WRN] Data directory 4 has invalid bounds! [end 0x17ebe0 > image end 0x17e000]
Jul 25 21:34:50 work tudor_host_launcher[86568]: [INF] Loaded driver DLL 'synaWudfBioUsb104.dll' [1567712 bytes]
Jul 25 21:34:50 work tudor_host_launcher[86568]: [INF] Initializing driver DLL 'synaFpAdapter104.dll'...
Jul 25 21:34:50 work tudor_host_launcher[86568]: [INF] Initializing driver DLL 'synaWudfBioUsb104.dll'...
Jul 25 21:34:50 work tudor_host_launcher[86568]: [INF] Initialized tudor driver
Jul 25 21:34:50 work tudor_host_launcher[86568]: [INF] Opened USB device
Jul 25 21:34:51 work tudor_host_launcher[86568]: [WRN] GetModuleHandleExW called with unsupported flag GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS! [addr=0x62f7cc0e7710]
Jul 25 21:34:51 work tudor_host_launcher[86568]: [INF] Getting pairing data for sensor 'DA60EC7A380B0000'...
Jul 25 21:34:51 work tudor_host_launcher[86568]: [INF] Setting pairing data for sensor 'DA60EC7A380B0000'...
Jul 25 21:34:54 work tudor_host_launcher[86568]: [INF] Opened tudor device
Jul 25 21:34:54 work tudor_host_launcher[86568]: [INF] Sent ready message
Jul 25 21:34:54 work tudor_host_launcher[86568]: [INF] Added record GUID bca24c37... finger 2 size 88812
Jul 25 21:34:55 work tudor_host_launcher[86568]: [INF] Verify GUID bca24c37... finger 2 -> doesn't match
Jul 25 21:34:56 work tudor_host_launcher[86568]: [INF] Verify GUID bca24c37... finger 2 -> does match
Jul 25 21:35:35 work tudor_host_launcher[86568]: [INF] Cleared 1 records
Jul 26 00:47:42 work tudor_host_launcher[3067]: **
Jul 26 00:47:42 work tudor_host_launcher[3067]: ERROR:../tudor-host-launcher/src/launch.c:20:free_host: assertion failed (killpg(entry->pid, SIGKILL) >= 0): errno 3: No such process
Jul 26 00:47:42 work tudor_host_launcher[3067]: Bail out! ERROR:../tudor-host-launcher/src/launch.c:20:free_host: assertion failed (killpg(entry->pid, SIGKILL) >= 0): errno 3: No such process
Jul 26 00:47:42 work systemd-coredump[124313]: Process 3067 (tudor_host_laun) of user 0 dumped core.
                                               
                                               Module libpcre2-8.so.0 without build-id.
                                               Module libffi.so.8 without build-id.
                                               Module libselinux.so.1 without build-id.
                                               Module libz.so.1 without build-id.
                                               Module tudor_host_launcher without build-id.
                                               Stack trace of thread 3067:
                                               #0  0x00006eda5e370efc __pthread_kill_implementation (libc.so.6 + 0x8fefc)
                                               #1  0x00006eda5e320e86 raise (libc.so.6 + 0x3fe86)
                                               #2  0x00006eda5e309935 abort (libc.so.6 + 0x28935)
                                               #3  0x00006eda5e4f1025 g_assertion_message.cold (libglib-2.0.so.0 + 0x23025)
                                               #4  0x0000000000402805 free_host (tudor_host_launcher + 0x2805)
                                               #5  0x00000000004029fb host_watch_cb (tudor_host_launcher + 0x29fb)
                                               #6  0x00006eda5e5294d7 g_child_watch_dispatch (libglib-2.0.so.0 + 0x5b4d7)
                                               #7  0x00006eda5e529e39 g_main_dispatch (libglib-2.0.so.0 + 0x5be39)
                                               #8  0x00006eda5e52cfd7 g_main_context_iterate_unlocked.isra.0 (libglib-2.0.so.0 + 0x5efd7)
                                               #9  0x00006eda5e52d88f g_main_loop_run (libglib-2.0.so.0 + 0x5f88f)
                                               #10 0x00000000004024c6 main (tudor_host_launcher + 0x24c6)
                                               #11 0x00006eda5e30b10e __libc_start_call_main (libc.so.6 + 0x2a10e)
                                               #12 0x00006eda5e30b1c9 __libc_start_main@@GLIBC_2.34 (libc.so.6 + 0x2a1c9)
                                               #13 0x0000000000402545 _start (tudor_host_launcher + 0x2545)
                                               
                                               Stack trace of thread 3069:
                                               #0  0x00006eda5e3dd62f __poll (libc.so.6 + 0xfc62f)
                                               #1  0x00006eda5e52cf2f g_main_context_iterate_unlocked.isra.0 (libglib-2.0.so.0 + 0x5ef2f)
                                               #2  0x00006eda5e52d5cc g_main_context_iteration (libglib-2.0.so.0 + 0x5f5cc)
                                               #3  0x00006eda5e52d611 glib_worker_main (libglib-2.0.so.0 + 0x5f611)
                                               #4  0x00006eda5e55a3bd g_thread_proxy (libglib-2.0.so.0 + 0x8c3bd)
                                               #5  0x00006eda5e36f272 start_thread (libc.so.6 + 0x8e272)
                                               #6  0x00006eda5e3eadec __clone3 (libc.so.6 + 0x109dec)
                                               
                                               Stack trace of thread 3070:
                                               #0  0x00006eda5e3dd62f __poll (libc.so.6 + 0xfc62f)
                                               #1  0x00006eda5e52cf2f g_main_context_iterate_unlocked.isra.0 (libglib-2.0.so.0 + 0x5ef2f)
                                               #2  0x00006eda5e52d88f g_main_loop_run (libglib-2.0.so.0 + 0x5f88f)
                                               #3  0x00006eda5e7a4526 gdbus_shared_thread_func (libgio-2.0.so.0 + 0x127526)
                                               #4  0x00006eda5e55a3bd g_thread_proxy (libglib-2.0.so.0 + 0x8c3bd)
                                               #5  0x00006eda5e36f272 start_thread (libc.so.6 + 0x8e272)
                                               #6  0x00006eda5e3eadec __clone3 (libc.so.6 + 0x109dec)
                                               
                                               Stack trace of thread 3068:
                                               #0  0x00006eda5e3e8d1d syscall (libc.so.6 + 0x107d1d)
                                               #1  0x00006eda5e587d00 g_cond_wait (libglib-2.0.so.0 + 0xb9d00)
                                               #2  0x00006eda5e4f60bb g_async_queue_pop_intern_unlocked (libglib-2.0.so.0 + 0x280bb)
                                               #3  0x00006eda5e55ab52 g_thread_pool_spawn_thread (libglib-2.0.so.0 + 0x8cb52)
                                               #4  0x00006eda5e55a3bd g_thread_proxy (libglib-2.0.so.0 + 0x8c3bd)
                                               #5  0x00006eda5e36f272 start_thread (libc.so.6 + 0x8e272)
                                               #6  0x00006eda5e3eadec __clone3 (libc.so.6 + 0x109dec)
                                               ELF object binary architecture: AMD x86-64
Jul 26 00:47:43 work tudor_host_launcher[124383]: [INF] Activated sandbox
Jul 26 00:47:43 work tudor_host_launcher[124383]: [INF] Received init message - USB device 2-5
Jul 26 00:47:43 work tudor_host_launcher[124383]: [INF] Initialized libcrypto
Jul 26 00:47:43 work tudor_host_launcher[124383]: libusb: warning [op_init] sysfs not mounted
Jul 26 00:47:43 work tudor_host_launcher[124383]: [INF] Initialized libusb
Jul 26 00:47:43 work tudor_host_launcher[124383]: [WRN] PE file contains unsupported resource data directory!
Jul 26 00:47:43 work tudor_host_launcher[124383]: [WRN] PE file contains unsupported exception data directory!
Jul 26 00:47:43 work tudor_host_launcher[124383]: [INF] Loaded driver DLL 'synaFpAdapter104.dll' [186656 bytes]
Jul 26 00:47:43 work tudor_host_launcher[124383]: [WRN] PE file contains unsupported resource data directory!
Jul 26 00:47:43 work tudor_host_launcher[124383]: [WRN] PE file contains unsupported exception data directory!
Jul 26 00:47:43 work tudor_host_launcher[124383]: [WRN] Data directory 4 has invalid bounds! [end 0x17ebe0 > image end 0x17e000]
Jul 26 00:47:43 work tudor_host_launcher[124383]: [INF] Loaded driver DLL 'synaWudfBioUsb104.dll' [1567712 bytes]
Jul 26 00:47:43 work tudor_host_launcher[124383]: [INF] Initializing driver DLL 'synaFpAdapter104.dll'...
Jul 26 00:47:43 work tudor_host_launcher[124383]: [INF] Initializing driver DLL 'synaWudfBioUsb104.dll'...
Jul 26 00:47:43 work tudor_host_launcher[124383]: [INF] Initialized tudor driver
Jul 26 00:47:43 work tudor_host_launcher[124383]: [INF] Opened USB device
Jul 26 00:47:43 work tudor_host_launcher[124383]: [WRN] GetModuleHandleExW called with unsupported flag GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS! [addr=0x68756a5ee710]
Jul 26 00:47:43 work tudor_host_launcher[124383]: [INF] Getting pairing data for sensor 'DA60EC7A380B0000'...
Jul 26 00:47:44 work tudor_host_launcher[124383]: [INF] Setting pairing data for sensor 'DA60EC7A380B0000'...
Jul 26 00:47:46 work tudor_host_launcher[124383]: [INF] Opened tudor device
Jul 26 00:47:46 work tudor_host_launcher[124383]: [INF] Sent ready message
Jul 26 00:47:46 work tudor_host_launcher[124383]: [INF] Added record GUID bca24c37... finger 2 size 88812
Jul 26 00:47:47 work tudor_host_launcher[124383]: [INF] Verify GUID bca24c37... finger 2 -> does match
Jul 26 00:48:22 work tudor_host_launcher[124383]: [INF] Cleared 1 records
Jul 26 01:10:11 work tudor_host_launcher[124383]: [INF] Added record GUID bca24c37... finger 2 size 88812
Jul 26 01:10:12 work tudor_host_launcher[124383]: [INF] Verify GUID bca24c37... finger 2 -> does match
Jul 26 01:10:52 work tudor_host_launcher[124383]: [INF] Cleared 1 records
Jul 26 01:24:52 work tudor_host_launcher[124383]: [INF] Added record GUID bca24c37... finger 2 size 88812
Jul 26 01:24:57 work tudor_host_launcher[124383]: [INF] Verify GUID bca24c37... finger 2 -> does match
Jul 26 01:26:05 work tudor_host_launcher[124383]: [INF] Cleared 1 records
Jul 26 11:38:20 work tudor_host_launcher[124374]: **
Jul 26 11:38:20 work tudor_host_launcher[124374]: ERROR:../tudor-host-launcher/src/launch.c:20:free_host: assertion failed (killpg(entry->pid, SIGKILL) >= 0): errno 3: No such process
Jul 26 11:38:20 work tudor_host_launcher[124374]: Bail out! ERROR:../tudor-host-launcher/src/launch.c:20:free_host: assertion failed (killpg(entry->pid, SIGKILL) >= 0): errno 3: No such process
Jul 26 11:38:22 work tudor_host_launcher[143931]: [INF] Activated sandbox
Jul 26 11:38:22 work tudor_host_launcher[143931]: [INF] Received init message - USB device 2-6
Jul 26 11:38:22 work tudor_host_launcher[143931]: [INF] Initialized libcrypto
Jul 26 11:38:22 work tudor_host_launcher[143931]: libusb: warning [op_init] sysfs not mounted
Jul 26 11:38:22 work tudor_host_launcher[143931]: [INF] Initialized libusb
Jul 26 11:38:22 work tudor_host_launcher[143931]: [WRN] PE file contains unsupported resource data directory!
Jul 26 11:38:22 work tudor_host_launcher[143931]: [WRN] PE file contains unsupported exception data directory!
Jul 26 11:38:22 work tudor_host_launcher[143931]: [INF] Loaded driver DLL 'synaFpAdapter104.dll' [186656 bytes]
Jul 26 11:38:22 work tudor_host_launcher[143931]: [WRN] PE file contains unsupported resource data directory!
Jul 26 11:38:22 work tudor_host_launcher[143931]: [WRN] PE file contains unsupported exception data directory!
Jul 26 11:38:22 work tudor_host_launcher[143931]: [WRN] Data directory 4 has invalid bounds! [end 0x17ebe0 > image end 0x17e000]
Jul 26 11:38:22 work tudor_host_launcher[143931]: [INF] Loaded driver DLL 'synaWudfBioUsb104.dll' [1567712 bytes]
Jul 26 11:38:22 work tudor_host_launcher[143931]: [INF] Initializing driver DLL 'synaFpAdapter104.dll'...
Jul 26 11:38:22 work tudor_host_launcher[143931]: [INF] Initializing driver DLL 'synaWudfBioUsb104.dll'...
Jul 26 11:38:22 work tudor_host_launcher[143931]: [INF] Initialized tudor driver
Jul 26 11:38:22 work tudor_host_launcher[143931]: [INF] Opened USB device
Jul 26 11:38:22 work tudor_host_launcher[143931]: [WRN] GetModuleHandleExW called with unsupported flag GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS! [addr=0x61f9eca6f710]
Jul 26 11:38:22 work tudor_host_launcher[143931]: [INF] Getting pairing data for sensor 'DA60EC7A380B0000'...
Jul 26 11:38:22 work tudor_host_launcher[143931]: [INF] Setting pairing data for sensor 'DA60EC7A380B0000'...
Jul 26 11:38:25 work tudor_host_launcher[143931]: [INF] Opened tudor device
Jul 26 11:38:25 work tudor_host_launcher[143931]: [INF] Sent ready message
Jul 26 11:38:25 work tudor_host_launcher[143931]: [INF] Added record GUID bca24c37... finger 2 size 88812
Jul 26 11:38:26 work tudor_host_launcher[143931]: [INF] Verify GUID bca24c37... finger 2 -> does match
Jul 26 11:39:01 work tudor_host_launcher[143931]: [INF] Cleared 1 records
Jul 26 12:41:03 work tudor_host_launcher[143931]: [INF] Added record GUID bca24c37... finger 2 size 88812
Jul 26 12:41:05 work tudor_host_launcher[143931]: [ERR] Error starting capture: 0x800703e3!
Jul 26 12:41:10 work fprintd[166682]: **
Jul 26 12:41:10 work fprintd[166682]: ERROR:../libfprint-tod/src/suspend.h:13:close_sleep_inhibitor: assertion failed (close(inhib) >= 0): errno 9: Bad file descriptor
Jul 26 12:41:10 work fprintd[166682]: Bail out! ERROR:../libfprint-tod/src/suspend.h:13:close_sleep_inhibitor: assertion failed (close(inhib) >= 0): errno 9: Bad file descriptor
Jul 26 15:48:26 work systemd-coredump[166835]: Process 166682 (fprintd) of user 0 dumped core.
                                               
                                               Module libtudor_tod.so without build-id.
                                               Module libcap.so.2 without build-id.
                                               Module libudev.so.1 without build-id.
                                               Module libnspr4.so without build-id.
                                               Module libplc4.so without build-id.
                                               Module libplds4.so without build-id.
                                               Module libnssutil3.so without build-id.
                                               Module libjson-glib-1.0.so.0 without build-id.
                                               Module libusb-1.0.so.0 without build-id.
                                               Module libsystemd.so.0 without build-id.
                                               Module libgudev-1.0.so.0 without build-id.
                                               Module libnss3.so without build-id.
                                               Module libgusb.so.2 without build-id.
                                               Module libfprint-2-tod.so.1 without build-id.
                                               Module libffi.so.8 without build-id.
                                               Module libselinux.so.1 without build-id.
                                               Module libz.so.1 without build-id.
                                               Module libpcre2-8.so.0 without build-id.
                                               Module libpolkit-gobject-1.so.0 without build-id.
                                               Module libfprint-2.so.2 without build-id.
                                               Module fprintd without build-id.
                                               Stack trace of thread 166682:
                                               #0  0x000067f2ac56cefc __pthread_kill_implementation (libc.so.6 + 0x8fefc)
                                               #1  0x000067f2ac51ce86 raise (libc.so.6 + 0x3fe86)
                                               #2  0x000067f2ac505935 abort (libc.so.6 + 0x28935)
                                               #3  0x000067f2aca0f025 g_assertion_message.cold (libglib-2.0.so.0 + 0x23025)
                                               #4  0x000067f2a718c09d suspend_close_cb (libtudor_tod.so + 0x809d)
                                               #5  0x000067f2ac8b6733 g_task_return_now (libgio-2.0.so.0 + 0xba733)
                                               #6  0x000067f2ac8b7543 g_task_return (libgio-2.0.so.0 + 0xbb543)
                                               #7  0x000067f2a718b14b shutdown_timeout_cb (libtudor_tod.so + 0x714b)
                                               #8  0x000067f2a94a5000 timeout_dispatch (libfprint-2-tod.so.1 + 0xf000)
                                               #9  0x000067f2aca47e39 g_main_dispatch (libglib-2.0.so.0 + 0x5be39)
                                               #10 0x000067f2aca4afd7 g_main_context_iterate_unlocked.isra.0 (libglib-2.0.so.0 + 0x5efd7)
                                               #11 0x000067f2aca4b88f g_main_loop_run (libglib-2.0.so.0 + 0x5f88f)
                                               #12 0x000000000040983f main (fprintd + 0x983f)
                                               #13 0x000067f2ac50710e __libc_start_call_main (libc.so.6 + 0x2a10e)
                                               #14 0x000067f2ac5071c9 __libc_start_main@@GLIBC_2.34 (libc.so.6 + 0x2a1c9)
                                               #15 0x0000000000409b65 _start (fprintd + 0x9b65)
                                               
                                               Stack trace of thread 166683:
                                               #0  0x000067f2ac5e4d1d syscall (libc.so.6 + 0x107d1d)
                                               #1  0x000067f2acaa5d00 g_cond_wait (libglib-2.0.so.0 + 0xb9d00)
                                               #2  0x000067f2aca140bb g_async_queue_pop_intern_unlocked (libglib-2.0.so.0 + 0x280bb)
                                               #3  0x000067f2aca78b52 g_thread_pool_spawn_thread (libglib-2.0.so.0 + 0x8cb52)
                                               #4  0x000067f2aca783bd g_thread_proxy (libglib-2.0.so.0 + 0x8c3bd)
                                               #5  0x000067f2ac56b272 start_thread (libc.so.6 + 0x8e272)
                                               #6  0x000067f2ac5e6dec __clone3 (libc.so.6 + 0x109dec)
                                               
                                               Stack trace of thread 166684:
                                               #0  0x000067f2ac5d962f __poll (libc.so.6 + 0xfc62f)
                                               #1  0x000067f2aca4af2f g_main_context_iterate_unlocked.isra.0 (libglib-2.0.so.0 + 0x5ef2f)
                                               #2  0x000067f2aca4b5cc g_main_context_iteration (libglib-2.0.so.0 + 0x5f5cc)
                                               #3  0x000067f2aca4b611 glib_worker_main (libglib-2.0.so.0 + 0x5f611)
                                               #4  0x000067f2aca783bd g_thread_proxy (libglib-2.0.so.0 + 0x8c3bd)
                                               #5  0x000067f2ac56b272 start_thread (libc.so.6 + 0x8e272)
                                               #6  0x000067f2ac5e6dec __clone3 (libc.so.6 + 0x109dec)
                                               
                                               Stack trace of thread 166686:
                                               #0  0x000067f2ac5d962f __poll (libc.so.6 + 0xfc62f)
                                               #1  0x000067f2a9020b3f linux_udev_event_thread_main (libusb-1.0.so.0 + 0x13b3f)
                                               #2  0x000067f2ac56b272 start_thread (libc.so.6 + 0x8e272)
                                               #3  0x000067f2ac5e6dec __clone3 (libc.so.6 + 0x109dec)
                                               
                                               Stack trace of thread 166685:
                                               #0  0x000067f2ac5d962f __poll (libc.so.6 + 0xfc62f)
                                               #1  0x000067f2aca4af2f g_main_context_iterate_unlocked.isra.0 (libglib-2.0.so.0 + 0x5ef2f)
                                               #2  0x000067f2aca4b88f g_main_loop_run (libglib-2.0.so.0 + 0x5f88f)
                                               #3  0x000067f2ac923526 gdbus_shared_thread_func (libgio-2.0.so.0 + 0x127526)
                                               #4  0x000067f2aca783bd g_thread_proxy (libglib-2.0.so.0 + 0x8c3bd)
                                               #5  0x000067f2ac56b272 start_thread (libc.so.6 + 0x8e272)
                                               #6  0x000067f2ac5e6dec __clone3 (libc.so.6 + 0x109dec)
                                               
                                               Stack trace of thread 166687:
                                               #0  0x000067f2ac5d962f __poll (libc.so.6 + 0xfc62f)
                                               #1  0x000067f2a901ba38 usbi_wait_for_events (libusb-1.0.so.0 + 0xea38)
                                               #2  0x000067f2a9018f56 handle_events (libusb-1.0.so.0 + 0xbf56)
                                               #3  0x000067f2a901a4e0 libusb_handle_events_timeout_completed (libusb-1.0.so.0 + 0xd4e0)
                                               #4  0x000067f2a94820d6 g_usb_context_event_thread_cb (libgusb.so.2 + 0x80d6)
                                               #5  0x000067f2aca783bd g_thread_proxy (libglib-2.0.so.0 + 0x8c3bd)
                                               #6  0x000067f2ac56b272 start_thread (libc.so.6 + 0x8e272)
                                               #7  0x000067f2ac5e6dec __clone3 (libc.so.6 + 0x109dec)
                                               
                                               Stack trace of thread 166688:
                                               #0  0x000067f2ac5e4d1d syscall (libc.so.6 + 0x107d1d)
                                               #1  0x000067f2acaa5eac g_cond_wait_until (libglib-2.0.so.0 + 0xb9eac)
                                               #2  0x000067f2aca14093 g_async_queue_pop_intern_unlocked (libglib-2.0.so.0 + 0x28093)
                                               #3  0x000067f2aca146a1 g_async_queue_timeout_pop (libglib-2.0.so.0 + 0x286a1)
                                               #4  0x000067f2aca78d15 g_thread_pool_thread_proxy (libglib-2.0.so.0 + 0x8cd15)
                                               #5  0x000067f2aca783bd g_thread_proxy (libglib-2.0.so.0 + 0x8c3bd)
                                               #6  0x000067f2ac56b272 start_thread (libc.so.6 + 0x8e272)
                                               #7  0x000067f2ac5e6dec __clone3 (libc.so.6 + 0x109dec)
                                               ELF object binary architecture: AMD x86-64
Jul 26 15:56:32 work tudor_host_launcher[173132]: [INF] Activated sandbox
Jul 26 15:56:32 work tudor_host_launcher[173132]: [INF] Received init message - USB device 2-8
Jul 26 15:56:32 work tudor_host_launcher[173132]: [INF] Initialized libcrypto
Jul 26 15:56:32 work tudor_host_launcher[173132]: libusb: warning [op_init] sysfs not mounted
Jul 26 15:56:32 work tudor_host_launcher[173132]: [INF] Initialized libusb
Jul 26 15:56:32 work tudor_host_launcher[173132]: [WRN] PE file contains unsupported resource data directory!
Jul 26 15:56:32 work tudor_host_launcher[173132]: [WRN] PE file contains unsupported exception data directory!
Jul 26 15:56:32 work tudor_host_launcher[173132]: [INF] Loaded driver DLL 'synaFpAdapter104.dll' [186656 bytes]
Jul 26 15:56:32 work tudor_host_launcher[173132]: [WRN] PE file contains unsupported resource data directory!
Jul 26 15:56:32 work tudor_host_launcher[173132]: [WRN] PE file contains unsupported exception data directory!
Jul 26 15:56:32 work tudor_host_launcher[173132]: [WRN] Data directory 4 has invalid bounds! [end 0x17ebe0 > image end 0x17e000]
Jul 26 15:56:32 work tudor_host_launcher[173132]: [INF] Loaded driver DLL 'synaWudfBioUsb104.dll' [1567712 bytes]
Jul 26 15:56:32 work tudor_host_launcher[173132]: [INF] Initializing driver DLL 'synaFpAdapter104.dll'...
Jul 26 15:56:32 work tudor_host_launcher[173132]: [INF] Initializing driver DLL 'synaWudfBioUsb104.dll'...
Jul 26 15:56:32 work tudor_host_launcher[173132]: [INF] Initialized tudor driver
Jul 26 15:56:32 work tudor_host_launcher[173132]: [INF] Opened USB device
Jul 26 15:56:33 work tudor_host_launcher[173132]: [WRN] GetModuleHandleExW called with unsupported flag GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS! [addr=0x66b4d6a0a710]
Jul 26 15:56:33 work tudor_host_launcher[173132]: [INF] Getting pairing data for sensor 'DA60EC7A380B0000'...
Jul 26 15:56:33 work tudor_host_launcher[173132]: [INF] Setting pairing data for sensor 'DA60EC7A380B0000'...
Jul 26 15:56:36 work tudor_host_launcher[173132]: [INF] Opened tudor device
Jul 26 15:56:36 work tudor_host_launcher[173132]: [INF] Sent ready message
Jul 26 15:56:36 work tudor_host_launcher[173132]: [INF] Added record GUID bca24c37... finger 2 size 88812
Jul 26 15:56:37 work tudor_host_launcher[173132]: [INF] Verify GUID bca24c37... finger 2 -> does match
Jul 26 15:57:13 work tudor_host_launcher[173132]: [INF] Cleared 1 records
Jul 26 16:01:49 work tudor_host_launcher[173132]: [INF] Added record GUID bca24c37... finger 2 size 88812
Jul 26 16:01:50 work tudor_host_launcher[173132]: [INF] Verify GUID bca24c37... finger 2 -> does match
Jul 26 16:02:26 work tudor_host_launcher[173132]: [INF] Cleared 1 records
Jul 26 16:17:33 work tudor_host_launcher[173132]: [INF] Added record GUID bca24c37... finger 2 size 88812
Jul 26 16:17:35 work tudor_host_launcher[173132]: [INF] Verify GUID bca24c37... finger 2 -> does match
Jul 26 16:18:28 work tudor_host_launcher[173132]: [INF] Cleared 1 records
Jul 26 16:53:21 work tudor_host_launcher[173132]: [INF] Added record GUID bca24c37... finger 2 size 88812
Jul 26 16:53:23 work tudor_host_launcher[173132]: [INF] Verify GUID bca24c37... finger 2 -> does match
Jul 26 16:54:07 work tudor_host_launcher[173132]: [INF] Cleared 1 records
Jul 26 17:02:40 work tudor_host_launcher[173132]: [INF] Added record GUID bca24c37... finger 2 size 88812
Jul 26 17:02:42 work tudor_host_launcher[173132]: [INF] Verify GUID bca24c37... finger 2 -> does match
Jul 26 17:03:24 work tudor_host_launcher[173132]: [INF] Cleared 1 records
Jul 26 17:06:36 work tudor_host_launcher[173132]: [INF] Added record GUID bca24c37... finger 2 size 88812
Jul 26 17:06:38 work tudor_host_launcher[173132]: [INF] Verify GUID bca24c37... finger 2 -> does match
Jul 26 17:07:25 work tudor_host_launcher[173132]: [INF] Cleared 1 records
Jul 26 17:16:10 work tudor_host_launcher[173132]: [INF] Added record GUID bca24c37... finger 2 size 88812
Jul 26 17:16:11 work tudor_host_launcher[173132]: [INF] Verify GUID bca24c37... finger 2 -> doesn't match
Jul 26 17:16:12 work tudor_host_launcher[173132]: [INF] Verify GUID bca24c37... finger 2 -> does match
Jul 26 17:16:55 work tudor_host_launcher[173132]: [INF] Cleared 1 records

It's not consistent, and I have troubles reproducing the issue. I think it only happens if the sleep period is long enough.

Problem installing on Arch

Hi,

Thanks for doing this project, it's really great although I can't seem to get it running.

While trying to run the command ninja after build with arch-meson, i get this error:

FAILED: libtudor/synaFpAdapter104.dll libtudor/synaWudfBioUsb104.dll 
/usr/bin/bash ../libtudor/download_driver.sh ../libtudor/installer.sha libtudor/synaFpAdapter104.dll.p libtudor synaFpAdapter104.dll synaWudfBioUsb104.dll
../libtudor/download_driver.sh: line 12: wget: command not found
 shasum: libtudor/synaFpAdapter104.dll.p/installer.exe: No such file or directory
cmp: EOF on - which is empty
 Could not open file "libtudor/synaFpAdapter104.dll.p/installer.exe"
 Done with 1 error.
 cp: missing destination file operand after 'libtudor/synaFpAdapter104.dll'
 Try 'cp --help' for more information.
 cp: missing destination file operand after 'libtudor/synaWudfBioUsb104.dll'
 Try 'cp --help' for more information.
 [18/60] Compiling C object libtudor/libtudor.so.p/src_winapi_bcrypt_bcrypt.c.o
 ninja: build stopped: subcommand failed.

I installed innoextract, libfprint-tod-git and did a full system upgrade with no luck.

Thanks again.

libgusb 0.4.0 breakage

Hello again,
After updating from libgusb version 0.3.10 to 0.4.0 the driver crashes with:
fprintd.log
tudor.log
coredump.log

Build fails as well with:

FAILED: libfprint-tod/libtudor_tod.so.p/src_open.c.o 
ccache cc -Ilibfprint-tod/libtudor_tod.so.p -Ilibfprint-tod -I../libfprint-tod -I../libtudor/inc -I../tudor-host/inc -I../tudor-host-launcher/inc -I/usr/include/libfprint-2/tod-1 -I/usr/include/gio-unix-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-4 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gusb-1 -I/usr/include/libusb-1.0 -I/usr/include/json-glib-1.0 -I/usr/include/pixman-1 -I/usr/include/nss -I/usr/include/nspr -I/usr/include/gudev-1.0 -I/usr/include/libfprint-2 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O0 -g -fPIC -pthread -D_GNU_SOURCE -Wno-missing-braces -MD -MQ libfprint-tod/libtudor_tod.so.p/src_open.c.o -MF libfprint-tod/libtudor_tod.so.p/src_open.c.o.d -o libfprint-tod/libtudor_tod.so.p/src_open.c.o -c ../libfprint-tod/src/open.c
In file included from /usr/include/glib-2.0/glib.h:86,
                 from /usr/include/glib-2.0/gobject/gbinding.h:28,
                 from /usr/include/glib-2.0/glib-object.h:22,
                 from /usr/include/libfprint-2/tod-1/fpi-compat.h:21,
                 from /usr/include/libfprint-2/tod-1/drivers_api.h:24,
                 from ../libfprint-tod/src/device.h:5,
                 from ../libfprint-tod/src/open.h:5,
                 from ../libfprint-tod/src/open.c:3:
../libfprint-tod/src/open.c: In function ‘open_device’:
../libfprint-tod/src/open.c:234:62: error: ‘GUsbDevice’ {aka ‘struct _GUsbDevice’} has no member named ‘priv’
  234 |         g_assert_no_errno(tdev->usb_fd = dup(((int**) usb_dev->priv)[3][10 + 2 + 4 + 2 + 1 + 1])); //Cursed offset magic
      |                                                              ^~
/usr/include/glib-2.0/glib/gtestutils.h:162:54: note: in definition of macro ‘g_assert_no_errno’
  162 |                                              __ret = expr; \
      |                                                      ^~~~

when downgrading back to 0.3.10 everything works properly again.

Thank you, again, for this driver 👍🏾

innoextract: command not found

Hi,

I came across this project on nmikhailov/Validity90#73

Before instructions can be followed, I would suggest that all necessary dependencies are listed as part of Readme, as I was doing this on fresh install of Ubuntu 22.10 and I had to install following dependencies to get clean output of meson build.

sudo apt-get install meson pkg-config cmake ninja-build net-tools libcurl4-openssl-dev libssl-dev libusb-1.0-0-dev libcap-dev libseccomp-dev libglib2.0-dev libdbus-glib-1-dev libfprint-2-tod-dev libjson-glib-dev

Regardless, after clean meson build and cd build followed by running ninja I run into following issues, any idea how to resolve this?

ninja
[13/39] Generating libtudor/driver-download with a custom command
FAILED: libtudor/synaFpAdapter104.dll libtudor/synaWudfBioUsb104.dll 
/usr/bin/bash ../libtudor/download_driver.sh ../libtudor/installer.sha libtudor/synaFpAdapter104.dll.p libtudor synaFpAdapter104.dll synaWudfBioUsb104.dll
--2023-02-05 09:05:02--  https://download.lenovo.com/pccbbs/mobiles/r19fp02w.exe
Resolving download.lenovo.com (download.lenovo.com)... 23.51.74.105
Connecting to download.lenovo.com (download.lenovo.com)|23.51.74.105|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2618016 (2,5M) [application/octet-stream]
Saving to: ‘libtudor/synaFpAdapter104.dll.p/installer.exe’

     0K .......... .......... .......... .......... ..........  1% 3,18M 1s
    50K .......... .......... .......... .......... ..........  3% 7,27M 1s
   100K .......... .......... .......... .......... ..........  5% 9,17M 0s
   150K .......... .......... .......... .......... ..........  7% 13,0M 0s
   200K .......... .......... .......... .......... ..........  9% 15,7M 0s
   250K .......... .......... .......... .......... .......... 11% 8,66M 0s
   300K .......... .......... .......... .......... .......... 13% 21,8M 0s
   350K .......... .......... .......... .......... .......... 15% 42,6M 0s
   400K .......... .......... .......... .......... .......... 17% 29,4M 0s
   450K .......... .......... .......... .......... .......... 19% 44,8M 0s
   500K .......... .......... .......... .......... .......... 21% 26,5M 0s
   550K .......... .......... .......... .......... .......... 23% 47,1M 0s
   600K .......... .......... .......... .......... .......... 25% 16,4M 0s
   650K .......... .......... .......... .......... .......... 27% 27,2M 0s
   700K .......... .......... .......... .......... .......... 29%  357M 0s
   750K .......... .......... .......... .......... .......... 31% 34,5M 0s
   800K .......... .......... .......... .......... .......... 33% 25,6M 0s
   850K .......... .......... .......... .......... .......... 35%  327M 0s
   900K .......... .......... .......... .......... .......... 37% 6,90M 0s
   950K .......... .......... .......... .......... .......... 39% 29,9M 0s
  1000K .......... .......... .......... .......... .......... 41% 29,6M 0s
  1050K .......... .......... .......... .......... .......... 43%  330M 0s
  1100K .......... .......... .......... .......... .......... 44% 23,3M 0s
  1150K .......... .......... .......... .......... .......... 46%  268M 0s
  1200K .......... .......... .......... .......... .......... 48%  311M 0s
  1250K .......... .......... .......... .......... .......... 50% 28,9M 0s
  1300K .......... .......... .......... .......... .......... 52%  251M 0s
  1350K .......... .......... .......... .......... .......... 54% 33,6M 0s
  1400K .......... .......... .......... .......... .......... 56%  304M 0s
  1450K .......... .......... .......... .......... .......... 58% 23,5M 0s
  1500K .......... .......... .......... .......... .......... 60%  267M 0s
  1550K .......... .......... .......... .......... .......... 62% 50,2M 0s
  1600K .......... .......... .......... .......... .......... 64% 13,1M 0s
  1650K .......... .......... .......... .......... .......... 66% 27,3M 0s
  1700K .......... .......... .......... .......... .......... 68% 17,7M 0s
  1750K .......... .......... .......... .......... .......... 70%  292M 0s
  1800K .......... .......... .......... .......... .......... 72%  319M 0s
  1850K .......... .......... .......... .......... .......... 74% 35,7M 0s
  1900K .......... .......... .......... .......... .......... 76%  293M 0s
  1950K .......... .......... .......... .......... .......... 78% 25,3M 0s
  2000K .......... .......... .......... .......... .......... 80%  274M 0s
  2050K .......... .......... .......... .......... .......... 82% 37,6M 0s
  2100K .......... .......... .......... .......... .......... 84%  191M 0s
  2150K .......... .......... .......... .......... .......... 86%  333M 0s
  2200K .......... .......... .......... .......... .......... 88% 43,7M 0s
  2250K .......... .......... .......... .......... .......... 89% 26,2M 0s
  2300K .......... .......... .......... .......... .......... 91%  296M 0s
  2350K .......... .......... .......... .......... .......... 93%  202M 0s
  2400K .......... .......... .......... .......... .......... 95%  326M 0s
  2450K .......... .......... .......... .......... .......... 97% 35,8M 0s
  2500K .......... .......... .......... .......... .......... 99%  318M 0s
  2550K ......                                                100%  339M=0,1s

2023-02-05 09:05:03 (26,0 MB/s) - ‘libtudor/synaFpAdapter104.dll.p/installer.exe’ saved [2618016/2618016]

../libtudor/download_driver.sh: line 18: innoextract: command not found
cp: missing destination file operand after 'libtudor/synaFpAdapter104.dll'
Try 'cp --help' for more information.
cp: missing destination file operand after 'libtudor/synaWudfBioUsb104.dll'
Try 'cp --help' for more information.
[22/39] Compiling C object libtudor/libtudor.so.p/src_winapi_wdf_usb.c.o
ninja: build stopped: subcommand failed.

Thanks!

License / Publishing to AUR

Hello, I'm interested in publishing this as a package on the AUR. I have a draft PKGBUILD which seems to work:

# Maintainer: Nathan Rowan <[email protected]>
pkgname=libfprint-2-tod1-synatudor-git
pkgrel=1
pkgver=r199.a528a7d
pkgdesc="Synaptics Tudor Driver Relinking Project"
arch=(x86_64)
url="https://github.com/Popax21/synaTudor"
license=(unknown)
depends=(libfprint-tod openssl libusb libgusb glib2 libseccomp libcap glibc)
makedepends=(git meson innoextract wget)
checkdepends=()
optdepends=()
provides=()
conflicts=()
groups=()
source=("libfprint-2-tod1-synatudor::git+https://github.com/Popax21/synaTudor.git")
sha256sums=('SKIP')

pkgver() {
	cd "$srcdir/${pkgname%-git}"
	printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}

prepare() {
	cd "$srcdir/${pkgname%-git}"
	# cli is for debug usage only
	rm -rf cli/
	sed '/cli/d' meson.build -i
	# INSTALL_DIR has a hardcoded reference to /sbin
	sed 's|/sbin|/usr/bin|' meson.build -i
}

build() {
	arch-meson "$srcdir/${pkgname%-git}" build
	meson compile -C build
}

check() {
	meson test -C build --print-errorlogs
}

package() {
	meson install -C build --destdir "$pkgdir/"
}

However I didn't see any license in the repository. I wanted to add the correct license before submitting to the AUR.

stuck in login screen after installing

First of all thank you so much for bringing linux compatibility to this fingerprint sensor, really appreciated!

To the problem:
After installation I tried to reboot and log into my account. After typing my password and hitting enter noting happened... I also couldn't access any options anymore. This behaviour kept ocurring so I basically couldn't use my computer anymore.

So I went ahead and opened a terminal via Ctrl + Alt + F2 and uninstalled some libfprint packages. After another reboot I could log in normally again.
The weird thing is that the fingerprint sensor worked as intended and I could use it in terminal instead of entering a sudo password.

For the installation command meson build I had to install a lot of dependencies but then it went through with this output:

meson build output
meson build
The Meson build system
Version: 0.61.2
Source dir: /tmp/synaTudor
Build dir: /tmp/synaTudor/build
Build type: native build
DEPRECATION: Option DBGWDF already exists.
Project name: synaTudor
Project version: 1.0.0
C compiler for the host machine: cc (gcc 11.4.0 "cc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0")
C linker for the host machine: cc ld.bfd 2.38
Host machine cpu family: x86_64
Host machine cpu: x86_64
Program bash found: YES (/usr/bin/bash)
Program ld found: YES (/usr/bin/ld)
Run-time dependency threads found: YES
Found pkg-config: /usr/bin/pkg-config (0.29.2)
Run-time dependency libcrypto found: YES 3.0.2
Run-time dependency libusb-1.0 found: YES 1.0.25
Dependency threads found: YES unknown (cached)
Dependency libcrypto found: YES 3.0.2 (cached)
Dependency libusb-1.0 found: YES 1.0.25 (cached)
Dependency threads found: YES unknown (cached)
Dependency libcrypto found: YES 3.0.2 (cached)
Dependency libusb-1.0 found: YES 1.0.25 (cached)
Run-time dependency libcap found: YES 2.44
Run-time dependency libseccomp found: YES 2.5.3
Run-time dependency gio-2.0 found: YES 2.72.4
Run-time dependency gio-unix-2.0 found: YES 2.72.4
Run-time dependency dbus-1 found: YES 1.12.20
Configuring net.reactivated.TudorHostLauncher.service using configuration
Run-time dependency libfprint-2-tod-1 found: YES 1.94.3+tod1+tod1
Run-time dependency udev found: YES 249
Dependency libusb-1.0 found: YES 1.0.25 (cached)
Run-time dependency gusb found: YES 0.3.10
Run-time dependency json-glib-1.0 found: YES 1.6.6
Build targets in project: 6

Found ninja-1.10.1 at /usr/bin/ninja
WARNING: custom_target 'driver-download' has more than one output! Using the first one.
WARNING: custom_target 'driver-download' has more than one output! Using the first one.

The WARNING didn't sound too dangerous so I thought it might be okay to go to the next step. ninja gave following output:

ninja output
ninja
[49/84] Generating libtudor/driver-download with a custom command
--2024-04-28 16:06:07--  https://download.lenovo.com/pccbbs/mobiles/r19fp02w.exe
Resolving download.lenovo.com (download.lenovo.com)... 23.37.236.223
Connecting to download.lenovo.com (download.lenovo.com)|23.37.236.223|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2618016 (2,5M) [application/octet-stream]
Saving to: ‘libtudor/synaFpAdapter104.dll.p/installer.exe’

0K .......... .......... .......... .......... ..........  1% 2,51M 1s
50K .......... .......... .......... .......... ..........  3% 3,56M 1s
100K .......... .......... .......... .......... ..........  5% 3,57M 1s
150K .......... .......... .......... .......... ..........  7% 6,96M 1s
200K .......... .......... .......... .......... ..........  9% 7,13M 1s
250K .......... .......... .......... .......... .......... 11% 11,8M 0s
300K .......... .......... .......... .......... .......... 13% 12,8M 0s
350K .......... .......... .......... .......... .......... 15% 4,31M 0s
400K .......... .......... .......... .......... .......... 17%  282M 0s
450K .......... .......... .......... .......... .......... 19% 28,8M 0s
500K .......... .......... .......... .......... .......... 21% 15,3M 0s
550K .......... .......... .......... .......... .......... 23% 13,4M 0s
600K .......... .......... .......... .......... .......... 25% 15,9M 0s
650K .......... .......... .......... .......... .......... 27% 9,68M 0s
700K .......... .......... .......... .......... .......... 29% 11,4M 0s
750K .......... .......... .......... .......... .......... 31% 12,6M 0s
800K .......... .......... .......... .......... .......... 33% 17,9M 0s
850K .......... .......... .......... .......... .......... 35% 10,9M 0s
900K .......... .......... .......... .......... .......... 37% 7,86M 0s
950K .......... .......... .......... .......... .......... 39% 13,5M 0s
1000K .......... .......... .......... .......... .......... 41% 29,5M 0s
1050K .......... .......... .......... .......... .......... 43% 9,30M 0s
1100K .......... .......... .......... .......... .......... 44% 13,5M 0s
1150K .......... .......... .......... .......... .......... 46% 14,0M 0s
1200K .......... .......... .......... .......... .......... 48% 11,6M 0s
1250K .......... .......... .......... .......... .......... 50% 17,5M 0s
1300K .......... .......... .......... .......... .......... 52% 8,85M 0s
1350K .......... .......... .......... .......... .......... 54% 11,3M 0s
1400K .......... .......... .......... .......... .......... 56% 18,3M 0s
1450K .......... .......... .......... .......... .......... 58% 13,2M 0s
1500K .......... .......... .......... .......... .......... 60% 10,5M 0s
1550K .......... .......... .......... .......... .......... 62% 13,2M 0s
1600K .......... .......... .......... .......... .......... 64% 9,78M 0s
1650K .......... .......... .......... .......... .......... 66% 25,1M 0s
1700K .......... .......... .......... .......... .......... 68% 10,4M 0s
1750K .......... .......... .......... .......... .......... 70% 13,3M 0s
1800K .......... .......... .......... .......... .......... 72% 12,6M 0s
1850K .......... .......... .......... .......... .......... 74% 7,97M 0s
1900K .......... .......... .......... .......... .......... 76% 7,57M 0s
1950K .......... .......... .......... .......... .......... 78%  294M 0s
2000K .......... .......... .......... .......... .......... 80% 9,24M 0s
2050K .......... .......... .......... .......... .......... 82% 12,6M 0s
2100K .......... .......... .......... .......... .......... 84% 34,1M 0s
2150K .......... .......... .......... .......... .......... 86% 8,93M 0s
2200K .......... .......... .......... .......... .......... 88% 13,8M 0s
2250K .......... .......... .......... .......... .......... 89% 15,2M 0s
2300K .......... .......... .......... .......... .......... 91% 11,3M 0s
2350K .......... .......... .......... .......... .......... 93% 10,3M 0s
2400K .......... .......... .......... .......... .......... 95% 10,9M 0s
2450K .......... .......... .......... .......... .......... 97% 14,4M 0s
2500K .......... .......... .......... .......... .......... 99% 4,10M 0s
2550K ......                                                100%  270M=0,3s

2024-04-28 16:06:08 (9,94 MB/s) - ‘libtudor/synaFpAdapter104.dll.p/installer.exe’ saved [2618016/2618016]

Extracting "version 6.0.33.1104(Synaptics FingerPrint FM3463 Driver)(R19FP02W)" - setup data version 5.5.7 (unicode)
- "codeGetExtractPath/synaWudfBioUsbUwpSgx.inf" - overwritten
- "codeGetExtractPath/Setup.bat"
- "codeGetExtractPath/sgx_capable.dll"
- "codeGetExtractPath/synaDriverLoader104.dll"
- "codeGetExtractPath/synaFpAdapter104.dll"
- "codeGetExtractPath/synaTEE104.signed.dll"
- "codeGetExtractPath/synaumdfsgx.cat"
- "codeGetExtractPath/synaWudfBioUsb104.dll"
- "codeGetExtractPath/synaWudfBioUsbSGX104.dll"
- "codeGetExtractPath/synaWudfBioUsbUwpSgx.inf"
Done.
[75/84] Compiling C object libfprint-tod/libtudor_tod.so.p/src_open.c.o
../libfprint-tod/src/open.c: In function ‘init_host_proc’:
../libfprint-tod/src/open.c:207:27: warning: initialization of ‘void **’ from incompatible pointer type ‘GUsbDevicePrivate *’ {aka ‘struct _GUsbDevicePrivate *’} [-Wincompatible-pointer-types]
207 |         void **dev_priv = usb_dev->priv;
|                           ^~~~~~~
[84/84] Linking target tudor-host/tudor_host

I can't really make sense of the warning at the end of that but since the fingerprint sensor worked I didn't think that would be a problem.

sudo ninja install went through with no warnings or any weird behavior.

Any idea why this problem occurs or how to fix it? Maybe i should say that i cloned the repo to /tmp and installed everything there so maybe that is a point

I'm running Kubuntu 22.04.

Possible support for `06cb:00c9`

Hello. Thanks for this awesome project.

My laptop has a 06cb:00c9 which is a similar Synaptics fingerprint device. I've been trying to get it to work using the current code. However, I hit a dead end. I'll first explain my process, then maybe you can help me. Full disclaimer: I'm not a low level programmer so this is why my skills in this area is very limited.

I created a fork where I made modifications specific to 00c9. Maybe when it's supported it can get merged back in.

I discovered the drivers for my HP PC are on the following link: https://ftp.hp.com/pub/softpaq/sp138001-138500/sp138227.exe which can be easily extracted with 7zip.

Running ./cli/tudor_cli hits me with the following log:

>>>> WARNING <<<<<
Even though the CLI employs sandboxing, its security is in no way comparable to the one found in the libfprint integration.
A malicious driver could take over your local user account!
This CLI is only intended to be used for debugging and/or small scale tests.
Press 'y' to continue, any key to exit: y
[INF] Initializing libcrypto...
[INF] Initializing libusb...
[INF] Found sensor USB device [bus 3 addr 4 vid 0x06cb pid 0x00c9]
[INF] Opening sensor USB device...
[INF] Dropping root privileges... [new uid=1000 new gid=1000]
[INF] Initializing tudor driver...
[WRN] PE file contains unsupported resource data directory!
[WRN] PE file contains unsupported exception data directory!
[INF] Loaded driver DLL 'synaFpAdapter111.dll' [190472 bytes]
[WRN] PE file contains unsupported resource data directory!
[WRN] PE file contains unsupported exception data directory!
[INF] Loaded driver DLL 'synaWudfBioUsb111.dll' [1807344 bytes]
[INF] Initializing driver DLL 'synaFpAdapter111.dll'...
[INF] Initializing driver DLL 'synaWudfBioUsb111.dll'...
[INF] Loading data from data store 'temp2'...
[INF] Opening tudor device...
[ERR] Unresolved WDF function 33 called!
Aborted

It's blocked from here and I don't know what to do.

Crash: Attempted multiple different sensor pairing data loads

journalctl -b0 -t tudor_host_launcher -t fprintd -t systemd-coredump
Aug 07 09:22:48 work tudor_host_launcher[1781]: [INF] Activated sandbox
Aug 07 09:22:48 work tudor_host_launcher[1781]: [INF] Received init message - USB device 2-3
Aug 07 09:22:48 work tudor_host_launcher[1781]: [INF] Initialized libcrypto
Aug 07 09:22:48 work tudor_host_launcher[1781]: libusb: warning [op_init] sysfs not mounted
Aug 07 09:22:48 work tudor_host_launcher[1781]: [INF] Initialized libusb
Aug 07 09:22:48 work tudor_host_launcher[1781]: [WRN] PE file contains unsupported resource data directory!
Aug 07 09:22:48 work tudor_host_launcher[1781]: [WRN] PE file contains unsupported exception data directory!
Aug 07 09:22:48 work tudor_host_launcher[1781]: [INF] Loaded driver DLL 'synaFpAdapter104.dll' [186656 bytes]
Aug 07 09:22:48 work tudor_host_launcher[1781]: [WRN] PE file contains unsupported resource data directory!
Aug 07 09:22:48 work tudor_host_launcher[1781]: [WRN] PE file contains unsupported exception data directory!
Aug 07 09:22:48 work tudor_host_launcher[1781]: [WRN] Data directory 4 has invalid bounds! [end 0x17ebe0 > image end 0x17e000]
Aug 07 09:22:48 work tudor_host_launcher[1781]: [INF] Loaded driver DLL 'synaWudfBioUsb104.dll' [1567712 bytes]
Aug 07 09:22:48 work tudor_host_launcher[1781]: [INF] Initializing driver DLL 'synaFpAdapter104.dll'...
Aug 07 09:22:48 work tudor_host_launcher[1781]: [INF] Initializing driver DLL 'synaWudfBioUsb104.dll'...
Aug 07 09:22:48 work tudor_host_launcher[1781]: [INF] Initialized tudor driver
Aug 07 09:22:48 work tudor_host_launcher[1781]: [INF] Opened USB device
Aug 07 09:22:48 work tudor_host_launcher[1781]: [WRN] GetModuleHandleExW called with unsupported flag GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS! [addr=0x63847060a710]
Aug 07 09:22:48 work tudor_host_launcher[1781]: [INF] Getting pairing data for sensor 'DA60EC7A380B0000'...
Aug 07 09:22:48 work tudor_host_launcher[1781]: [INF] Setting pairing data for sensor 'DA60EC7A380B0000'...
Aug 07 09:22:51 work tudor_host_launcher[1781]: [INF] Opened tudor device
Aug 07 09:22:51 work tudor_host_launcher[1781]: [INF] Sent ready message
Aug 07 09:23:22 work tudor_host_launcher[1781]: [INF] Cleared 0 records
Aug 07 09:56:39 work tudor_host_launcher[1781]: [INF] Added record GUID bca24c37... finger 2 size 88812
Aug 07 09:56:40 work tudor_host_launcher[1781]: [INF] Verify GUID bca24c37... finger 2 -> does match
Aug 07 09:57:13 work tudor_host_launcher[1781]: [INF] Cleared 1 records
Aug 07 10:06:19 work tudor_host_launcher[1781]: [INF] Added record GUID bca24c37... finger 2 size 88812
Aug 07 10:06:19 work tudor_host_launcher[1781]: [INF] Verify GUID bca24c37... finger 2 -> does match
Aug 07 10:06:53 work tudor_host_launcher[1781]: [INF] Cleared 1 records
Aug 07 10:57:44 work tudor_host_launcher[1781]: [INF] Added record GUID bca24c37... finger 2 size 88812
Aug 07 10:57:45 work tudor_host_launcher[1781]: [INF] Verify GUID bca24c37... finger 2 -> doesn't match
Aug 07 10:57:46 work tudor_host_launcher[1781]: [INF] Verify GUID bca24c37... finger 2 -> does match
Aug 07 10:58:33 work tudor_host_launcher[1781]: [INF] Cleared 1 records
Aug 07 11:11:36 work tudor_host_launcher[1765]: **
Aug 07 11:11:36 work tudor_host_launcher[1765]: ERROR:../tudor-host-launcher/src/launch.c:20:free_host: assertion failed (killpg(entry->pid, SIGKILL) >= 0): errno 3: No such process
Aug 07 11:11:36 work tudor_host_launcher[1765]: Bail out! ERROR:../tudor-host-launcher/src/launch.c:20:free_host: assertion failed (killpg(entry->pid, SIGKILL) >= 0): errno 3: No such process
Aug 07 11:11:37 work systemd-coredump[16128]: Process 1765 (tudor_host_laun) of user 0 dumped core.
                                              
                                              Module libpcre2-8.so.0 without build-id.
                                              Module libffi.so.8 without build-id.
                                              Module libselinux.so.1 without build-id.
                                              Module libz.so.1 without build-id.
                                              Module tudor_host_launcher without build-id.
                                              Stack trace of thread 1765:
                                              #0  0x00006cf9eaf7cefc __pthread_kill_implementation (libc.so.6 + 0x8fefc)
                                              #1  0x00006cf9eaf2ce86 raise (libc.so.6 + 0x3fe86)
                                              #2  0x00006cf9eaf15935 abort (libc.so.6 + 0x28935)
                                              #3  0x00006cf9eb0fd025 g_assertion_message.cold (libglib-2.0.so.0 + 0x23025)
                                              #4  0x0000000000402805 free_host (tudor_host_launcher + 0x2805)
                                              #5  0x00000000004029fb host_watch_cb (tudor_host_launcher + 0x29fb)
                                              #6  0x00006cf9eb1354d7 g_child_watch_dispatch (libglib-2.0.so.0 + 0x5b4d7)
                                              #7  0x00006cf9eb135e39 g_main_dispatch (libglib-2.0.so.0 + 0x5be39)
                                              #8  0x00006cf9eb138fd7 g_main_context_iterate_unlocked.isra.0 (libglib-2.0.so.0 + 0x5efd7)
                                              #9  0x00006cf9eb13988f g_main_loop_run (libglib-2.0.so.0 + 0x5f88f)
                                              #10 0x00000000004024c6 main (tudor_host_launcher + 0x24c6)
                                              #11 0x00006cf9eaf1710e __libc_start_call_main (libc.so.6 + 0x2a10e)
                                              #12 0x00006cf9eaf171c9 __libc_start_main@@GLIBC_2.34 (libc.so.6 + 0x2a1c9)
                                              #13 0x0000000000402545 _start (tudor_host_launcher + 0x2545)
                                              
                                              Stack trace of thread 1775:
                                              #0  0x00006cf9eaff4d1d syscall (libc.so.6 + 0x107d1d)
                                              #1  0x00006cf9eb193d00 g_cond_wait (libglib-2.0.so.0 + 0xb9d00)
                                              #2  0x00006cf9eb1020bb g_async_queue_pop_intern_unlocked (libglib-2.0.so.0 + 0x280bb)
                                              #3  0x00006cf9eb166b52 g_thread_pool_spawn_thread (libglib-2.0.so.0 + 0x8cb52)
                                              #4  0x00006cf9eb1663bd g_thread_proxy (libglib-2.0.so.0 + 0x8c3bd)
                                              #5  0x00006cf9eaf7b272 start_thread (libc.so.6 + 0x8e272)
                                              #6  0x00006cf9eaff6dec __clone3 (libc.so.6 + 0x109dec)
                                              
                                              Stack trace of thread 1776:
                                              #0  0x00006cf9eafe962f __poll (libc.so.6 + 0xfc62f)
                                              #1  0x00006cf9eb138f2f g_main_context_iterate_unlocked.isra.0 (libglib-2.0.so.0 + 0x5ef2f)
                                              #2  0x00006cf9eb1395cc g_main_context_iteration (libglib-2.0.so.0 + 0x5f5cc)
                                              #3  0x00006cf9eb139611 glib_worker_main (libglib-2.0.so.0 + 0x5f611)
                                              #4  0x00006cf9eb1663bd g_thread_proxy (libglib-2.0.so.0 + 0x8c3bd)
                                              #5  0x00006cf9eaf7b272 start_thread (libc.so.6 + 0x8e272)
                                              #6  0x00006cf9eaff6dec __clone3 (libc.so.6 + 0x109dec)
                                              
                                              Stack trace of thread 1779:
                                              #0  0x00006cf9eafe962f __poll (libc.so.6 + 0xfc62f)
                                              #1  0x00006cf9eb138f2f g_main_context_iterate_unlocked.isra.0 (libglib-2.0.so.0 + 0x5ef2f)
                                              #2  0x00006cf9eb13988f g_main_loop_run (libglib-2.0.so.0 + 0x5f88f)
                                              #3  0x00006cf9eb3b0526 gdbus_shared_thread_func (libgio-2.0.so.0 + 0x127526)
                                              #4  0x00006cf9eb1663bd g_thread_proxy (libglib-2.0.so.0 + 0x8c3bd)
                                              #5  0x00006cf9eaf7b272 start_thread (libc.so.6 + 0x8e272)
                                              #6  0x00006cf9eaff6dec __clone3 (libc.so.6 + 0x109dec)
                                              ELF object binary architecture: AMD x86-64
Aug 07 11:32:42 work tudor_host_launcher[22187]: [INF] Activated sandbox
Aug 07 11:32:42 work tudor_host_launcher[22187]: [INF] Received init message - USB device 2-4
Aug 07 11:32:42 work tudor_host_launcher[22187]: [INF] Initialized libcrypto
Aug 07 11:32:42 work tudor_host_launcher[22187]: libusb: warning [op_init] sysfs not mounted
Aug 07 11:32:42 work tudor_host_launcher[22187]: [INF] Initialized libusb
Aug 07 11:32:42 work tudor_host_launcher[22187]: [WRN] PE file contains unsupported resource data directory!
Aug 07 11:32:42 work tudor_host_launcher[22187]: [WRN] PE file contains unsupported exception data directory!
Aug 07 11:32:42 work tudor_host_launcher[22187]: [INF] Loaded driver DLL 'synaFpAdapter104.dll' [186656 bytes]
Aug 07 11:32:42 work tudor_host_launcher[22187]: [WRN] PE file contains unsupported resource data directory!
Aug 07 11:32:42 work tudor_host_launcher[22187]: [WRN] PE file contains unsupported exception data directory!
Aug 07 11:32:42 work tudor_host_launcher[22187]: [WRN] Data directory 4 has invalid bounds! [end 0x17ebe0 > image end 0x17e000]
Aug 07 11:32:42 work tudor_host_launcher[22187]: [INF] Loaded driver DLL 'synaWudfBioUsb104.dll' [1567712 bytes]
Aug 07 11:32:42 work tudor_host_launcher[22187]: [INF] Initializing driver DLL 'synaFpAdapter104.dll'...
Aug 07 11:32:42 work tudor_host_launcher[22187]: [INF] Initializing driver DLL 'synaWudfBioUsb104.dll'...
Aug 07 11:32:42 work tudor_host_launcher[22187]: [INF] Initialized tudor driver
Aug 07 11:32:42 work tudor_host_launcher[22187]: [INF] Opened USB device
Aug 07 11:32:44 work tudor_host_launcher[22187]: [WRN] GetModuleHandleExW called with unsupported flag GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS! [addr=0x6ea10cfcb710]
Aug 07 11:32:44 work tudor_host_launcher[22187]: [INF] Getting pairing data for sensor 'DA60EC7A380B0000'...
Aug 07 11:32:44 work tudor_host_launcher[22187]: [INF] Setting pairing data for sensor 'DA60EC7A380B0000'...
Aug 07 11:32:47 work tudor_host_launcher[22187]: [INF] Opened tudor device
Aug 07 11:32:47 work tudor_host_launcher[22187]: [INF] Sent ready message
Aug 07 11:32:47 work tudor_host_launcher[22187]: [INF] Added record GUID bca24c37... finger 2 size 88812
Aug 07 11:32:48 work tudor_host_launcher[22187]: [INF] Verify GUID bca24c37... finger 2 -> doesn't match
Aug 07 11:32:49 work tudor_host_launcher[22187]: [INF] Verify GUID bca24c37... finger 2 -> does match
Aug 07 11:32:56 work tudor_host_launcher[22187]: [INF] Verify GUID bca24c37... finger 2 -> doesn't match
Aug 07 11:32:57 work tudor_host_launcher[22187]: [INF] Verify GUID bca24c37... finger 2 -> does match
Aug 07 11:33:42 work tudor_host_launcher[22187]: [INF] Cleared 1 records
Aug 07 11:35:43 work tudor_host_launcher[22187]: [INF] Cleared 0 records
Aug 07 11:37:11 work tudor_host_launcher[22187]: [INF] Added record GUID bca24c37... finger 2 size 88812
Aug 07 11:37:11 work tudor_host_launcher[22187]: [INF] Verify GUID bca24c37... finger 2 -> does match
Aug 07 11:37:44 work tudor_host_launcher[22187]: [INF] Cleared 1 records
Aug 07 11:59:20 work tudor_host_launcher[22187]: [INF] Added record GUID bca24c37... finger 2 size 88812
Aug 07 11:59:20 work tudor_host_launcher[22187]: [INF] Verify GUID bca24c37... finger 2 -> does match
Aug 07 11:59:52 work tudor_host_launcher[22187]: [INF] Cleared 1 records
Aug 07 12:08:14 work tudor_host_launcher[22187]: [INF] Added record GUID bca24c37... finger 2 size 88812
Aug 07 12:08:14 work tudor_host_launcher[22187]: [INF] Verify GUID bca24c37... finger 2 -> doesn't match
Aug 07 12:08:15 work tudor_host_launcher[22187]: [INF] Verify GUID bca24c37... finger 2 -> doesn't match
Aug 07 12:08:20 work tudor_host_launcher[22187]: [INF] Verify GUID bca24c37... finger 2 -> doesn't match
Aug 07 12:09:33 work tudor_host_launcher[22187]: [INF] Cleared 1 records
Aug 07 12:29:54 work tudor_host_launcher[22187]: [INF] Added record GUID bca24c37... finger 2 size 88812
Aug 07 12:29:54 work tudor_host_launcher[22187]: [INF] Verify GUID bca24c37... finger 2 -> does match
Aug 07 12:30:29 work tudor_host_launcher[22187]: [INF] Cleared 1 records
Aug 07 13:34:13 work tudor_host_launcher[22187]: [INF] Added record GUID bca24c37... finger 2 size 88812
Aug 07 13:34:14 work tudor_host_launcher[22187]: [INF] Verify GUID bca24c37... finger 2 -> does match
Aug 07 13:34:47 work tudor_host_launcher[22187]: [INF] Cleared 1 records
Aug 07 14:14:09 work tudor_host_launcher[22187]: [INF] Added record GUID bca24c37... finger 2 size 88812
Aug 07 14:14:10 work tudor_host_launcher[22187]: [INF] Verify GUID bca24c37... finger 2 -> doesn't match
Aug 07 14:14:11 work tudor_host_launcher[22187]: [INF] Verify GUID bca24c37... finger 2 -> does match
Aug 07 14:14:50 work tudor_host_launcher[22187]: [INF] Cleared 1 records
Aug 07 14:17:47 work tudor_host_launcher[22187]: [INF] Added record GUID bca24c37... finger 2 size 88812
Aug 07 14:17:48 work tudor_host_launcher[22187]: [INF] Verify GUID bca24c37... finger 2 -> does match
Aug 07 14:18:22 work tudor_host_launcher[22187]: [INF] Cleared 1 records
Aug 07 14:45:50 work tudor_host_launcher[22187]: [INF] Added record GUID bca24c37... finger 2 size 88812
Aug 07 14:45:51 work tudor_host_launcher[22187]: [INF] Verify GUID bca24c37... finger 2 -> does match
Aug 07 14:46:32 work tudor_host_launcher[22187]: [INF] Cleared 1 records
Aug 07 15:12:03 work tudor_host_launcher[22187]: [INF] Added record GUID bca24c37... finger 2 size 88812
Aug 07 15:12:03 work tudor_host_launcher[22187]: [INF] Verify GUID bca24c37... finger 2 -> does match
Aug 07 15:12:36 work tudor_host_launcher[22187]: [INF] Cleared 1 records
Aug 07 15:16:05 work tudor_host_launcher[22187]: [INF] Added record GUID bca24c37... finger 2 size 88812
Aug 07 15:16:05 work tudor_host_launcher[22187]: [INF] Verify GUID bca24c37... finger 2 -> does match
Aug 07 15:16:39 work tudor_host_launcher[22187]: [INF] Cleared 1 records
Aug 07 15:57:23 work tudor_host_launcher[151307]: [INF] Activated sandbox
Aug 07 15:57:23 work tudor_host_launcher[151307]: [INF] Received init message - USB device 2-5
Aug 07 15:57:23 work tudor_host_launcher[151307]: [INF] Initialized libcrypto
Aug 07 15:57:23 work tudor_host_launcher[151307]: libusb: warning [op_init] sysfs not mounted
Aug 07 15:57:23 work tudor_host_launcher[151307]: [INF] Initialized libusb
Aug 07 15:57:23 work tudor_host_launcher[151307]: [WRN] PE file contains unsupported resource data directory!
Aug 07 15:57:23 work tudor_host_launcher[151307]: [WRN] PE file contains unsupported exception data directory!
Aug 07 15:57:23 work tudor_host_launcher[151307]: [INF] Loaded driver DLL 'synaFpAdapter104.dll' [186656 bytes]
Aug 07 15:57:23 work tudor_host_launcher[151307]: [WRN] PE file contains unsupported resource data directory!
Aug 07 15:57:23 work tudor_host_launcher[151307]: [WRN] PE file contains unsupported exception data directory!
Aug 07 15:57:23 work tudor_host_launcher[151307]: [WRN] Data directory 4 has invalid bounds! [end 0x17ebe0 > image end 0x17e000]
Aug 07 15:57:23 work tudor_host_launcher[151307]: [INF] Loaded driver DLL 'synaWudfBioUsb104.dll' [1567712 bytes]
Aug 07 15:57:23 work tudor_host_launcher[151307]: [INF] Initializing driver DLL 'synaFpAdapter104.dll'...
Aug 07 15:57:23 work tudor_host_launcher[151307]: [INF] Initializing driver DLL 'synaWudfBioUsb104.dll'...
Aug 07 15:57:23 work tudor_host_launcher[151307]: [INF] Initialized tudor driver
Aug 07 15:57:23 work tudor_host_launcher[151307]: [INF] Opened USB device
Aug 07 15:57:23 work systemd-coredump[151269]: Process 22187 (tudor_host) of user 3333 dumped core.
                                               
                                               Module libudev.so.1 without build-id.
                                               Module libseccomp.so.2 without build-id.
                                               Module libcap.so.2 without build-id.
                                               Module libusb-1.0.so.0 without build-id.
                                               Module libtudor.so without build-id.
                                               Module tudor_host without build-id.
                                               Stack trace of thread 22188:
                                               #0  0x00006ea10da5f62f __poll (libc.so.6 + 0xfc62f)
                                               #1  0x00006ea10db8ca38 usbi_wait_for_events (libusb-1.0.so.0 + 0xea38)
                                               #2  0x00006ea10db89f56 handle_events (libusb-1.0.so.0 + 0xbf56)
                                               #3  0x00006ea10db8b4e0 libusb_handle_events_timeout_completed (libusb-1.0.so.0 + 0xd4e0)
                                               #4  0x00006ea10db8b53a libusb_handle_events (libusb-1.0.so.0 + 0xd53a)
                                               #5  0x0000000000404211 usb_thread_func (tudor_host + 0x4211)
                                               #6  0x00006ea10d9f1272 start_thread (libc.so.6 + 0x8e272)
                                               #7  0x00006ea10da6cc24 __clone (libc.so.6 + 0x109c24)
                                               
                                               Stack trace of thread 22190:
                                               #0  0x00006ea10d9edc5e __futex_abstimed_wait_common (libc.so.6 + 0x8ac5e)
                                               #1  0x00006ea10d9f04c0 pthread_cond_wait@@GLIBC_2.3.2 (libc.so.6 + 0x8d4c0)
                                               #2  0x00006ea10e035e5b evt_wait (libtudor.so + 0x17e5b)
                                               #3  0x00006ea10e0369a2 WaitForSingleObject (libtudor.so + 0x189a2)
                                               #4  0x00006ea10cfc3cf0 n/a (n/a + 0x0)
                                               ELF object binary architecture: AMD x86-64
Aug 07 15:57:23 work tudor_host_launcher[22180]: **
Aug 07 15:57:23 work tudor_host_launcher[22180]: ERROR:../tudor-host-launcher/src/launch.c:20:free_host: assertion failed (killpg(entry->pid, SIGKILL) >= 0): errno 3: No such process
Aug 07 15:57:23 work tudor_host_launcher[22180]: Bail out! ERROR:../tudor-host-launcher/src/launch.c:20:free_host: assertion failed (killpg(entry->pid, SIGKILL) >= 0): errno 3: No such process
Aug 07 15:57:24 work tudor_host_launcher[151307]: [WRN] GetModuleHandleExW called with unsupported flag GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS! [addr=0x67710c9e2710]
Aug 07 15:57:24 work tudor_host_launcher[151307]: [INF] Getting pairing data for sensor 'DA60EC7A380B0000'...
Aug 07 15:57:24 work systemd-coredump[151341]: Process 22180 (tudor_host_laun) of user 0 dumped core.
                                               
                                               Module libpcre2-8.so.0 without build-id.
                                               Module libffi.so.8 without build-id.
                                               Module libselinux.so.1 without build-id.
                                               Module libz.so.1 without build-id.
                                               Module tudor_host_launcher without build-id.
                                               Stack trace of thread 22180:
                                               #0  0x00006c4567506efc __pthread_kill_implementation (libc.so.6 + 0x8fefc)
                                               #1  0x00006c45674b6e86 raise (libc.so.6 + 0x3fe86)
                                               #2  0x00006c456749f935 abort (libc.so.6 + 0x28935)
                                               #3  0x00006c4567687025 g_assertion_message.cold (libglib-2.0.so.0 + 0x23025)
                                               #4  0x0000000000402805 free_host (tudor_host_launcher + 0x2805)
                                               #5  0x00000000004029fb host_watch_cb (tudor_host_launcher + 0x29fb)
                                               #6  0x00006c45676bf4d7 g_child_watch_dispatch (libglib-2.0.so.0 + 0x5b4d7)
                                               #7  0x00006c45676bfe39 g_main_dispatch (libglib-2.0.so.0 + 0x5be39)
                                               #8  0x00006c45676c2fd7 g_main_context_iterate_unlocked.isra.0 (libglib-2.0.so.0 + 0x5efd7)
                                               #9  0x00006c45676c388f g_main_loop_run (libglib-2.0.so.0 + 0x5f88f)
                                               #10 0x00000000004024c6 main (tudor_host_launcher + 0x24c6)
                                               #11 0x00006c45674a110e __libc_start_call_main (libc.so.6 + 0x2a10e)
                                               #12 0x00006c45674a11c9 __libc_start_main@@GLIBC_2.34 (libc.so.6 + 0x2a1c9)
                                               #13 0x0000000000402545 _start (tudor_host_launcher + 0x2545)
                                               
                                               Stack trace of thread 22185:
                                               #0  0x00006c456757362f __poll (libc.so.6 + 0xfc62f)
                                               #1  0x00006c45676c2f2f g_main_context_iterate_unlocked.isra.0 (libglib-2.0.so.0 + 0x5ef2f)
                                               #2  0x00006c45676c388f g_main_loop_run (libglib-2.0.so.0 + 0x5f88f)
                                               #3  0x00006c456793a526 gdbus_shared_thread_func (libgio-2.0.so.0 + 0x127526)
                                               #4  0x00006c45676f03bd g_thread_proxy (libglib-2.0.so.0 + 0x8c3bd)
                                               #5  0x00006c4567505272 start_thread (libc.so.6 + 0x8e272)
                                               #6  0x00006c4567580dec __clone3 (libc.so.6 + 0x109dec)
                                               
                                               Stack trace of thread 22184:
                                               #0  0x00006c456757362f __poll (libc.so.6 + 0xfc62f)
                                               #1  0x00006c45676c2f2f g_main_context_iterate_unlocked.isra.0 (libglib-2.0.so.0 + 0x5ef2f)
                                               #2  0x00006c45676c35cc g_main_context_iteration (libglib-2.0.so.0 + 0x5f5cc)
                                               #3  0x00006c45676c3611 glib_worker_main (libglib-2.0.so.0 + 0x5f611)
                                               #4  0x00006c45676f03bd g_thread_proxy (libglib-2.0.so.0 + 0x8c3bd)
                                               #5  0x00006c4567505272 start_thread (libc.so.6 + 0x8e272)
                                               #6  0x00006c4567580dec __clone3 (libc.so.6 + 0x109dec)
                                               
                                               Stack trace of thread 22183:
                                               #0  0x00006c456757ed1d syscall (libc.so.6 + 0x107d1d)
                                               #1  0x00006c456771dd00 g_cond_wait (libglib-2.0.so.0 + 0xb9d00)
                                               #2  0x00006c456768c0bb g_async_queue_pop_intern_unlocked (libglib-2.0.so.0 + 0x280bb)
                                               #3  0x00006c45676f0b52 g_thread_pool_spawn_thread (libglib-2.0.so.0 + 0x8cb52)
                                               #4  0x00006c45676f03bd g_thread_proxy (libglib-2.0.so.0 + 0x8c3bd)
                                               #5  0x00006c4567505272 start_thread (libc.so.6 + 0x8e272)
                                               #6  0x00006c4567580dec __clone3 (libc.so.6 + 0x109dec)
                                               ELF object binary architecture: AMD x86-64
Aug 07 15:57:24 work systemd-coredump[151365]: Process 151141 (fprintd) of user 0 dumped core.
                                               
                                               Module libtudor_tod.so without build-id.
                                               Module libcap.so.2 without build-id.
                                               Module libudev.so.1 without build-id.
                                               Module libnspr4.so without build-id.
                                               Module libplc4.so without build-id.
                                               Module libplds4.so without build-id.
                                               Module libnssutil3.so without build-id.
                                               Module libjson-glib-1.0.so.0 without build-id.
                                               Module libusb-1.0.so.0 without build-id.
                                               Module libsystemd.so.0 without build-id.
                                               Module libgudev-1.0.so.0 without build-id.
                                               Module libnss3.so without build-id.
                                               Module libgusb.so.2 without build-id.
                                               Module libfprint-2-tod.so.1 without build-id.
                                               Module libffi.so.8 without build-id.
                                               Module libselinux.so.1 without build-id.
                                               Module libz.so.1 without build-id.
                                               Module libpcre2-8.so.0 without build-id.
                                               Module libpolkit-gobject-1.so.0 without build-id.
                                               Module libfprint-2.so.2 without build-id.
                                               Module fprintd without build-id.
                                               Stack trace of thread 151141:
                                               #0  0x000067643ef0bf1b g_socket_send_message (libgio-2.0.so.0 + 0xacf1b)
                                               #1  0x00006764397ed646 send_ipc_msg (libtudor_tod.so + 0x6646)
                                               #2  0x00006764397ed6d0 send_acked_ipc_msg (libtudor_tod.so + 0x66d0)
                                               #3  0x00006764397ebedc ensure_closed.part.0 (libtudor_tod.so + 0x4edc)
                                               #4  0x00006764397ebfe0 fpi_device_tudor_dispose (libtudor_tod.so + 0x4fe0)
                                               #5  0x000067643ee18337 g_object_unref (libgobject-2.0.so.0 + 0x1d337)
                                               #6  0x000067643bb08051 fpi_device_task_return_data_free (libfprint-2-tod.so.1 + 0xf051)
                                               #7  0x000067643f0aa369 g_source_callback_unref (libglib-2.0.so.0 + 0x5b369)
                                               #8  0x000067643f0aac8f g_source_destroy_internal (libglib-2.0.so.0 + 0x5bc8f)
                                               #9  0x000067643f0aae9c g_main_dispatch (libglib-2.0.so.0 + 0x5be9c)
                                               #10 0x000067643f0adfd7 g_main_context_iterate_unlocked.isra.0 (libglib-2.0.so.0 + 0x5efd7)
                                               #11 0x000067643f0ae88f g_main_loop_run (libglib-2.0.so.0 + 0x5f88f)
                                               #12 0x000000000040983f main (fprintd + 0x983f)
                                               #13 0x000067643eb6a10e __libc_start_call_main (libc.so.6 + 0x2a10e)
                                               #14 0x000067643eb6a1c9 __libc_start_main@@GLIBC_2.34 (libc.so.6 + 0x2a1c9)
                                               #15 0x0000000000409b65 _start (fprintd + 0x9b65)
                                               
                                               Stack trace of thread 151142:
                                               #0  0x000067643ec47d1d syscall (libc.so.6 + 0x107d1d)
                                               #1  0x000067643f108d00 g_cond_wait (libglib-2.0.so.0 + 0xb9d00)
                                               #2  0x000067643f0770bb g_async_queue_pop_intern_unlocked (libglib-2.0.so.0 + 0x280bb)
                                               #3  0x000067643f0dbb52 g_thread_pool_spawn_thread (libglib-2.0.so.0 + 0x8cb52)
                                               #4  0x000067643f0db3bd g_thread_proxy (libglib-2.0.so.0 + 0x8c3bd)
                                               #5  0x000067643ebce272 start_thread (libc.so.6 + 0x8e272)
                                               #6  0x000067643ec49dec __clone3 (libc.so.6 + 0x109dec)
                                               
                                               Stack trace of thread 151146:
                                               #0  0x000067643ec3c62f __poll (libc.so.6 + 0xfc62f)
                                               #1  0x000067643b67ea38 usbi_wait_for_events (libusb-1.0.so.0 + 0xea38)
                                               #2  0x000067643b67bf56 handle_events (libusb-1.0.so.0 + 0xbf56)
                                               #3  0x000067643b67d4e0 libusb_handle_events_timeout_completed (libusb-1.0.so.0 + 0xd4e0)
                                               #4  0x000067643bae50d6 g_usb_context_event_thread_cb (libgusb.so.2 + 0x80d6)
                                               #5  0x000067643f0db3bd g_thread_proxy (libglib-2.0.so.0 + 0x8c3bd)
                                               #6  0x000067643ebce272 start_thread (libc.so.6 + 0x8e272)
                                               #7  0x000067643ec49dec __clone3 (libc.so.6 + 0x109dec)
                                               
                                               Stack trace of thread 151144:
                                               #0  0x000067643ec3c62f __poll (libc.so.6 + 0xfc62f)
                                               #1  0x000067643f0adf2f g_main_context_iterate_unlocked.isra.0 (libglib-2.0.so.0 + 0x5ef2f)
                                               #2  0x000067643f0ae88f g_main_loop_run (libglib-2.0.so.0 + 0x5f88f)
                                               #3  0x000067643ef86526 gdbus_shared_thread_func (libgio-2.0.so.0 + 0x127526)
                                               #4  0x000067643f0db3bd g_thread_proxy (libglib-2.0.so.0 + 0x8c3bd)
                                               #5  0x000067643ebce272 start_thread (libc.so.6 + 0x8e272)
                                               #6  0x000067643ec49dec __clone3 (libc.so.6 + 0x109dec)
                                               
                                               Stack trace of thread 151143:
                                               #0  0x000067643ec3c62f __poll (libc.so.6 + 0xfc62f)
                                               #1  0x000067643f0adf2f g_main_context_iterate_unlocked.isra.0 (libglib-2.0.so.0 + 0x5ef2f)
                                               #2  0x000067643f0ae5cc g_main_context_iteration (libglib-2.0.so.0 + 0x5f5cc)
                                               #3  0x000067643f0ae611 glib_worker_main (libglib-2.0.so.0 + 0x5f611)
                                               #4  0x000067643f0db3bd g_thread_proxy (libglib-2.0.so.0 + 0x8c3bd)
                                               #5  0x000067643ebce272 start_thread (libc.so.6 + 0x8e272)
                                               #6  0x000067643ec49dec __clone3 (libc.so.6 + 0x109dec)
                                               
                                               Stack trace of thread 151145:
                                               #0  0x000067643ec3c62f __poll (libc.so.6 + 0xfc62f)
                                               #1  0x000067643b683b3f linux_udev_event_thread_main (libusb-1.0.so.0 + 0x13b3f)
                                               #2  0x000067643ebce272 start_thread (libc.so.6 + 0x8e272)
                                               #3  0x000067643ec49dec __clone3 (libc.so.6 + 0x109dec)
                                               ELF object binary architecture: AMD x86-64
Aug 07 16:10:41 work tudor_host_launcher[155638]: [INF] Activated sandbox
Aug 07 16:10:41 work tudor_host_launcher[155638]: [INF] Received init message - USB device 2-5
Aug 07 16:10:41 work tudor_host_launcher[155638]: [INF] Initialized libcrypto
Aug 07 16:10:41 work tudor_host_launcher[155638]: libusb: warning [op_init] sysfs not mounted
Aug 07 16:10:41 work tudor_host_launcher[155638]: [INF] Initialized libusb
Aug 07 16:10:41 work tudor_host_launcher[155638]: [WRN] PE file contains unsupported resource data directory!
Aug 07 16:10:41 work tudor_host_launcher[155638]: [WRN] PE file contains unsupported exception data directory!
Aug 07 16:10:41 work tudor_host_launcher[155638]: [INF] Loaded driver DLL 'synaFpAdapter104.dll' [186656 bytes]
Aug 07 16:10:41 work tudor_host_launcher[155638]: [WRN] PE file contains unsupported resource data directory!
Aug 07 16:10:41 work tudor_host_launcher[155638]: [WRN] PE file contains unsupported exception data directory!
Aug 07 16:10:41 work tudor_host_launcher[155638]: [WRN] Data directory 4 has invalid bounds! [end 0x17ebe0 > image end 0x17e000]
Aug 07 16:10:41 work tudor_host_launcher[155638]: [INF] Loaded driver DLL 'synaWudfBioUsb104.dll' [1567712 bytes]
Aug 07 16:10:41 work tudor_host_launcher[155638]: [INF] Initializing driver DLL 'synaFpAdapter104.dll'...
Aug 07 16:10:41 work tudor_host_launcher[155638]: [INF] Initializing driver DLL 'synaWudfBioUsb104.dll'...
Aug 07 16:10:41 work tudor_host_launcher[155638]: [INF] Initialized tudor driver
Aug 07 16:10:41 work tudor_host_launcher[155638]: [INF] Opened USB device
Aug 07 16:10:41 work tudor_host_launcher[155638]: [WRN] GetModuleHandleExW called with unsupported flag GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS! [addr=0x631ef9b23710]
Aug 07 16:10:41 work tudor_host_launcher[155638]: [INF] Getting pairing data for sensor 'DA60EC7A380B0000'...
Aug 07 16:10:42 work tudor_host_launcher[155638]: [INF] Getting pairing data for sensor 'DA60EC7A380B0000'...
Aug 07 16:10:42 work tudor_host_launcher[155638]: [ERR] Attempted multiple different sensor pairing data loads!
Aug 07 16:10:42 work systemd-coredump[155660]: Process 155638 (tudor_host) of user 3333 dumped core.
                                               
                                               Module libudev.so.1 without build-id.
                                               Module libseccomp.so.2 without build-id.
                                               Module libcap.so.2 without build-id.
                                               Module libusb-1.0.so.0 without build-id.
                                               Module libtudor.so without build-id.
                                               Module tudor_host without build-id.
                                               Stack trace of thread 155657:
                                               #0  0x0000631efa54aefc __pthread_kill_implementation (libc.so.6 + 0x8fefc)
                                               #1  0x0000631efa4fae86 raise (libc.so.6 + 0x3fe86)
                                               #2  0x0000631efa4e3935 abort (libc.so.6 + 0x28935)
                                               #3  0x000000000040359b get_pdata_cb.cold (tudor_host + 0x359b)
                                               #4  0x0000631efaba3f0f tudor_reg_handler (libtudor.so + 0x2df0f)
                                               #5  0x0000631efab8d096 winreg_query_val (libtudor.so + 0x17096)
                                               #6  0x0000631efab8d385 RegQueryValueExW (libtudor.so + 0x17385)
                                               #7  0x0000631ef9ad4184 n/a (n/a + 0x0)
                                               #8  0x0000000000000000 n/a (n/a + 0x0)
                                               #9  0x0000631ee4000b70 n/a (n/a + 0x0)
                                               ELF object binary architecture: AMD x86-64
Aug 07 16:19:32 work tudor_host_launcher[158399]: [INF] Activated sandbox
Aug 07 16:19:32 work tudor_host_launcher[158399]: [INF] Received init message - USB device 2-5
Aug 07 16:19:32 work tudor_host_launcher[158399]: [INF] Initialized libcrypto
Aug 07 16:19:32 work tudor_host_launcher[158399]: libusb: warning [op_init] sysfs not mounted
Aug 07 16:19:32 work tudor_host_launcher[158399]: [INF] Initialized libusb
Aug 07 16:19:32 work tudor_host_launcher[158399]: [WRN] PE file contains unsupported resource data directory!
Aug 07 16:19:32 work tudor_host_launcher[158399]: [WRN] PE file contains unsupported exception data directory!
Aug 07 16:19:32 work tudor_host_launcher[158399]: [INF] Loaded driver DLL 'synaFpAdapter104.dll' [186656 bytes]
Aug 07 16:19:32 work tudor_host_launcher[158399]: [WRN] PE file contains unsupported resource data directory!
Aug 07 16:19:32 work tudor_host_launcher[158399]: [WRN] PE file contains unsupported exception data directory!
Aug 07 16:19:32 work tudor_host_launcher[158399]: [WRN] Data directory 4 has invalid bounds! [end 0x17ebe0 > image end 0x17e000]
Aug 07 16:19:32 work tudor_host_launcher[158399]: [INF] Loaded driver DLL 'synaWudfBioUsb104.dll' [1567712 bytes]
Aug 07 16:19:32 work tudor_host_launcher[158399]: [INF] Initializing driver DLL 'synaFpAdapter104.dll'...
Aug 07 16:19:32 work tudor_host_launcher[158399]: [INF] Initializing driver DLL 'synaWudfBioUsb104.dll'...
Aug 07 16:19:32 work tudor_host_launcher[158399]: [INF] Initialized tudor driver
Aug 07 16:19:32 work tudor_host_launcher[158399]: [INF] Opened USB device
Aug 07 16:19:33 work tudor_host_launcher[158399]: [WRN] GetModuleHandleExW called with unsupported flag GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS! [addr=0x629e26f3e710]
Aug 07 16:19:33 work tudor_host_launcher[158399]: [INF] Getting pairing data for sensor 'DA60EC7A380B0000'...
Aug 07 16:19:33 work tudor_host_launcher[158399]: [INF] Setting pairing data for sensor 'DA60EC7A380B0000'...
Aug 07 16:19:36 work tudor_host_launcher[158399]: [INF] Opened tudor device
Aug 07 16:19:36 work tudor_host_launcher[158399]: [INF] Sent ready message
Aug 07 16:19:36 work tudor_host_launcher[158399]: [INF] Added record GUID bca24c37... finger 2 size 88812
Aug 07 16:19:40 work tudor_host_launcher[158399]: [INF] Verify GUID bca24c37... finger 2 -> doesn't match
Aug 07 16:19:41 work tudor_host_launcher[158399]: [INF] Verify GUID bca24c37... finger 2 -> does match
Aug 07 16:19:44 work tudor_host_launcher[158399]: [INF] Verify GUID bca24c37... finger 2 -> doesn't match
Aug 07 16:19:45 work tudor_host_launcher[158399]: [INF] Verify GUID bca24c37... finger 2 -> doesn't match
Aug 07 16:19:46 work tudor_host_launcher[158399]: [INF] Verify GUID bca24c37... finger 2 -> doesn't match
Aug 07 16:21:00 work tudor_host_launcher[158399]: [INF] Cleared 1 records
Aug 07 16:25:02 work tudor_host_launcher[158399]: [INF] Added record GUID bca24c37... finger 2 size 88812
Aug 07 16:25:03 work tudor_host_launcher[158399]: [INF] Verify GUID bca24c37... finger 2 -> does match
Aug 07 16:25:43 work tudor_host_launcher[158399]: [INF] Cleared 1 records

This could be coming from the fact that I've set fingerprint for two users (user account and root).

Compile error: unknown type name ‘FpDeviceFeature’

When trying to compile, this error occurs.

[68/84] Compiling C object libfprint-tod/libtudor_tod.so.p/src_data.c.o
FAILED: libfprint-tod/libtudor_tod.so.p/src_data.c.o 
cc -Ilibfprint-tod/libtudor_tod.so.p -Ilibfprint-tod -I../libfprint-tod -I../libtudor/inc -I../tudor-host/inc -I../tudor-host-launcher/inc -I/usr/local/include/libfprint-2 -I/usr/include/libfprint-2/tod-1 -I/usr/include/gio-unix-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/libusb-1.0 -I/usr/include/gusb-1 -I/usr/include/json-glib-1.0 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O0 -g -fPIC -pthread -D_GNU_SOURCE -Wno-missing-braces -MD -MQ libfprint-tod/libtudor_tod.so.p/src_data.c.o -MF libfprint-tod/libtudor_tod.so.p/src_data.c.o.d -o libfprint-tod/libtudor_tod.so.p/src_data.c.o -c ../libfprint-tod/src/data.c
In file included from /usr/include/libfprint-2/tod-1/drivers_api.h:26,
                 from ../libfprint-tod/src/device.h:5,
                 from ../libfprint-tod/src/data.h:5,
                 from ../libfprint-tod/src/data.c:2:
/usr/include/libfprint-2/tod-1/fpi-device.h:183:3: error: unknown type name ‘FpDeviceFeature’
  183 |   FpDeviceFeature features;
      |   ^~~~~~~~~~~~~~~
In file included from /usr/include/libfprint-2/tod-1/fpi-assembling.h:23,
                 from /usr/include/libfprint-2/tod-1/drivers_api.h:25:
/usr/include/libfprint-2/tod-1/fpi-device.h:196:33: error: ‘FpDeviceFeature’ undeclared here (not in a function); did you mean ‘FpDeviceRetry’?
  196 |                         sizeof (FpDeviceFeature) +
      |                                 ^~~~~~~~~~~~~~~
/usr/include/libfprint-2/tod-1/tod/tod-macros.h:23:68: note: in definition of macro ‘TOD_PADDING’
   23 |   char _tod_expansion_padding[(GLIB_SIZEOF_VOID_P * (original)) - (wasted)];
      |                                                                    ^~~~~~
/usr/include/libfprint-2/tod-1/fpi-device.h:195:3: note: in expansion of macro ‘TOD_PADDING_ALIGNED8’
  195 |   TOD_PADDING_ALIGNED8 (32,
      |   ^~~~~~~~~~~~~~~~~~~~
/usr/include/libfprint-2/tod-1/fpi-device.h:293:34: error: expected declaration specifiers or ‘...’ before ‘FpDeviceFeature’
  293 |                                  FpDeviceFeature update,
      |                                  ^~~~~~~~~~~~~~~
/usr/include/libfprint-2/tod-1/fpi-device.h:294:34: error: expected declaration specifiers or ‘...’ before ‘FpDeviceFeature’
  294 |                                  FpDeviceFeature value);
      |                                  ^~~~~~~~~~~~~~~
[71/84] Compiling C object libfprint-tod/libtudor_tod.so.p/src_device.c.o
FAILED: libfprint-tod/libtudor_tod.so.p/src_device.c.o 
cc -Ilibfprint-tod/libtudor_tod.so.p -Ilibfprint-tod -I../libfprint-tod -I../libtudor/inc -I../tudor-host/inc -I../tudor-host-launcher/inc -I/usr/local/include/libfprint-2 -I/usr/include/libfprint-2/tod-1 -I/usr/include/gio-unix-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/libusb-1.0 -I/usr/include/gusb-1 -I/usr/include/json-glib-1.0 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O0 -g -fPIC -pthread -D_GNU_SOURCE -Wno-missing-braces -MD -MQ libfprint-tod/libtudor_tod.so.p/src_device.c.o -MF libfprint-tod/libtudor_tod.so.p/src_device.c.o.d -o libfprint-tod/libtudor_tod.so.p/src_device.c.o -c ../libfprint-tod/src/device.c
In file included from /usr/include/libfprint-2/tod-1/drivers_api.h:26,
                 from ../libfprint-tod/src/device.h:5,
                 from ../libfprint-tod/src/device.c:1:
/usr/include/libfprint-2/tod-1/fpi-device.h:183:3: error: unknown type name ‘FpDeviceFeature’
  183 |   FpDeviceFeature features;
      |   ^~~~~~~~~~~~~~~
In file included from /usr/include/libfprint-2/tod-1/fpi-assembling.h:23,
                 from /usr/include/libfprint-2/tod-1/drivers_api.h:25:
/usr/include/libfprint-2/tod-1/fpi-device.h:196:33: error: ‘FpDeviceFeature’ undeclared here (not in a function); did you mean ‘FpDeviceRetry’?
  196 |                         sizeof (FpDeviceFeature) +
      |                                 ^~~~~~~~~~~~~~~
/usr/include/libfprint-2/tod-1/tod/tod-macros.h:23:68: note: in definition of macro ‘TOD_PADDING’
   23 |   char _tod_expansion_padding[(GLIB_SIZEOF_VOID_P * (original)) - (wasted)];
      |                                                                    ^~~~~~
/usr/include/libfprint-2/tod-1/fpi-device.h:195:3: note: in expansion of macro ‘TOD_PADDING_ALIGNED8’
  195 |   TOD_PADDING_ALIGNED8 (32,
      |   ^~~~~~~~~~~~~~~~~~~~
/usr/include/libfprint-2/tod-1/fpi-device.h:293:34: error: expected declaration specifiers or ‘...’ before ‘FpDeviceFeature’
  293 |                                  FpDeviceFeature update,
      |                                  ^~~~~~~~~~~~~~~
/usr/include/libfprint-2/tod-1/fpi-device.h:294:34: error: expected declaration specifiers or ‘...’ before ‘FpDeviceFeature’
  294 |                                  FpDeviceFeature value);
      |                                  ^~~~~~~~~~~~~~~
[73/84] Compiling C object libfprint-tod/libtudor_tod.so.p/src_ipc.c.o
FAILED: libfprint-tod/libtudor_tod.so.p/src_ipc.c.o 
cc -Ilibfprint-tod/libtudor_tod.so.p -Ilibfprint-tod -I../libfprint-tod -I../libtudor/inc -I../tudor-host/inc -I../tudor-host-launcher/inc -I/usr/local/include/libfprint-2 -I/usr/include/libfprint-2/tod-1 -I/usr/include/gio-unix-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/libusb-1.0 -I/usr/include/gusb-1 -I/usr/include/json-glib-1.0 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O0 -g -fPIC -pthread -D_GNU_SOURCE -Wno-missing-braces -MD -MQ libfprint-tod/libtudor_tod.so.p/src_ipc.c.o -MF libfprint-tod/libtudor_tod.so.p/src_ipc.c.o.d -o libfprint-tod/libtudor_tod.so.p/src_ipc.c.o -c ../libfprint-tod/src/ipc.c
In file included from /usr/include/libfprint-2/tod-1/drivers_api.h:26,
                 from ../libfprint-tod/src/ipc.c:3:
/usr/include/libfprint-2/tod-1/fpi-device.h:183:3: error: unknown type name ‘FpDeviceFeature’
  183 |   FpDeviceFeature features;
      |   ^~~~~~~~~~~~~~~
In file included from /usr/include/libfprint-2/tod-1/fpi-assembling.h:23,
                 from /usr/include/libfprint-2/tod-1/drivers_api.h:25:
/usr/include/libfprint-2/tod-1/fpi-device.h:196:33: error: ‘FpDeviceFeature’ undeclared here (not in a function); did you mean ‘FpDeviceRetry’?
  196 |                         sizeof (FpDeviceFeature) +
      |                                 ^~~~~~~~~~~~~~~
/usr/include/libfprint-2/tod-1/tod/tod-macros.h:23:68: note: in definition of macro ‘TOD_PADDING’
   23 |   char _tod_expansion_padding[(GLIB_SIZEOF_VOID_P * (original)) - (wasted)];
      |                                                                    ^~~~~~
/usr/include/libfprint-2/tod-1/fpi-device.h:195:3: note: in expansion of macro ‘TOD_PADDING_ALIGNED8’
  195 |   TOD_PADDING_ALIGNED8 (32,
      |   ^~~~~~~~~~~~~~~~~~~~
/usr/include/libfprint-2/tod-1/fpi-device.h:293:34: error: expected declaration specifiers or ‘...’ before ‘FpDeviceFeature’
  293 |                                  FpDeviceFeature update,
      |                                  ^~~~~~~~~~~~~~~
/usr/include/libfprint-2/tod-1/fpi-device.h:294:34: error: expected declaration specifiers or ‘...’ before ‘FpDeviceFeature’
  294 |                                  FpDeviceFeature value);
      |                                  ^~~~~~~~~~~~~~~
[74/84] Compiling C object libfprint-tod/libtudor_tod.so.p/src_suspend.c.o
FAILED: libfprint-tod/libtudor_tod.so.p/src_suspend.c.o 
cc -Ilibfprint-tod/libtudor_tod.so.p -Ilibfprint-tod -I../libfprint-tod -I../libtudor/inc -I../tudor-host/inc -I../tudor-host-launcher/inc -I/usr/local/include/libfprint-2 -I/usr/include/libfprint-2/tod-1 -I/usr/include/gio-unix-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/libusb-1.0 -I/usr/include/gusb-1 -I/usr/include/json-glib-1.0 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O0 -g -fPIC -pthread -D_GNU_SOURCE -Wno-missing-braces -MD -MQ libfprint-tod/libtudor_tod.so.p/src_suspend.c.o -MF libfprint-tod/libtudor_tod.so.p/src_suspend.c.o.d -o libfprint-tod/libtudor_tod.so.p/src_suspend.c.o -c ../libfprint-tod/src/suspend.c
In file included from /usr/include/libfprint-2/tod-1/drivers_api.h:26,
                 from ../libfprint-tod/src/device.h:5,
                 from ../libfprint-tod/src/suspend.h:4,
                 from ../libfprint-tod/src/suspend.c:2:
/usr/include/libfprint-2/tod-1/fpi-device.h:183:3: error: unknown type name ‘FpDeviceFeature’
  183 |   FpDeviceFeature features;
      |   ^~~~~~~~~~~~~~~
In file included from /usr/include/libfprint-2/tod-1/fpi-assembling.h:23,
                 from /usr/include/libfprint-2/tod-1/drivers_api.h:25:
/usr/include/libfprint-2/tod-1/fpi-device.h:196:33: error: ‘FpDeviceFeature’ undeclared here (not in a function); did you mean ‘FpDeviceRetry’?
  196 |                         sizeof (FpDeviceFeature) +
      |                                 ^~~~~~~~~~~~~~~
/usr/include/libfprint-2/tod-1/tod/tod-macros.h:23:68: note: in definition of macro ‘TOD_PADDING’
   23 |   char _tod_expansion_padding[(GLIB_SIZEOF_VOID_P * (original)) - (wasted)];
      |                                                                    ^~~~~~
/usr/include/libfprint-2/tod-1/fpi-device.h:195:3: note: in expansion of macro ‘TOD_PADDING_ALIGNED8’
  195 |   TOD_PADDING_ALIGNED8 (32,
      |   ^~~~~~~~~~~~~~~~~~~~
/usr/include/libfprint-2/tod-1/fpi-device.h:293:34: error: expected declaration specifiers or ‘...’ before ‘FpDeviceFeature’
  293 |                                  FpDeviceFeature update,
      |                                  ^~~~~~~~~~~~~~~
/usr/include/libfprint-2/tod-1/fpi-device.h:294:34: error: expected declaration specifiers or ‘...’ before ‘FpDeviceFeature’
  294 |                                  FpDeviceFeature value);
      |                                  ^~~~~~~~~~~~~~~
[75/84] Compiling C object libfprint-tod/libtudor_tod.so.p/src_open.c.o
FAILED: libfprint-tod/libtudor_tod.so.p/src_open.c.o 
cc -Ilibfprint-tod/libtudor_tod.so.p -Ilibfprint-tod -I../libfprint-tod -I../libtudor/inc -I../tudor-host/inc -I../tudor-host-launcher/inc -I/usr/local/include/libfprint-2 -I/usr/include/libfprint-2/tod-1 -I/usr/include/gio-unix-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/libusb-1.0 -I/usr/include/gusb-1 -I/usr/include/json-glib-1.0 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O0 -g -fPIC -pthread -D_GNU_SOURCE -Wno-missing-braces -MD -MQ libfprint-tod/libtudor_tod.so.p/src_open.c.o -MF libfprint-tod/libtudor_tod.so.p/src_open.c.o.d -o libfprint-tod/libtudor_tod.so.p/src_open.c.o -c ../libfprint-tod/src/open.c
In file included from /usr/include/libfprint-2/tod-1/drivers_api.h:26,
                 from ../libfprint-tod/src/device.h:5,
                 from ../libfprint-tod/src/open.h:5,
                 from ../libfprint-tod/src/open.c:5:
/usr/include/libfprint-2/tod-1/fpi-device.h:183:3: error: unknown type name ‘FpDeviceFeature’
  183 |   FpDeviceFeature features;
      |   ^~~~~~~~~~~~~~~
In file included from /usr/include/libfprint-2/tod-1/fpi-assembling.h:23,
                 from /usr/include/libfprint-2/tod-1/drivers_api.h:25:
/usr/include/libfprint-2/tod-1/fpi-device.h:196:33: error: ‘FpDeviceFeature’ undeclared here (not in a function); did you mean ‘FpDeviceRetry’?
  196 |                         sizeof (FpDeviceFeature) +
      |                                 ^~~~~~~~~~~~~~~
/usr/include/libfprint-2/tod-1/tod/tod-macros.h:23:68: note: in definition of macro ‘TOD_PADDING’
   23 |   char _tod_expansion_padding[(GLIB_SIZEOF_VOID_P * (original)) - (wasted)];
      |                                                                    ^~~~~~
/usr/include/libfprint-2/tod-1/fpi-device.h:195:3: note: in expansion of macro ‘TOD_PADDING_ALIGNED8’
  195 |   TOD_PADDING_ALIGNED8 (32,
      |   ^~~~~~~~~~~~~~~~~~~~
/usr/include/libfprint-2/tod-1/fpi-device.h:293:34: error: expected declaration specifiers or ‘...’ before ‘FpDeviceFeature’
  293 |                                  FpDeviceFeature update,
      |                                  ^~~~~~~~~~~~~~~
/usr/include/libfprint-2/tod-1/fpi-device.h:294:34: error: expected declaration specifiers or ‘...’ before ‘FpDeviceFeature’
  294 |                                  FpDeviceFeature value);
      |                                  ^~~~~~~~~~~~~~~
../libfprint-tod/src/open.c: In function ‘open_device’:
../libfprint-tod/src/open.c:241:27: warning: initialization of ‘void **’ from incompatible pointer type ‘GUsbDevicePrivate *’ {aka ‘struct _GUsbDevicePrivate *’} [-Wincompatible-pointer-types]
  241 |         void **dev_priv = usb_dev->priv;
      |                           ^~~~~~~
[76/84] Compiling C object libfprint-tod/libtudor_tod.so.p/src_enroll.c.o
FAILED: libfprint-tod/libtudor_tod.so.p/src_enroll.c.o 
cc -Ilibfprint-tod/libtudor_tod.so.p -Ilibfprint-tod -I../libfprint-tod -I../libtudor/inc -I../tudor-host/inc -I../tudor-host-launcher/inc -I/usr/local/include/libfprint-2 -I/usr/include/libfprint-2/tod-1 -I/usr/include/gio-unix-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/libusb-1.0 -I/usr/include/gusb-1 -I/usr/include/json-glib-1.0 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O0 -g -fPIC -pthread -D_GNU_SOURCE -Wno-missing-braces -MD -MQ libfprint-tod/libtudor_tod.so.p/src_enroll.c.o -MF libfprint-tod/libtudor_tod.so.p/src_enroll.c.o.d -o libfprint-tod/libtudor_tod.so.p/src_enroll.c.o -c ../libfprint-tod/src/enroll.c
In file included from /usr/include/libfprint-2/tod-1/drivers_api.h:26,
                 from ../libfprint-tod/src/device.h:5,
                 from ../libfprint-tod/src/data.h:5,
                 from ../libfprint-tod/src/enroll.c:1:
/usr/include/libfprint-2/tod-1/fpi-device.h:183:3: error: unknown type name ‘FpDeviceFeature’
  183 |   FpDeviceFeature features;
      |   ^~~~~~~~~~~~~~~
In file included from /usr/include/libfprint-2/tod-1/fpi-assembling.h:23,
                 from /usr/include/libfprint-2/tod-1/drivers_api.h:25:
/usr/include/libfprint-2/tod-1/fpi-device.h:196:33: error: ‘FpDeviceFeature’ undeclared here (not in a function); did you mean ‘FpDeviceRetry’?
  196 |                         sizeof (FpDeviceFeature) +
      |                                 ^~~~~~~~~~~~~~~
/usr/include/libfprint-2/tod-1/tod/tod-macros.h:23:68: note: in definition of macro ‘TOD_PADDING’
   23 |   char _tod_expansion_padding[(GLIB_SIZEOF_VOID_P * (original)) - (wasted)];
      |                                                                    ^~~~~~
/usr/include/libfprint-2/tod-1/fpi-device.h:195:3: note: in expansion of macro ‘TOD_PADDING_ALIGNED8’
  195 |   TOD_PADDING_ALIGNED8 (32,
      |   ^~~~~~~~~~~~~~~~~~~~
/usr/include/libfprint-2/tod-1/fpi-device.h:293:34: error: expected declaration specifiers or ‘...’ before ‘FpDeviceFeature’
  293 |                                  FpDeviceFeature update,
      |                                  ^~~~~~~~~~~~~~~
/usr/include/libfprint-2/tod-1/fpi-device.h:294:34: error: expected declaration specifiers or ‘...’ before ‘FpDeviceFeature’
  294 |                                  FpDeviceFeature value);
      |                                  ^~~~~~~~~~~~~~~
[77/84] Compiling C object libfprint-tod/libtudor_tod.so.p/src_verify.c.o
FAILED: libfprint-tod/libtudor_tod.so.p/src_verify.c.o 
cc -Ilibfprint-tod/libtudor_tod.so.p -Ilibfprint-tod -I../libfprint-tod -I../libtudor/inc -I../tudor-host/inc -I../tudor-host-launcher/inc -I/usr/local/include/libfprint-2 -I/usr/include/libfprint-2/tod-1 -I/usr/include/gio-unix-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/libusb-1.0 -I/usr/include/gusb-1 -I/usr/include/json-glib-1.0 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O0 -g -fPIC -pthread -D_GNU_SOURCE -Wno-missing-braces -MD -MQ libfprint-tod/libtudor_tod.so.p/src_verify.c.o -MF libfprint-tod/libtudor_tod.so.p/src_verify.c.o.d -o libfprint-tod/libtudor_tod.so.p/src_verify.c.o -c ../libfprint-tod/src/verify.c
In file included from /usr/include/libfprint-2/tod-1/drivers_api.h:26,
                 from ../libfprint-tod/src/device.h:5,
                 from ../libfprint-tod/src/data.h:5,
                 from ../libfprint-tod/src/verify.c:1:
/usr/include/libfprint-2/tod-1/fpi-device.h:183:3: error: unknown type name ‘FpDeviceFeature’
  183 |   FpDeviceFeature features;
      |   ^~~~~~~~~~~~~~~
In file included from /usr/include/libfprint-2/tod-1/fpi-assembling.h:23,
                 from /usr/include/libfprint-2/tod-1/drivers_api.h:25:
/usr/include/libfprint-2/tod-1/fpi-device.h:196:33: error: ‘FpDeviceFeature’ undeclared here (not in a function); did you mean ‘FpDeviceRetry’?
  196 |                         sizeof (FpDeviceFeature) +
      |                                 ^~~~~~~~~~~~~~~
/usr/include/libfprint-2/tod-1/tod/tod-macros.h:23:68: note: in definition of macro ‘TOD_PADDING’
   23 |   char _tod_expansion_padding[(GLIB_SIZEOF_VOID_P * (original)) - (wasted)];
      |                                                                    ^~~~~~
/usr/include/libfprint-2/tod-1/fpi-device.h:195:3: note: in expansion of macro ‘TOD_PADDING_ALIGNED8’
  195 |   TOD_PADDING_ALIGNED8 (32,
      |   ^~~~~~~~~~~~~~~~~~~~
/usr/include/libfprint-2/tod-1/fpi-device.h:293:34: error: expected declaration specifiers or ‘...’ before ‘FpDeviceFeature’
  293 |                                  FpDeviceFeature update,
      |                                  ^~~~~~~~~~~~~~~
/usr/include/libfprint-2/tod-1/fpi-device.h:294:34: error: expected declaration specifiers or ‘...’ before ‘FpDeviceFeature’
  294 |                                  FpDeviceFeature value);
      |                                  ^~~~~~~~~~~~~~~
ninja: build stopped: subcommand failed.

I am running Ubuntu 22.10.

Building relink failes

I am running Fedora 36

I used the commands in the README and also installed libusb but running make failes with the following message:

/usr/bin/clang -O0 -g3 -Wall -D_GNU_SOURCE -Wl,--copy-dt-needed-entries -lpthread -lcrypto -lusb  -o out/tudor bin/src/datastore.o bin/src/loader.o bin/src/main.o bin/src/stub.o bin/src/wdf.o bin/src/pe/coff_header.o bin/src/pe/data_dir.o bin/src/pe/exception.o bin/src/pe/export.o bin/src/pe/import.o bin/src/pe/opt_header.o bin/src/pe/pe.o bin/src/pe/reloc.o bin/src/pe/resource.o bin/src/pe/sect.o bin/src/pe/tls.o bin/src/tudor/device.o bin/src/tudor/driver.o bin/src/tudor/pairdata.o bin/src/tudor/reg.o bin/src/tudor/storage.o bin/src/winapi/api.o bin/src/winapi/error.o bin/src/winapi/handle.o bin/src/winapi/heap.o bin/src/winapi/io.o bin/src/winapi/list.o bin/src/winapi/log.o bin/src/winapi/module.o bin/src/winapi/pipe.o bin/src/winapi/proc.o bin/src/winapi/prop.o bin/src/winapi/reg.o bin/src/winapi/string.o bin/src/winapi/suspend.o bin/src/winapi/sync.o bin/src/winapi/system.o bin/src/winapi/thread.o bin/src/winapi/time.o bin/src/winapi/bcrypt/aes.o bin/src/winapi/bcrypt/bcrypt.o bin/src/winapi/bcrypt/ecc.o bin/src/winapi/crypt/crypt.o bin/src/winapi/crypt/evp_digest.o bin/src/winapi/crypt/hmac.o bin/src/winapi/crypt/rsa_aes.o bin/src/winapi/wdf/device.o bin/src/winapi/wdf/driver.o bin/src/winapi/wdf/evtqueue.o bin/src/winapi/wdf/file.o bin/src/winapi/wdf/log.o bin/src/winapi/wdf/mem.o bin/src/winapi/wdf/object.o bin/src/winapi/wdf/queue.o bin/src/winapi/wdf/reg.o bin/src/winapi/wdf/request.o bin/src/winapi/wdf/string.o bin/src/winapi/wdf/usb.o bin/windrv/synaFpAdapter104.o bin/windrv/synaWudfBioUsb104.o
/usr/bin/ld: bin/src/main.o: in function `main':
/home/yanick/tmp/synaTudor/relink/src/main.c:328: undefined reference to `libusb_init'
/usr/bin/ld: /home/yanick/tmp/synaTudor/relink/src/main.c:329: undefined reference to `libusb_error_name'
/usr/bin/ld: /home/yanick/tmp/synaTudor/relink/src/main.c:422: undefined reference to `libusb_close'
/usr/bin/ld: /home/yanick/tmp/synaTudor/relink/src/main.c:426: undefined reference to `libusb_exit'
/usr/bin/ld: bin/src/main.o: in function `open_sensor_device':
/home/yanick/tmp/synaTudor/relink/src/main.c:60: undefined reference to `libusb_get_device_list'
/usr/bin/ld: /home/yanick/tmp/synaTudor/relink/src/main.c:62: undefined reference to `libusb_error_name'
/usr/bin/ld: /home/yanick/tmp/synaTudor/relink/src/main.c:72: undefined reference to `libusb_get_device_descriptor'
/usr/bin/ld: /home/yanick/tmp/synaTudor/relink/src/main.c:73: undefined reference to `libusb_error_name'
/usr/bin/ld: /home/yanick/tmp/synaTudor/relink/src/main.c:81: undefined reference to `libusb_get_bus_number'
/usr/bin/ld: /home/yanick/tmp/synaTudor/relink/src/main.c:81: undefined reference to `libusb_get_device_address'
/usr/bin/ld: /home/yanick/tmp/synaTudor/relink/src/main.c:85: undefined reference to `libusb_free_device_list'
/usr/bin/ld: /home/yanick/tmp/synaTudor/relink/src/main.c:95: undefined reference to `libusb_open'
/usr/bin/ld: /home/yanick/tmp/synaTudor/relink/src/main.c:96: undefined reference to `libusb_error_name'
/usr/bin/ld: bin/src/main.o: in function `libusb_poll_thread_func':
/home/yanick/tmp/synaTudor/relink/src/main.c:107: undefined reference to `libusb_handle_events'
/usr/bin/ld: /home/yanick/tmp/synaTudor/relink/src/main.c:108: undefined reference to `libusb_error_name'
/usr/bin/ld: bin/src/tudor/device.o: in function `tudor_open':
/home/yanick/tmp/synaTudor/relink/src/tudor/device.c:25: undefined reference to `libusb_reset_device'
/usr/bin/ld: /home/yanick/tmp/synaTudor/relink/src/tudor/device.c:26: undefined reference to `libusb_error_name'
/usr/bin/ld: bin/src/winapi/wdf/usb.o: in function `WdfUsbTargetDeviceCreate':
/home/yanick/tmp/synaTudor/relink/src/winapi/wdf/usb.c:172: undefined reference to `libusb_reset_device'
/usr/bin/ld: /home/yanick/tmp/synaTudor/relink/src/winapi/wdf/usb.c:173: undefined reference to `libusb_error_name'
/usr/bin/ld: /home/yanick/tmp/synaTudor/relink/src/winapi/wdf/usb.c:176: undefined reference to `libusb_get_device'
/usr/bin/ld: /home/yanick/tmp/synaTudor/relink/src/winapi/wdf/usb.c:176: undefined reference to `libusb_get_config_descriptor'
/usr/bin/ld: /home/yanick/tmp/synaTudor/relink/src/winapi/wdf/usb.c:177: undefined reference to `libusb_error_name'
/usr/bin/ld: /home/yanick/tmp/synaTudor/relink/src/winapi/wdf/usb.c:180: undefined reference to `libusb_set_configuration'
/usr/bin/ld: /home/yanick/tmp/synaTudor/relink/src/winapi/wdf/usb.c:181: undefined reference to `libusb_error_name'
/usr/bin/ld: /home/yanick/tmp/synaTudor/relink/src/winapi/wdf/usb.c:187: undefined reference to `libusb_kernel_driver_active'
/usr/bin/ld: /home/yanick/tmp/synaTudor/relink/src/winapi/wdf/usb.c:189: undefined reference to `libusb_detach_kernel_driver'
/usr/bin/ld: /home/yanick/tmp/synaTudor/relink/src/winapi/wdf/usb.c:190: undefined reference to `libusb_error_name'
/usr/bin/ld: bin/src/winapi/wdf/usb.o: in function `WdfUsbTargetDeviceGetDeviceDescriptor':
/home/yanick/tmp/synaTudor/relink/src/winapi/wdf/usb.c:216: undefined reference to `libusb_get_device'
/usr/bin/ld: /home/yanick/tmp/synaTudor/relink/src/winapi/wdf/usb.c:216: undefined reference to `libusb_get_device_descriptor'
/usr/bin/ld: /home/yanick/tmp/synaTudor/relink/src/winapi/wdf/usb.c:217: undefined reference to `libusb_error_name'
/usr/bin/ld: bin/src/winapi/wdf/usb.o: in function `WdfUsbTargetDeviceResetPortSynchronously':
/home/yanick/tmp/synaTudor/relink/src/winapi/wdf/usb.c:229: undefined reference to `libusb_reset_device'
/usr/bin/ld: /home/yanick/tmp/synaTudor/relink/src/winapi/wdf/usb.c:230: undefined reference to `libusb_error_name'
/usr/bin/ld: bin/src/winapi/wdf/usb.o: in function `WdfUsbTargetDeviceGetInterface':
/home/yanick/tmp/synaTudor/relink/src/winapi/wdf/usb.c:252: undefined reference to `libusb_claim_interface'
/usr/bin/ld: /home/yanick/tmp/synaTudor/relink/src/winapi/wdf/usb.c:253: undefined reference to `libusb_error_name'
/usr/bin/ld: bin/src/winapi/wdf/usb.o: in function `usb_if_destr':
/home/yanick/tmp/synaTudor/relink/src/winapi/wdf/usb.c:136: undefined reference to `libusb_release_interface'
/usr/bin/ld: /home/yanick/tmp/synaTudor/relink/src/winapi/wdf/usb.c:137: undefined reference to `libusb_error_name'
/usr/bin/ld: bin/src/winapi/wdf/usb.o: in function `WdfUsbTargetDeviceFormatRequestForControlTransfer':
/home/yanick/tmp/synaTudor/relink/src/winapi/wdf/usb.c:466: undefined reference to `libusb_alloc_transfer'
/usr/bin/ld: bin/src/winapi/wdf/usb.o: in function `usb_transfer_start':
/home/yanick/tmp/synaTudor/relink/src/winapi/wdf/usb.c:433: undefined reference to `libusb_submit_transfer'
/usr/bin/ld: /home/yanick/tmp/synaTudor/relink/src/winapi/wdf/usb.c:434: undefined reference to `libusb_error_name'
/usr/bin/ld: bin/src/winapi/wdf/usb.o: in function `usb_transfer_cleanup':
/home/yanick/tmp/synaTudor/relink/src/winapi/wdf/usb.c:443: undefined reference to `libusb_free_transfer'
/usr/bin/ld: bin/src/winapi/wdf/usb.o: in function `WdfUsbTargetPipeFormatRequestForRead':
/home/yanick/tmp/synaTudor/relink/src/winapi/wdf/usb.c:511: undefined reference to `libusb_alloc_transfer'
/usr/bin/ld: bin/src/winapi/wdf/usb.o: in function `WdfUsbTargetPipeFormatRequestForWrite':
/home/yanick/tmp/synaTudor/relink/src/winapi/wdf/usb.c:557: undefined reference to `libusb_alloc_transfer'
/usr/bin/ld: bin/src/winapi/wdf/usb.o: in function `pipe_transfer_callback':
/home/yanick/tmp/synaTudor/relink/src/winapi/wdf/usb.c:373: undefined reference to `libusb_error_name'
clang-14: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [Makefile:27: out/tudor] Error 1

Trouble installing on Ubuntu 22.10

Hi, first of all thank you for your work! I was following this thread and now have problems installing described here. I'll repost below:

Hi and thanks to all contributors for their work. Your comment motivated me to try this on my Lenovo L490 running Ubuntu 22.10 but without luck.

I (re)installed all dependencies from the mentioned link:
sudo apt-get install meson pkg-config cmake ninja-build net-tools libcurl4-openssl-dev libssl-dev libusb-1.0-0-dev libcap-dev libseccomp-dev libglib2.0-dev libdbus-glib-1-dev libfprint-2-tod-dev libjson-glib-dev

meson build then returns

The Meson build system
Version: 0.59.1
Source dir: [...]/synaTudor
Build dir: [...]/synaTudor/build
Build type: native build
Project name: synaTudor
Project version: 1.0.0
C compiler for the host machine: cc (gcc 12.2.0 "cc (Ubuntu 12.2.0-3ubuntu1) 12.2.0")
C linker for the host machine: cc ld.bfd 2.39
Host machine cpu family: x86_64
Host machine cpu: x86_64
Program bash found: YES (/usr/bin/bash)
Program ld found: YES (/usr/bin/ld)
Run-time dependency threads found: YES
Found pkg-config: /usr/bin/pkg-config (0.29.2)
Run-time dependency libcrypto found: YES 3.0.5
Run-time dependency libusb-1.0 found: YES 1.0.26
Dependency threads found: YES unknown (cached)
Dependency libcrypto found: YES 3.0.5 (cached)
Dependency libusb-1.0 found: YES 1.0.26 (cached)
Dependency threads found: YES unknown (cached)
Dependency libcrypto found: YES 3.0.5 (cached)
Dependency libusb-1.0 found: YES 1.0.26 (cached)
Run-time dependency libcap found: YES 2.44
Run-time dependency libseccomp found: YES 2.5.4
Run-time dependency gio-2.0 found: YES 2.74.3
Run-time dependency gio-unix-2.0 found: YES 2.74.3
Run-time dependency dbus-1 found: YES 1.14.0
Configuring net.reactivated.TudorHostLauncher.service using configuration
Run-time dependency libfprint-2-tod-1 found: YES 1.94.5+tod1+tod1
Run-time dependency udev found: YES 251
Dependency libusb-1.0 found: YES 1.0.26 (cached)
Run-time dependency gusb found: YES 0.3.10
Run-time dependency json-glib-1.0 found: YES 1.6.6
Build targets in project: 6

Found ninja-1.11.0 at /usr/bin/ninja
Generating targets:   0%|                                                     | 0/6 [00:00<?, ?it/s]WARNING: custom_target 'driver-download' has more than one output! Using the first one.
WARNING: custom_target 'driver-download' has more than one output! Using the first one.

but get this error on running ninja in the build dir:

➜  build git:(relink) ninja
[1/12] Compiling C object libfprint-tod/libtudor_tod.so.p/src_suspend.c.o
FAILED: libfprint-tod/libtudor_tod.so.p/src_suspend.c.o 
cc -Ilibfprint-tod/libtudor_tod.so.p -Ilibfprint-tod -I../libfprint-tod -I../libtudor/inc -I../tudor-host/inc -I../tudor-host-launcher/inc -I/usr/local/include/libfprint-2 -I/usr/include/libfprint-2/tod-1 -I/usr/include/gio-unix-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/libusb-1.0 -I/usr/include/gusb-1 -I/usr/include/json-glib-1.0 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -g -fPIC -pthread -D_GNU_SOURCE -Wno-missing-braces -MD -MQ libfprint-tod/libtudor_tod.so.p/src_suspend.c.o -MF libfprint-tod/libtudor_tod.so.p/src_suspend.c.o.d -o libfprint-tod/libtudor_tod.so.p/src_suspend.c.o -c ../libfprint-tod/src/suspend.c
In file included from /usr/include/libfprint-2/tod-1/drivers_api.h:26,
                 from ../libfprint-tod/src/device.h:5,
                 from ../libfprint-tod/src/suspend.h:4,
                 from ../libfprint-tod/src/suspend.c:2:
/usr/include/libfprint-2/tod-1/fpi-device.h:183:3: error: unknown type name ‘FpDeviceFeature’
  183 |   FpDeviceFeature features;
      |   ^~~~~~~~~~~~~~~
In file included from /usr/include/libfprint-2/tod-1/fpi-assembling.h:23,
                 from /usr/include/libfprint-2/tod-1/drivers_api.h:25:
/usr/include/libfprint-2/tod-1/fpi-device.h:196:33: error: ‘FpDeviceFeature’ undeclared here (not in a function); did you mean ‘FpDeviceRetry’?
  196 |                         sizeof (FpDeviceFeature) +
      |                                 ^~~~~~~~~~~~~~~
/usr/include/libfprint-2/tod-1/tod/tod-macros.h:23:68: note: in definition of macro ‘TOD_PADDING’
   23 |   char _tod_expansion_padding[(GLIB_SIZEOF_VOID_P * (original)) - (wasted)];
      |                                                                    ^~~~~~
/usr/include/libfprint-2/tod-1/fpi-device.h:195:3: note: in expansion of macro ‘TOD_PADDING_ALIGNED8’
  195 |   TOD_PADDING_ALIGNED8 (32,
      |   ^~~~~~~~~~~~~~~~~~~~
/usr/include/libfprint-2/tod-1/fpi-device.h:293:34: error: expected declaration specifiers or ‘...’ before ‘FpDeviceFeature’
  293 |                                  FpDeviceFeature update,
      |                                  ^~~~~~~~~~~~~~~
/usr/include/libfprint-2/tod-1/fpi-device.h:294:34: error: expected declaration specifiers or ‘...’ before ‘FpDeviceFeature’
  294 |                                  FpDeviceFeature value);
      |                                  ^~~~~~~~~~~~~~~
[2/12] Compiling C object libfprint-tod/libtudor_tod.so.p/src_verify.c.o
FAILED: libfprint-tod/libtudor_tod.so.p/src_verify.c.o 

[...]

Any idea what goes wrong here?

Errors in fprintd.service and dmesg. Fingerprint sensor stopping and sometimes restarting. Possibly overheating.

Computer: Lenovo Flex 5 ARE05 laptop with Synaptics 06cb:00be fingerprint sensor.
OS: EndeavourOS
Kernel: 6.5.3-zen1-1-zen

lsusb output showing fingerprint sensor:
Bus 003 Device 002: ID 06cb:00be Synaptics, Inc.

I'm having some odd issues I can't figure out. Overall the fingerprint sensor is working, but with a few issues.

  1. After a power up of the computer the fingerprint sensor device will not always enable unless I do a reboot. Checking the fprintd service I found several errors including some regarding overheating. I've attached the output of journalctl -u fprintd.service to show what messages I've been getting.
    fprintd.service.log

  2. When the system tries to use the fingerprint sensor for authentication, there is often a hang of several seconds before the fingerprint sensor begins to work. Checking dmesg will always show two messages every time this happens. Example from two events today:
    [ 109.080022] usb 3-3: reset full-speed USB device number 2 using xhci_hcd
    [ 109.340412] usb 3-3: reset full-speed USB device number 2 using xhci_hcd
    [ 1510.623196] usb 3-3: reset full-speed USB device number 2 using xhci_hcd
    [ 1510.879370] usb 3-3: reset full-speed USB device number 2 using xhci_hcd

  3. Those events seem to be related to these messages in the fprintd.service logs:
    Sep 17 16:34:54 lenovo-flex systemd[1]: fprintd.service: Deactivated successfully.
    Sep 17 16:56:50 lenovo-flex systemd[1]: Starting Fingerprint Authentication Daemon...
    Sep 17 16:56:51 lenovo-flex fprintd[3592]: libusb: error [udev_hotplug_event] ignoring udev action change
    Sep 17 16:56:51 lenovo-flex fprintd[3592]: libusb: error [udev_hotplug_event] ignoring udev action change
    Sep 17 16:56:51 lenovo-flex fprintd[3592]: libusb: error [udev_hotplug_event] ignoring udev action change
    Sep 17 16:56:51 lenovo-flex fprintd[3592]: libusb: error [udev_hotplug_event] ignoring udev action change
    Sep 17 16:56:54 lenovo-flex systemd[1]: Started Fingerprint Authentication Daemon.
    Sep 17 16:57:35 lenovo-flex systemd[1]: fprintd.service: Deactivated successfully.

The delay when the need for the fingerprint sensor is a bit annoying, but not a really much of a problem at all. The overheating message worries me, however. I believe the issues may be related.

Here is the output of journalctl -b -u tudor-host-launcher.service:
tudor-host-launcher.service.log

Trouble deleting fingerprints

I was using fprintd-enroll, and it enrolled my finger but it didnt register because I didn't set my finger up through the GUI. Now whenever attempting to enroll my finger in the GUI it says the finger already exists, fprintd-delete doesn't help

The service says this:

May 25 06:51:07 arch tudor_host_launcher[2347]: [INF] Added record GUID 68150197... finger 2 size 88812
May 25 06:51:08 arch tudor_host_launcher[2347]: [INF] Identify result -> matches GUID 68150197... finger 2

GDBus.Error:net.reactivated.Fprint.Error.NoSuchDevice: No devices available

Hi. Thanks for the effort. I tried fprintd-enroll but...
"Impossible to enroll: GDBus.Error:net.reactivated.Fprint.Error.NoSuchDevice: No devices available"

fprintd.service:
libusb: error [udev_hotplug_event] ignoring udev action change
Ignoring device due to initialization error: I/O socket expired
Started Fingerprint Authentication Daemon.
invalid unclassed pointer in cast to 'FpiDeviceTudor'
fprintd.service: Deactivated successfully.

tudor-host-launcher.service:
[INF] Loaded driver DLL 'synaFpAdapter104.dll' [186656 bytes]
[WRN] PE file contains unsupported resource data directory!
[WRN] PE file contains unsupported exception data directory!
[WRN] Data directory 4 has invalid bounds! [end 0x17ebe0 > image end 0x17e000]
[INF] Loaded driver DLL 'synaWudfBioUsb104.dll' [1567712 bytes]
[INF] Initializing driver DLL 'synaFpAdapter104.dll'...
[INF] Initializing driver DLL 'synaWudfBioUsb104.dll'...
[INF] Initialized tudor driver
[INF] Opened USB device
[WRN] GetModuleHandleExW called with unsupported flag GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS! [addr=0x7f29a08ed710]

Support for 24.04

In 24.04 I get this error message after installing synaTudor

GDBus.Error:net.reactivated.Fprint.Error.NoSuchDevice: No devices available

When running fprintd- commands in terminal. Also in system settings -> users there is no fingerprint button.

When I tried it on 22.04 some days ago it worked partially as descibred in #24

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.