-
Notifications
You must be signed in to change notification settings - Fork 85
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
Working with 06cb:009a Synaptics, Inc. #3
Comments
I'm quite confident these blobs are pieces of code which Windows driver dynamically uploads and executes on the device. They are hard-coded inside the driver .dll.
You can use this project https://github.com/uunicorn/synaWudfBioUsb-sandbox to snoop on Windows driver to see which blobs are loaded into your device and when. |
The firmware's name for 009a is I will try and extract the blobs. Let's see how it goes. |
Thanks @mjenny , could you please share after the extract? :) |
@javierfileiv sure, if I'm able to extract them. :) |
I can assist you in finding the blobs if you can manage to get synaWudfBioUsb-sandbox running. |
@uunicorn I already have the DLL and the firmware extracted. I will let you know as soon as I have wine up and running. I am currently compiling wine inside a VM running on my Lenovo X1 Extreme. Not sure if that will be sufficient. If not I will install Arch Linux or Linux Mint for a faster install. 😄 |
Hm... I should have tried to passthrough the fingerprint reader earlier. I guess Intel Secure Guard Extension is a problem or the fact that I have enabled WSL2 and have to go through Hyper-V. |
@uunicorn do I have to put the firmware file somewhere to run |
Both .xpfwext and .dll should be placed in the same directory with a.exe. I'm no expert, but if you're running a host on Windows, it may be hard to pass the reader USB device to a Linux guest. Windows diver may have claimed the same device and could interfere with a communication. But yeah, IDK, I never tried that. |
@uunicorn I installed Linux Mint for now. Will do everything over again. |
Yes. Hacks have a bunch of printfs sprinkled all over the crypto routines. Those are actually used to dump all the communication between a device and a driver. Including the missing blobs. Which reminds me that you'd probably want to change this line before building Wine: |
I'm currently back to building wine with the aforementioned changes. |
@uunicorn I successfully built I assume that Do I have to build |
Nvm, I missed |
Ok, I have everything running. @uunicorn how do I know that
|
@uunicorn here is the link to the logfile: logfile.txt |
@mjenny it looks like it crashed because it failed to find your USB device. Can you check that the device vendor and the product id in /dlls/winusb/winusb.c are actually matching your hardware? By default it is
which corresponds to 0097 device. If you have a 009a, you should probably change MY_PRODUCT to 0x009a, but it would be best if you can double check with lsusb:
a.exe should let you enroll a finger. |
I should have known it better... I was thinking about changing
I'll rebuild wine then and let you know how it goes. |
@uunicorn
|
I've got a custom udev rule:
But you can chown it manually. It's gonna be reset after reboot or when device re-connects. |
@uunicorn I
|
That could mean that device just finished pairing and has restarted. |
Or may be not.
You may need to put the firmware file in some other place, where the driver is looking for it. Not sure where though. |
I couldn't find anything in regards to that inside |
What do you mean? Here it is:
Try copying it to \Windows\System32\WinBioPlugins in your Wine prefix. |
Dang, I missed that completely...
After the run:
logfile.txt |
Do you think that the new device number is the issue and that |
No, host is requesting device to reboot before it disconnects. USB comms are fine. |
No, but I can create a few more and upload them if it helps. |
Can you use factory-reset.py and try again? |
Hello, great work! I am very thankful for this project. |
Hi @ros86 , Well, this is embarrassing. I forgot to push recent changes to PPA. Including the SID mapping README is talking about. I've just published 0.11, which should contain these changes - please update and try again. @peterbabic good point. It is very hard to find anything ITT. Now that it seems 009a is supported, we can probably close this issue. Feel free to raise a new one about resuming after suspend. |
@uunicorn 0.11 version works perfectly! 😃 many thanks! Sorry to everybody for incorrect issue of post |
Hi Peter, I also experineced the suspend issue on my X1's 009a sensor
when I try using uunicorn's open-fprintd a while ago, so I forked
marco's libfprint-tod-vfs0090 driver in my repo (
https://gitlab.com/bingch/libfprint-tod-vfs0090), made some changes so
it works for 009a too. As this setup uses the upstream fprintd instead,
suspend works well, it might work for your 0097 sensor too.
Note you still need to use uunicorn's python-validity package to
initialize and enroll fingerprint
…On Thu, 2020-09-10 at 01:00 -0700, Peter Babič wrote:
Hello, great work! I am very thankful for this project.
However, this thread is quite long and is discussing multiple issues.
Could there please be a separate issue thread to just track the "make
it work after suspend" status, please? I do have a 0097 sensor, yet
the information about suspend issue spread here in the thread for
009a and there are also multiple mentions in the AUR.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
FYI I've edit Arch T480s wiki page to set Fingerprint reader to "Y" instead of "N" 👍 https://wiki.archlinux.org/index.php/Lenovo_ThinkPad_T480s#Fingerprint_Reader PS: first contribution to Arch wiki so feel free to improve if needed. |
Hello, I am trying to make this work for 06cb:00be Synaptics and have a couple of questions: |
I've started to move forward with attempts to grab the blobs, but only to find issues on my machine with |
Just wanted to say that I am successfully using a |
Hi! I'm trying python-validity on my A485 which has the sensor with this USB id, but I'm running into a problem where python runs into the following exception:
It seems like it has something to do with USB timing out, at least that's what the error says. The light above the sensors flashes shortly on starting the enroll and killing it. Swiping my finger across does nothing. |
same issue |
thank you! i wish i came across your repository sooner. with your help 009a in my T480s works with "standard" fprintd now. suspend issue is now gone. thank you again. |
glad to hear it works on T480s too |
Have an issue after suspend on t480s: if open-fprintd-resume and open-fprintd-suspend disabled then there is If enable open-fprintd-resume and open-fprintd-suspend, then when trying to use reader it stucks with no response, also there is an error log for
|
Hi, I had the exact same problem on Fedora 36 (was working fine on 35), I managed to fix it changing "/usr/lib/systemd/system/open-fprintd-resume.service" to this:
Here's the thread where I found the solution: #106 |
I'm running in to the same issue after upgrading to Fedora 36. I was wondering if there is a plan to release a more permanent fix to this? |
just wondering, how upstreamable is your fork? ithe original reason for open-fprintd was because allowing integration of python-valitity would make it easier to use proprietary drivers iirc |
I'm struggling to keep my T480S 009a sensor working properly after suspend. It sometimes works and other times fails to respond at all after waking from sleep. I have enabled Is there a recommended approach? |
Have you tried this one yet? Worked for me on Fedora 37 on a T480s. |
I'm using Mint 21.1 (Vera), so Ubuntu 22.04 based. I found that file in |
I'm on Arch (kernel 6.7.5-arch1-1). When my T480 wakes from sleep, I need to wait about 10 seconds if I want to unlock it with a fingerprint. Sometimes it just fails to activate sensor on the first try and it works second time. I don't know what to do anymore. I've reset the fp reader a few times and it didn't help. I have |
Hi there, I'm trying to make work this fp.
I saw that there are blobs_90.py are blobs_97.py . Are these binary blobs taken from the firmware extracted from the windows installer?
How can I know which one is
init_hardcoded
,init_hardcoded_clean_slate
, etc ?Thanks for your reply
The text was updated successfully, but these errors were encountered: