Open JThyroff opened 5 years ago
+1
Any progress on this?
+1
This project seems not quite active. There has been a little bit of hope for 20.04 Focal Fossa: https://askubuntu.com/questions/1214592/fingerprint-reader-lenovo-thinkpad-l13-synaptics-driver
Anyone got it to work with 20.04?
I have not got it working yet.
I'll test it today. "You'll need at least fwmgr-1.3.5 and fprintd-1.90. Then enable testing remote in fwupdmgr. See here how: github.com/fwupd/fwupd/wiki/LVFS-Testing-remote The Firmware you need to install is listed here: fwupd.org/lvfs/search?value=prometheus"
It didn't work for me. The firmware from the link is for 00bd only according to the contained XML file.
It does not support this device, unfortunately.
I've added $100 bounty on https://www.bountysource.com/issues/76164422-add-support-for-06cb-00be for anyone who can solve it. I need this.
I too would like to see this supported +1
I support, really need
Support too, really need it soon :( So many advances in 00bd but not for our 00be
I too would like to see this supported ☺️
I added $250 to the bounty for this (non-expiring), so the bounty for this issue is now at $350.
I added $250 to the bounty for this (non-expiring), so the bounty for this issue is now at $350.
It wouldn`t be like buy a pancake on the street for some digits with any symbols.. rather like janitor or porter, do you ready to let him in?
It's been a while, but I'm currently working on reverse engineering the Windows driver for this model (Synaptics FM-3463 / 06cb:00be). Don't expect anything soon though, as the driver is complex and it's more a side project than my current focus. I'll post major updates on progress here (if that's OK).
Just purchased a Lenovo Ideapad 5 Flex (Model 14ITL05) and everything on Linux works except the fingerprint reader!
I'm on Mint 20 Uma, which uses Ubuntu 20.04 as it's base. Kernel is 5.11.0-22-generic and I have a 06cb:00be Synaptic device shown in the output of lsusb.
As a test, I just installed Ubuntu 21.04 on my machine in the hopes that a newer driver was included in the newer version - no luck, unfortunately.
If this shows any potential means of gaining traction, I may just increase the bounty to $500 total.
For anyone wondering how I'm progressing: I'm almost at the point of having fully functioning initialization & pairing routines. My reverse engineering effort started completly from scratch, so I didn't look much at the work inside this repo, but as it turns out, the tudor family of sensors (that's what they're called in the driver) shares some, but not all characteristics with the sensors which this repo focuses on. However, I was able to clarify many things, because I am reverse engineering the Windows driver (which conveniently has debug symbols/printfs inside of it), while (I think) they only looked at captured USB packets. I might create a pull request claryfing overlapping info. As of yet it's still to early to release anything, but when I do, I'll post the link (and any major updates on progress) here.
PS: Just speculation, but I belive that my driver could also work for 06cb:00bd sensors, without the need for a FW update. It might also possible that other sensors could work too, but so far I only tested it on my laptop's 06cb:00be one.
For anyone wondering how I'm progressing: I'm almost at the point of having fully functioning initialization & pairing routines. My reverse engineering effort started completly from scratch, so I didn't look much at the work inside this repo, but as it turns out, the tudor family of sensors (that's what they're called in the driver) shares some, but not all characteristics with the sensors which this repo focuses on. However, I was able to clarify many things, because I am reverse engineering the Windows driver (which conveniently has debug symbols/printfs inside of it), while (I think) they only looked at captured USB packets. I might create a pull request claryfing overlapping info. As of yet it's still to early to release anything, but when I do, I'll post the link (and any major updates on progress) here.
PS: Just speculation, but I belive that my driver could also work for 06cb:00bd sensors, without the need for a FW update. It might also possible that other sensors could work too, but so far I only tested it on my laptop's 06cb:00be one.
Sounds a step in the right direction. I have the 06cb:00be sensor, so if you want me to confirm how it works here, I'm open to testing it. Just be adviced that I'm kinda new in this, so I might need more than the usual pointers if you are willing to.
For anyone wondering how I'm progressing: I'm almost at the point of having fully functioning initialization & pairing routines. My reverse engineering effort started completly from scratch, so I didn't look much at the work inside this repo, but as it turns out, the tudor family of sensors (that's what they're called in the driver) shares some, but not all characteristics with the sensors which this repo focuses on. However, I was able to clarify many things, because I am reverse engineering the Windows driver (which conveniently has debug symbols/printfs inside of it), while (I think) they only looked at captured USB packets. I might create a pull request claryfing overlapping info. As of yet it's still to early to release anything, but when I do, I'll post the link (and any major updates on progress) here.
PS: Just speculation, but I belive that my driver could also work for 06cb:00bd sensors, without the need for a FW update. It might also possible that other sensors could work too, but so far I only tested it on my laptop's 06cb:00be one.
I'm also willing to be a guinea pig. I have an Ideapad Flex 5 (has 06cb:00be) with Arch that I can test it on. Like @shaqman, I have never been a driver tester so I may need a bit more instruction. Glad you're making progress, though!
For anyone wondering how I'm progressing: I'm almost at the point of having fully functioning initialization & pairing routines. My reverse engineering effort started completly from scratch, so I didn't look much at the work inside this repo, but as it turns out, the tudor family of sensors (that's what they're called in the driver) shares some, but not all characteristics with the sensors which this repo focuses on. However, I was able to clarify many things, because I am reverse engineering the Windows driver (which conveniently has debug symbols/printfs inside of it), while (I think) they only looked at captured USB packets. I might create a pull request claryfing overlapping info. As of yet it's still to early to release anything, but when I do, I'll post the link (and any major updates on progress) here. PS: Just speculation, but I belive that my driver could also work for 06cb:00bd sensors, without the need for a FW update. It might also possible that other sensors could work too, but so far I only tested it on my laptop's 06cb:00be one.
I'm also willing to be a guinea pig. I have an Ideapad Flex 5 (has 06cb:00be) with Arch that I can test it on. Like @shaqman, I have never been a driver tester so I may need a bit more instruction. Glad you're making progress, though!
I am too ok being a guinea pig.
Count me in for testing as well. I have a Lenovo IdeaPad S740 (06cb:00be Synaptics, Inc.) running Manjaro and 5.13 kernel
Well that was quick. A few days after getting initialization to work, I already have events (finger press/remove, etc) and image captures up and running. Yet I'm still not done. Image post processing and matching is still missing (the sensor has commands for that functionality). After I get that to run, I'll put everything in a Github repo and send the link here.
I'll probably release the driver in two stages: First, I'll release my prototype python driver, too check if it works on sensors in the wild and too fix any bugs. After that, I'll create a libfprint implementation, so that it can work with existing fingerprint infrastructure.
PS: Here's a little sneak peak: a capture of the side of my finger
Same as @patbakdev. Count me in for testing!. I have two Lenovo machines with 06cb:00be sensors from Synaptics. Also running Manjaro and 5.14.rc3 kernel.
Hey that sounds very nice! I can also test if you need another one 👍 Currently I'm running on a Thinkpad L490 with the 06cb:00be sensor using Ubuntu 21.04
I just uploaded my current state of progress: https://github.com/Popax21/synaTudor. Note that some things are still incomplete, like on sensor matching, or a libfprint integration, but it should still be enough to do some first in-the-wild tests.
PS: I'm beginning to loose motivation for this project, so I might take a break from it. So if you don't hear anything from me for a while, that's the reason.
Great effort @Popax21 It is working for me :smile: (Manjaro and 5.14.rc3 kernel) Thanks! I look forward to hearing from you soon.
Yes, this is great work. I had no problems. IdeaPad S740 with 5.10.53-1-MANJARO.
I'm so glad I commented on this because it seems I revived an issue that had kind of gone to sleep (but not quite yet died!)
I'm also willing to be a driver testing guinea pig. I have been using Linux for years but never really had to mess with drivers, so specific instructions will be appreciated.
In case no one else mentions it --- please make sure to backup your installs just in case something breaks :) I like to use Clonezilla to make an exact clone; that way I have no qualms about completely bricking my install during test, and restoring the backup takes <30 minutes.
@Popax21 - if this works and continues gaining traction, I'd like to donate to either:
1) A cause you care about on your behalf 2) An OSS project you support 3) Buy you a coffee/beer/wishlist item from Amazon.
Sincerely, thanks for your efforts with this. I'm still serious about helping the bounty up to $500!
I tried out the code on github, everything worked as expected. Can't wait for the libfprint implementation
I've just uploaded a (primitive) libfprint integration, which just calls the python driver library (because I'm not in the mood of converting it to C as of now). However, don't get your hopes up, because I discovered that without the post processing algorithm which I yet have to reverse engineer, libfprint doesn't produce successfull matches, meaning: you can enroll, but not verify. I'm going to continue reverse engineering and posting updates here.
I figured out a way to extract the post processing code from the Windows driver and integrate it into the Python driver. However, libfprint is still unable to produce a match, even with the post processed images. I suspect that I have to implement on device matching, however that will take a while. Still, you should be able to test the libfprint integration + post processing code and check if it might work for you. If you do, please note to check the updated instructions of the python driver.
I was able to enroll my right index finger, but It is unable to match the fingerprint. That bounty is going to be yours very soon :D
I wasn't able to make this work. Took some doing to get everything needed to build libfprint, etc., but then I ran into this issue. https://github.com/3v1n0/libfprint/issues/29.
After downgrading fprintd to 1.90.1 and running fprintd-enroll I got:
$ list_devices failed: Failed to activate service 'net.reactivated.Fprint': timed out (service_start_timeout=25000ms)
# list_devices failed: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
systemd[1]: Starting Fingerprint Authentication Daemon...
fprintd[20880]: Traceback (most recent call last):
fprintd[20880]: File "wrapper.py", line 1, in <module>
fprintd[20880]: ModuleNotFoundError: No module named 'tudor'
fprintd[20880]: Couldn't load wrapper python module!
systemd[1]: fprintd.service: Main process exited, code=dumped, status=5/TRAP
systemd[1]: fprintd.service: Failed with result 'core-dump'.
systemd[1]: Failed to start Fingerprint Authentication Daemon.
Probably something I am missing wrt setting everything up. I'll have to try again later when I have more time.
Keep up the good work.
I wasn't able to make this work. Took some doing to get everything needed to build libfprint, etc., but then I ran into this issue. 3v1n0/libfprint#29.
After downgrading fprintd to 1.90.1 and running fprintd-enroll I got:
$ list_devices failed: Failed to activate service 'net.reactivated.Fprint': timed out (service_start_timeout=25000ms) # list_devices failed: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken. systemd[1]: Starting Fingerprint Authentication Daemon... fprintd[20880]: Traceback (most recent call last): fprintd[20880]: File "wrapper.py", line 1, in <module> fprintd[20880]: ModuleNotFoundError: No module named 'tudor' fprintd[20880]: Couldn't load wrapper python module! systemd[1]: fprintd.service: Main process exited, code=dumped, status=5/TRAP systemd[1]: fprintd.service: Failed with result 'core-dump'. systemd[1]: Failed to start Fingerprint Authentication Daemon.
Probably something I am missing wrt setting everything up. I'll have to try again later when I have more time.
Keep up the good work.
Did you install the python driver module globaly? (see README.md in the pydrv directory)
Any updates for the on device processing? I think there might be some dumb mistake in the code lol
Any updates for the on device processing? I think it might be some dumb mistake in the code lol
As I have to completely reverse engineer and replicate that part of the driver, it will take a while. It's the biggest part of the windows driver.
could you give another update?
could you give another update?
I'm still making progress, but it's quite slow. Hopefully though, the next update will be an announcement of the fully functioning driver. However, it'll take a while.
another progress update plz?
another progress update plz?
I currently don't have much time or motivation to work on this project, however, when I regain both, I'll continue working on it.
another progress update plz?
I currently don't have much time or motivation to work on this project, however, when I regain both, I'll continue working on it.
That's alright, but Can you upload what you have got? I would like to continue working on it
another progress update plz?
I currently don't have much time or motivation to work on this project, however, when I regain both, I'll continue working on it.
That's alright, but Can you upload what you have got? I would like to continue working on it
I didn't get much past the current state of the repo, so everything should be in there. However, most of the reverse engineering work is quite messy, so it may take a while until you get used to it. rev.txt and the Ghydra export are the most important files, as they contain all the information already gathered, and the prototype driver contains the practical implementation of it, which might be easier to understand.
another progress update plz?
I currently don't have much time or motivation to work on this project, however, when I regain both, I'll continue working on it.
That's alright, but Can you upload what you have got? I would like to continue working on it
I didn't get much past the current state of the repo, so everything should be in there. However, most of the reverse engineering work is quite messy, so it may take a while until you get used to it. rev.txt and the Ghydra export are the most important files, as they contain all the information already gathered, and the prototype driver contains the practical implementation of it, which might be easier to understand.
good to know
another progress update plz?
I currently don't have much time or motivation to work on this project, however, when I regain both, I'll continue working on it.
That's alright, but Can you upload what you have got? I would like to continue working on it
I didn't get much past the current state of the repo, so everything should be in there. However, most of the reverse engineering work is quite messy, so it may take a while until you get used to it. rev.txt and the Ghydra export are the most important files, as they contain all the information already gathered, and the prototype driver contains the practical implementation of it, which might be easier to understand.
I tried compiling your fork of ghidra and... it didn't work any help? im using arch linux now error: Could not find method helpIndexCompile() for arguments [javax.help:javahelp:2.0.05] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler. also an sha256 hash didn't match
another progress update plz?
I currently don't have much time or motivation to work on this project, however, when I regain both, I'll continue working on it.
That's alright, but Can you upload what you have got? I would like to continue working on it
I didn't get much past the current state of the repo, so everything should be in there. However, most of the reverse engineering work is quite messy, so it may take a while until you get used to it. rev.txt and the Ghydra export are the most important files, as they contain all the information already gathered, and the prototype driver contains the practical implementation of it, which might be easier to understand.
I tried compiling your fork of ghidra and... it didn't work any help? im using arch linux now error: Could not find method helpIndexCompile() for arguments [javax.help:javahelp:2.0.05] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
Did you follow the regular Ghdira build guide?
yes i did
yes i did
I did some research, and it might be related to not building with JDK 11
It would be really nice, if i could use the fingerprintreader in my new lenovo Ideapad. ;)