-
Notifications
You must be signed in to change notification settings - Fork 83
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix for "Fingerprint not working after waking up from suspend" doesn't work on Fedora 36 #127
Comments
Same issue on Fedora 35 after update. Stacktrace for open-fprintd-resume.service (ThinkPad x280): May 27 19:55:43 thinkpadx280 systemd[1]: Starting Restart devices after resume... |
Try this:
|
Doesn't work at least for me. Is there something I can put into terminal to get the log to diagnose it further? |
Worked with the solution found in #3 |
Can confirm that adding additional service worked, however this is workaround in my opinion. If python-validity has a service on it's own that handles that, it should work without us having to create additional service for it. |
Can we please reopen this issue as this is a workaround as mentioned by @gnoamchomsky |
A bit of background in case some one wants to fix this and raise a PR: Most of commands require to be sent over a secure channel (TLS). TLS wraps all command/response traffic between a host a device and encrypts+signs it. It is also used to establish a trust between the device and the host. After TLS is established, both the device and the host must maintain their respective TLS states. There are a few cases when a device can loose it's TLS state:
This last bit is puzzling. On the driver's side we have no idea which state the device is in after resume. The good thing is that after both scenarios the state of device is the same - TLS is reset and the device is ready to establish another TLS session. Here is an example which demonstrates this:
As you can see, the second time we run diff --git a/dbus_service/dbus-service b/dbus_service/dbus-service
index 87430d8..038f866 100755
--- a/dbus_service/dbus-service
+++ b/dbus_service/dbus-service
@@ -70,7 +70,10 @@ class Device(dbus.service.Object):
def Resume(self):
logging.debug('In Resume')
tls.reset()
- init.open_common()
+ try:
+ init.open_common()
+ except:
+ init.open_common()
@dbus.service.method(dbus_interface=INTERFACE_NAME, in_signature="s", out_signature="as")
def ListEnrolledFingers(self, user): It would be great If someone can test this and raise a PR. |
I've pushed the fix and released 0.14 to Ubuntu PPA. |
I'm too much of a noob on linux most likely. I just copy things I find online and put in the terminal until something works for my device. PPA is used on ubuntu based distros only, right? Can you guide how would I test it now on Fedora when first I installed it via guide in README.md of the project with |
@uunicorn I have tried the following test in playground and got same behavior as you. Initial init.open_common() will fail but if I retry I am able to processed. OS: Fedora release 36 (Thirty Six) x86 |
In regards to comments in #128 here is the output:
Seems to be related to uunicorn/open-fprintd#12 |
This worked like a charm on Ubuntu 24.10. Thanks a lot! |
Fix for "Fingerprint not working after waking up from suspend"
sudo systemctl enable open-fprintd-resume open-fprintd-suspend
doesn't work on Fedora 36 on Thinkpad T480. Used to be fine before the upgrade to this version system.
Also after waking up from suspend now any command that requires 'sudo' in terminal makes the terminal wait around 20 seconds until there is a prompt to type password.
The text was updated successfully, but these errors were encountered: