Popax21 / synaTudor

GNU Lesser General Public License v2.1
89 stars 10 forks source link

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

Closed mahjongchess closed 11 months ago

mahjongchess commented 11 months ago

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

Popax21 commented 11 months ago
  1. the overheating message is a generic libfprint thing, it does not actually indicate that the sensor is overheating
  2. fprintd automatically shuts down after some period of inactivity, and with the current architecture, it then has to reinitialize the sensor from scratch when woke up again, causing a delay of a few seconds (I am considering fixing this, but not sure yet)
  3. if anything I am most concerned by the constant host process death messages / libusb errors, however if I had to take a shot in the dark then your USB controller might have a weird quirk where it reconnects devices when they are reset. Either way, to debug this further (if it even causes issues) I would need the systemd log of tudor-host-launcher
Popax21 commented 11 months ago

UPDATE: I just pushed some additional code which allows the libfprint module to reuse host processes, removing the initialization delay after the sensor has been initialized once.

mahjongchess commented 11 months ago

UPDATE: I just pushed some additional code which allows the libfprint module to reuse host processes, removing the initialization delay after the sensor has been initialized once.

Wow!! That's great to hear! Thank you so much for the great work! It's quite nice to be able to make use of the fingerprint sensor in Linux. It sorta makes me want to get a fingerprint sensor for my desktop. I'll try out the new code later today. For now, here's the output of the tudor-host-launcher service log:

tudor-host-launcher.service.log

The issue I'm noticing is that if the sensor is on too long without use it won't be usable again without a system reboot. This becomes a problem for me if I reboot and walk away or if I have an installation running in a background terminal that needs authentication that I don't notice for a few minutes.

Popax21 commented 11 months ago

UPDATE: I just pushed some additional code which allows the libfprint module to reuse host processes, removing the initialization delay after the sensor has been initialized once.

Wow!! That's great to hear! Thank you so much for the great work! It's quite nice to be able to make use of the fingerprint sensor in Linux. It sorta makes me want to get a fingerprint sensor for my desktop. I'll try out the new code later today. For now, here's the output of the tudor-host-launcher service log:

tudor-host-launcher.service.log

The issue I'm noticing is that if the sensor is on too long without use it won't be usable again without a system reboot. This becomes a problem for me if I reboot and walk away or if I have an installation running in a background terminal that needs authentication that I don't notice for a few minutes.

Thanks, that helps quite a bit with narrowing down the issue! The log you sent doesn't contain any errors (which is a good sign that nothing else is actually wrong), so ideally you could try to reproduce the issue with the new code, and report back if it still happens.

mahjongchess commented 11 months ago

I've been using the new code for an hour now, and so far it's been working perfectly! No errors in dmesg.

Popax21 commented 11 months ago

Great to hear that! I'll close this issue now, feel free to open a new one if something pops up later.