I suggest to run fprintd in the terminal and see what messages it spawns.
Nice idea.
$ fprintd-list me
found 1 devices
Device at /net/reactivated/Fprint/Device/0
Using device /net/reactivated/Fprint/Device/0
User me has no fingers enrolled for Goodix MOC Fingerprint Sensor.
$ fprintd-enroll me
Using device /net/reactivated/Fprint/Device/0
failed to claim device: GDBus.Error:net.reactivated.Fprint.Error.Internal: Open failed with error: Please update firmware using fwupd
@Matt_Hartley Hiya Matt. Do you know if thereās any action on the fingerprint firmware issue? I know FWās had a lot going on, but I do miss my fingerprint reader.
Hi Richard,
Just wanted to make sure you understand, not a firmware issue with officially supported distros.
It can be an issue with community supported distros and Manjaro is among them.
At some point as we grow our team, I hope to have resources to dig into rolling releases (which evolve daily) like Manjaro, but at this time, weāre heavily focused on keeping things humming along with Fedora and Ubuntu.
The error itself: Open failed with error: Please update firmware using fwupd
Is not happening on any of the Framework laptops I have with Fedora or Ubuntu.
You can give this AppImage a shot, but the error may be with whatever Manjaro has been releasing as of late.
Normally when seeing that error, youād:
fwupdmgr get-devices
fwupdmgr refresh --force
fwupdmgr update
Then try again, but I suspect this is not going to help. Iād confirm the reader is working by testing an install of Ubuntu 22.04 if you have a spare Nvme drive handy - if it tests fine, then itās going to be on Manjaro. If it also fails, then the reader may be having issues at the hardware level.
@Matt_Hartley - I apologize for sticking my nose in here, but I have been following this. If I am understanding it correctly, the issue is that the new fingerprint readers in the marketplace have a firmware version that is not recognized by the fingerprint software. Are you able to obtain and install that hardware, and confirm that there are no issues with it in Fedora or Ubuntu? I apologize if you already have done so and I missed it.
Thank you for all of your help, Iām learning a lot from you and from the community.
Have a great day.
Nose appropriately stuck in.
If you check my note from Feb 23 youāll see that I
- checked for firmware updates (there were none)
- tested on Ubuntu (supported) and received the same failure (I keep an Ubuntu partition handy for just this sort of debugging).
I just repeated both of those steps with the same results.
The reader worked perfectly for months until I replaced my fingerprint reader with a new one. Previous posts on this thread indicate this is likely a problem with firmware on the new fingerprint reader not supporting linux at all. If you think this might be a hardware issue, Iām certainly up for swapping out the reader, provided FW is kind enough to send me a replacement to test.
Ah, fair point.
@Richard_Tango-Lowy letās see what weāre working with, please paste back the output of:
lsusb -v -d 27c6:5395
You can check for the device ID with lsusb
(itāll be Goodix)
I can then take this and send it upstream to the hardware team.
@Matt_Hartley Here you go!
Bus 003 Device 002: ID 27c6:609c Shenzhen Goodix Technology Co.,Ltd. Goodix USB2.0 MISC
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x27c6 Shenzhen Goodix Technology Co.,Ltd.
idProduct 0x609c
bcdDevice 1.00
iManufacturer 1 Goodix Technology Co., Ltd.
iProduct 2 Goodix USB2.0 MISC
iSerial 3 UIDXXXXXXXX_XXXX_MOC_B0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0020
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 3 UIDXXXXXXXX_XXXX_MOC_B0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 4 MISC Data
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Device Status: 0x0000
(Bus Powered)
Looks like we have reached out to Goodix previously on this.
Whatās interesting is that my output matches this exactly and my fingerprint reader works fine on Fedora.
If this is happening on Manjaro, the firmware error may in fact be wrong. I say this as I go through the past posts from Feb. Fedora is one of our supported distros and my config for the reader matches yours perfectly, using our Fedora guide for setting up the reader, I have it working great.
Not ideal, but Iād confirm this in Fedora and then make sure to follow the steps in the gist file exactly. I am not convinced this is firmware - if we can duplicate it on Fedora, then itās an issue.
Thanks for checking, Matt. Iāve confirmed the failure under Ubuntu, which is officially supported by Framework. Is someone there able to test under Ubuntu?
Iāll be traveling for a bit, but can try to burn a Fedora live USB for further testing. If it still fails, should we assume I have a bad reader?
Yeah, if you followed the guide for Ubuntu 22.04 and itās still failing, even if youāve tried this previously, try this here (scroll down to the link under Linux to clear enrolled fingerprints). I have not seen a firmware error for previous enrollment myself, just failure to enroll, but itās worth a try.
I am suggesting this as your output matched mine exactly, which makes me think the fprint-clear-storage tool is going to be worth trying.
sudo ./fprint-clear-storage-0.0.1-x86_64.AppImage ī² 1 ā ī² 4s ļ
Looking for fingerprint devices.
libusb: error [udev_hotplug_event] ignoring udev action change
libusb: error [udev_hotplug_event] ignoring udev action change
<__gi__.FpiDeviceGoodixMoc object at 0x7f6172c8c640 (FpiDeviceGoodixMoc at 0x55a3479801e0)>
goodixmoc
UIDXXXXXXXX_XXXX_MOC_B0
libusb: error [udev_hotplug_event] ignoring udev action change
Traceback (most recent call last):
File "/tmp/.mount_fprintdtD47C//opt/fprint_clear_storage.py", line 18, in <module>
dev.open_sync()
gi.repository.GLib.Error: fp - device - error - quark: Please update firmware using fwupd (1)
libusb: error [udev_hotplug_event] ignoring udev action change
libusb: warning [libusb_exit] application left some devices open
Poking my nose back in again. @Matt_Hartley, it looks like some of the fingerprint readers have a firmware version of 01000320 and type of MT_EVK rather than 01000248 and APP. Please see @ShatteredScales posts at the top of the thread, specifically 1 and 3. In @Richard_Tango-Lowyās post on 2/22 it shows that his replacement fingerprint reader has the newer firmware version. Elsewhere in the thread @ShatteredScales noted that he was able to revert the firmware by running a windows vm, passing through the fingerprint reader, and running the windows driver installer. He also noted that he did not expect the firmware to roll back.
So, from my outside perspective, it looks like some or all of the fingerprint readers in the marketplace have a firmware version that will not work on linux until either the fprint project updates their code, or the drivers are rolled back via the method above. Iām not sure if there is any means to roll the firmware back natively in linux, or if goodix would be willing to supply such a tool.
Have a good evening.
@lbkNhubert Your nose is still completely welcome. And youāve summarized the situation perfectly. Unfortunately (fortunately), thereās no Windows anywhere on or near my Framework, so I canāt use that method to roll back the firmware.
(Typing from a hotel somewhere in Paris. Frameworkās on the road, as usual.)
@Richard_Tango-Lowy, if you just want to get the device working, you could set up a temporary windows vm, pass through the fingerprint reader to it, then try to roll back the firmware. Once done, you could then delete the windows vm. I donāt use it often but I do have windows on an expansion card in case there is something that requires it.
Have a great day, enjoy Paris!
@lbkNhubert Thought about it, but havenāt had the time. Anyway, Iād have to come up with a Windows image somewhere, and all my machines run linux.
Re Paris. Iād forgotten how much I enjoy this city.
You can download an iso here for setting up a temporary VM: https://www.microsoft.com/en-us/software-download/windows10ISO
Donāt waste your time in Paris doing that, though! It has been many years since I was there, hopefully I will get back some time soon.
@lbkNhubert Hey, thanks! Yeah, not doing that here. Most of my time is booked up teaching. The rest is eating and exploring. Right now Iām resting between the above.
Will give it a try when I get back to the States.
@Matt_Hartley @lbkNhubert I finally got around to
- running Boxes,
- installing Windows 10, and
- running the Framework driver bundle.
It was a complete pain, but my fingerprint reader now works again on Linux.
And it validates the OPās hypothesis:
firmware on newer fingerprint readers breaks on Linux.
Good to have my fingerprint reader back.
@Richard_Tango-Lowy Glad to see you were able to get it working the same way I did.
That confirms that the firmware version 01000320
thatās shipping on replacement modules is not compatible with the current (v1.94.5) or older libfprint versions.
Goodix seems at least semi-active on the libfprint repo, last contributing some new PIDs ~4 months ago, so I think itās a possibility to get them involved (goodixmoc: Add PID 0x6092 (6ed1b707) Ā· Commits Ā· libfprint / libfprint Ā· GitLab)
@Matt_Hartley Are you able to test a fresh replacement module from the inventory that would be shipped from the Marketplace?
Also, a small cosmetic issue I mentioned above that may have gotten missed in the noise is that the link on the parts for the fingerprint readers (https://fr.mw/FRANBFJY) does not work.