Synaptics (06cb:00bd) fails to initialise on warm reboot (Device responded with error 789)
This is similar to #207 (closed), however I felt a new issue was necessary as that one is quite old and potentially off topic.
On a warm reboot the fprintd service succeeds even though the daemon exited with the following output:
systemd[1]: Starting Fingerprint Authentication Daemon...
fprintd[595]: Device responded with error: 789
fprintd[595]: Ignoring device due to initialization error: The driver encountered>
systemd[1]: Started Fingerprint Authentication Daemon.
systemd[1]: fprintd.service: Succeeded.
As a result there is no attempt to use fingerprint authentication by PAM.
Starting the service manually a second time is successful and the fp works as expected.
Device: ThinkPad T14s AMD Gen 1
Distro: Arch Linux
Kernel: 5.8.0-1-tkg-cfs
FP Firmware:
??Prometheus:
? ? Device ID: 50efef912094e784a03628350441f6927c4920b0
? ? Summary: Fingerprint reader
? ? Current version: 10.01.3158804
? ? Vendor: Synaptics (USB:0x06CB)
? ? Install Duration: 2 seconds
? ? GUIDs: 09e8bf16-3e69-50f5-bb66-c7a040248352
? ? 8088f861-6318-5b1e-9ce4-fbddbedb09ac
? ? Device Flags: ? Updatable
? ? ? Cryptographic hash verification is available
Edit: It is possible to workaround by adding --g-fatal-warnings
to the ExecStart
line in the systemd service, causing the service to fail and get restarted automatically when it encounters an error with the device.
Full output of journalctl -xe -u fprintd
: https://gist.github.com/calebccff/3255c60da8d6ab18167f2c2f735bd3d5
Here is an example core dump:
Aug 13 13:07:37 cheetah systemd-coredump[325354]: [LNK] Process 778 (fprintd) of user 0 dumped core.
Stack trace of thread 778:
#0 0x00007f51ea761473 g_logv (libglib-2.0.so.0 + 0x5a473)
#1 0x00007f51ea7616f0 g_log (libglib-2.0.so.0 + 0x5a6f0)
#2 0x00007f51e7636a53 n/a (libfprint-2.so.2 + 0x22a53)
#3 0x00007f51e7645489 n/a (libfprint-2.so.2 + 0x31489)
#4 0x00007f51ea5ed844 n/a (libgio-2.0.so.0 + 0x9e844)
#5 0x00007f51ea5ed879 n/a (libgio-2.0.so.0 + 0x9e879)
#6 0x00007f51ea759340 g_main_context_dispatch (libglib-2.0.so.0 + 0x52340)
#7 0x00007f51ea7a71d9 n/a (libglib-2.0.so.0 + 0xa01d9)
#8 0x00007f51ea757c03 g_main_loop_run (libglib-2.0.so.0 + 0x50c03)
#9 0x000055c0dd5d04c2 n/a (fprintd + 0x44c2)
#10 0x00007f51ea92c002 __libc_start_main (libc.so.6 + 0x27002)
#11 0x000055c0dd5d065e _start (fprintd + 0x465e)
Stack trace of thread 782:
#0 0x00007f51ea9fa05f __poll (libc.so.6 + 0xf505f)
#1 0x00007f51ea7a7168 n/a (libglib-2.0.so.0 + 0xa0168)
#2 0x00007f51ea757c03 g_main_loop_run (libglib-2.0.so.0 + 0x50c03)
#3 0x00007f51ea64f1a8 n/a (libgio-2.0.so.0 + 0x1001a8)
#4 0x00007f51ea781511 n/a (libglib-2.0.so.0 + 0x7a511)
#5 0x00007f51e75dc422 start_thread (libpthread.so.0 + 0x9422)
#6 0x00007f51eaa04bf3 __clone (libc.so.6 + 0xffbf3)
Stack trace of thread 781:
#0 0x00007f51ea9fa05f __poll (libc.so.6 + 0xf505f)
#1 0x00007f51e6e22986 n/a (libusb-1.0.so.0 + 0xa986)
#2 0x00007f51e6e23c0d libusb_handle_events_timeout_completed (libusb-1.0.so.0 + 0xbc0d)
#3 0x00007f51e73fccef n/a (libgusb.so.2 + 0x5cef)
#4 0x00007f51ea781511 n/a (libglib-2.0.so.0 + 0x7a511)
#5 0x00007f51e75dc422 start_thread (libpthread.so.0 + 0x9422)
#6 0x00007f51eaa04bf3 __clone (libc.so.6 + 0xffbf3)
Stack trace of thread 325350:
#0 0x00007f51ea9ff71d syscall (libc.so.6 + 0xfa71d)
#1 0x00007f51ea7a1c9b g_cond_wait_until (libglib-2.0.so.0 + 0x9ac9b)
#2 0x00007f51ea729803 n/a (libglib-2.0.so.0 + 0x22803)
#3 0x00007f51ea785d5b n/a (libglib-2.0.so.0 + 0x7ed5b)
#4 0x00007f51ea781511 n/a (libglib-2.0.so.0 + 0x7a511)
#5 0x00007f51e75dc422 start_thread (libpthread.so.0 + 0x9422)
#6 0x00007f51eaa04bf3 __clone (libc.so.6 + 0xffbf3)
Stack trace of thread 779:
#0 0x00007f51ea9fa05f __poll (libc.so.6 + 0xf505f)
#1 0x00007f51ea7a7168 n/a (libglib-2.0.so.0 + 0xa0168)
#2 0x00007f51ea758221 g_main_context_iteration (libglib-2.0.so.0 + 0x51221)
#3 0x00007f51ea758272 n/a (libglib-2.0.so.0 + 0x51272)
#4 0x00007f51ea781511 n/a (libglib-2.0.so.0 + 0x7a511)
#5 0x00007f51e75dc422 start_thread (libpthread.so.0 + 0x9422)
#6 0x00007f51eaa04bf3 __clone (libc.so.6 + 0xffbf3)
Stack trace of thread 780:
#0 0x00007f51ea9fa05f __poll (libc.so.6 + 0xf505f)
#1 0x00007f51e6e29803 n/a (libusb-1.0.so.0 + 0x11803)
#2 0x00007f51e75dc422 start_thread (libpthread.so.0 + 0x9422)
#3 0x00007f51eaa04bf3 __clone (libc.so.6 + 0xffbf3)