[Beta] LVFS update for Framework Laptop 13, 13th Gen Intel Core & AMD 7040 Series fingerprint reader on Linux

I may be too late to this discussion, but I tried this on my new 13th Gen Framework 13 that I just got and it did NOT work for me. I am providing the output in case in helps:

$ fwupdmgr refresh --force
Updating lvfs-testing
Downloading…             [   -                                   ]Updating lvfs
Downloading…             [***************************************]
Downloading…             [***************************************]
Downloading…             [***************************************]
Successfully downloaded new metadata: 0 local devices supported
$ fwupdmgr get-devices 1e8c8470-a49c-571a-82fd-19c9fa32b8c3
Laptop (13th Gen Intel Core)
│
├─Fingerprint Sensor:
│     Device ID:          4295296d98b3ba38c72f6baa33d24f03a1d428f6
│     Summary:            Match-On-Chip fingerprint sensor
│     Current version:    01000320
│     Vendor:             Goodix (USB:0x27C6)
│     Install Duration:   10 seconds
│     GUIDs:              34def4c7-9461-5a32-a945-5dde0ca57d88
│                         1e8c8470-a49c-571a-82fd-19c9fa32b8c3
│     Device Flags:       • Updatable
│                         • Device can recover flash failures
│                         • Signed Payload
$ fwupdmgr update 1e8c8470-a49c-571a-82fd-19c9fa32b8c3
Devices with no available firmware updates: 
 • Fingerprint Sensor
 • System Firmware
 • UEFI Device Firmware
 • UEFI Device Firmware
 • UEFI Device Firmware
 • WD BLACK SN770 2TB
No updatable devices
$ lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 003: ID 27c6:609c Shenzhen Goodix Technology Co.,Ltd. Goodix USB2.0 MISC
Bus 003 Device 002: ID 32ac:0002 Framework HDMI Expansion Card
Bus 003 Device 004: ID 8087:0032 Intel Corp. AX210 Bluetooth
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Hope I provided the right output :slight_smile:

2 Likes

It is, thank you. Two things I’d like to check with you:

What is the output of:

fwupdmgr --version

and

You confirmed that despite the apparent fail to update, Fedora/Ubuntu Users, Fingerprint reader did not detect the hardware?

1 Like

Thank you for your time and effort!

$ fwupdmgr --version
runtime   org.freedesktop.fwupd         1.7.9
runtime   com.dell.libsmbios            2.4
compile   org.freedesktop.gusb          0.3.10
runtime   org.kernel                    6.2.0-34-generic
compile   com.hughsie.libjcat           0.1.9
compile   org.freedesktop.fwupd         1.7.9
runtime   org.freedesktop.gusb          0.3.10

Yes, the fingerprint sensor is still NOT working. The Users settings page displays the following error: Failed to claim fingerprint device Goodix MOC Fingerprint Sensor: Failed to communicate with the fingerprint reader.

Here is my Ubuntu version, in case it is of any importance:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.3 LTS
Release:        22.04
Codename:       jammy

No problem, okay, this confirms that the lvsfs option is not a go at this time.

Please try this (as it has worked 95% of the time for those trying it). Ignore any errors, just follow along. Then report back.

2 Likes

I’ve already tried this before discovering this thread. I now went through it again to document the output:

sudo fwupdtool get-devices --plugins goodixmoc
Loading…                 [-                                      ]19:35:34:0157 FuEngine             failed to add device usb:03:00:09: failed to claim interface 0x00: USB error on device 27c6:609c : Resource busy [-6]
Loading…                 [***************************************]
No detected devices
$ sudo fwupdtool install --allow-reinstall --allow-older goodix-moc-609c-v01000330.cab
Loading…                 [-                                      ]19:36:52:0372 FuEngine             failed to add device usb:03:00:09: failed to claim interface 0x00: USB error on device 27c6:609c : Resource busy [-6]
19:36:52:0545 FuEngine             failed to add device /sys/devices/pci0000:00/0000:00:1f.5/spi_master/spi0/spi0.0/mtd/mtd0ro: attribute size returned no data
Loading…                 [***************************************]
Decompressing…           [***************************************]
No supported devices found

Then I rebooted, still didn’t work.

fwupdmgr --version                                                                                                                      [21:41:02]
runtime   org.freedesktop.fwupd         1.7.9
runtime   com.dell.libsmbios            2.4
compile   org.freedesktop.gusb          0.3.10
runtime   org.kernel                    6.2.0-34-generic
compile   com.hughsie.libjcat           0.1.9
compile   org.freedesktop.fwupd         1.7.9
runtime   org.freedesktop.gusb          0.3.10

The version is older than 1.8.8 so I used the quirk described in the guide:

$ file="/usr/share/fwupd/quirks.d/goodixmoc.quirk"; sudo sed -i '/\[USB\\VID_27C6&PID_609C\]/d' "$file"; sudo sed -i '/Plugin = goodixmoc/d' "$file"; echo -e '[USB\VID_27C6&PID_609C]\nPlugin = goodixmoc' | sudo tee -a "$file" > /dev/null
$ sudo cat /usr/share/fwupd/quirks.d/goodixmoc.quirk
# Goodix Fingerprint sensor
[USB\VID_27C6&PID_60A2]
[USB\VID_27C6&PID_6384]
[USB\VID_27C6&PID_639C]
[USB\VID_27C6&PID_63AC]
[USB\VID_27C6&PID_6594]
[USB\VID_27C6&PID_6496]
[USB\VID_27C6&PID_609C]
Plugin = goodixmoc

Now I rebooted again.

$ sudo fwupdtool get-history
Loading…                 [-                                      ]19:48:01:0347 FuEngine             failed to add device usb:03:00:09: failed to claim interface 0x00: USB error on device 27c6:609c : Resource busy [-6]
19:48:01:0530 FuEngine             failed to add device /sys/devices/pci0000:00/0000:00:1f.5/spi_master/spi0/spi0.0/mtd/mtd0ro: attribute size returned no data
Loading…                 [***************************************]
Laptop (13th Gen Intel Core)
│
└─Fingerprint Sensor:
  │   Device ID:          4295296d98b3ba38c72f6baa33d24f03a1d428f6
  │   Previous version:   01000320
  │   Update State:       Failed
  │   Update Error:       failed to write: failed to reply: transfer timed out
  │   Last modified:      2023-10-14 17:01
  │   GUID:               34def4c7-9461-5a32-a945-5dde0ca57d88
  │   Device Flags:       • Updatable
  │                       • Device can recover flash failures
  │ 
  └─  New version:      01000330
        License:          Unknown
        Description:      
        The vendor did not supply any release notes.

The new version indeed 01000330, but it still didn’t work.

$ sudo fwupdtool install --allow-reinstall --allow-older goodix-moc-609c-v01000330.cab
Loading…                 [-                                      ]19:49:56:0499 FuEngine             failed to add device usb:03:00:09: failed to claim interface 0x00: USB error on device 27c6:609c : Resource busy [-6]
19:49:56:0672 FuEngine             failed to add device /sys/devices/pci0000:00/0000:00:1f.5/spi_master/spi0/spi0.0/mtd/mtd0ro: attribute size returned no data
Loading…                 [***************************************]
Decompressing…           [***************************************]
No supported devices found

Rebooted, still the same error.

Hi Matt, just adding my post here to say that while the LVFS option failed (and even the .cab file option failed the first 2 or 3 times), I followed the “If it is not working, re-run the fwupdtool install command above again - make sure to reboot each time.” advice and eventually it updated to 01000330 and the GUI started working. Thank you so much! :raised_hands:

2 Likes

Let’s get this into a ticket and see what is going on from there, please link to this post in the ticket.

Delighted to hear this worked out! :raised_hands: :slightly_smiling_face:

1 Like

Ok, I’ve got an update. After reading @Agnes post, I tried to rerun the fwupdtool install ... command a couple of times, of course rebooting every time as discribed in the guide, and it actually worked. Although I did rerun the command once or twice, I didn’t think of further persuing that approach after that.

Here again is the output of one of the unsuccessful tries:

$ sudo fwupdtool install --allow-reinstall --allow-older goodix-moc-609c-v01000330.cab
Loading…                 [-                                      ]19:49:56:0499 FuEngine             failed to add device usb:03:00:09: failed to claim interface 0x00: USB error on device 27c6:609c : Resource busy [-6]
19:49:56:0672 FuEngine             failed to add device /sys/devices/pci0000:00/0000:00:1f.5/spi_master/spi0/spi0.0/mtd/mtd0ro: attribute size returned no data
Loading…                 [***************************************]
Decompressing…           [***************************************]
No supported devices found

And here is what happened after trying it a couple of times (not 100% sure, but I think it was the 4th try):

$ sudo fwupdtool install --allow-reinstall --allow-older goodix-moc-609c-v01000330.cab
Loading…                 [-                                      ]11:55:00:0931 FuEngine             failed to add device /sys/devices/pci0000:00/0000:00:1f.5/spi_master/spi0/spi0.0/mtd/mtd0ro: attribute size returned no data
Loading…                 [***************************************]
Decompressing…           [***************************************]
Writing…                 [*************************************  ]11:55:10:0778 FuEngine             failed to update-cleanup after failed update: failed to get device before update cleanup: failed to wait for detach replug: device 4295296d98b3ba38c72f6baa33d24f03a1d428f6 did not come back
failed to write: failed to reply: transfer timed out

As said, now everything works!

Just some personal feedback: For people who don’t have a lot of knowledge in this area (like me :slight_smile:), it might be a good idea to add a short description to the re-run the fwupdtool install section, saying that the command might need to be run up to let’s say 5 times until it actually works.

I apologise for wasting your time, but I really tried to solve this on my own before bothering you.
Many thanks to @Matt_Hartley and @Agnes for helping me out!

1 Like

That’s not how it should work tbh, even on Linux :sweat_smile:
The fact that it does will surely be of relevance for fw’s engineers.

1 Like

I successfully updated to 01000330 and used it for several days.

It now is massively hot (171F/77C) and no longer shows up if in lsusb or the fwupd tools.

The extreme heat has me afraid to use my laptop.

Edit: this is on a new 13th gen 1370 if that makes a difference. Also, I suspect the temps fried the chip.

Please open a support ticket as this sounds like something has gone sideways. Also, this is with Fedora 38/39 or Ubuntu 22.04.3?

Folks, I believe I have a better handle on where things were falling down. I reproduced this on my own reader. This is a far clearer and improved guide for getting this set up:

3 Likes

Hey,

i recently had to move from win 11 to the newest linux mint because bitlocker ate my recovery keys…at least i wasnt able to unlock the drive with the keys.

The system runs so smooth and the fans arent audible, even if i charge the device…thats been an issue on the windows system. totally annoying. nevermind

Everything is working except the fw-fanctrl and the fingerprint sensor… i was able to get the firmware of the fingerprint sensor to the new version 01000330 and fprintd-enroll my fingerprints in the terminal. i just cant use it somehow when i need to use my password. is there something like a gui? in the user accounts setting theres only me and not many options…

hope someone can help, im trying to get the logs as you need them like on this thread. thanks

I got

failed to get device before update reload: failed to wait for device: device 23ec719b6aabc2d2dac5176c232f0da7a21881b0 did not come back

at

fwupdtool install --allow-reinstall --allow-older goodix-moc-609c-v01000330.cab

step in the guide. fwupd version is 1.9.7. Secure boot is disabled. I have a 7040 series motherboard.

Welcome back to the community!

Confirming this is Ubuntu 22.04.3 or Fedora 38/39?

Based on this:

I am assuming you did not see the KB article linked in the guides for Fedora or Ubuntu 22.04 - are you using another distro/desktop environment?

1 Like

Hmmm, let’s see here.

What is the output of: fwupdmgr --version

If it’s older than 1.8.17, then what is the output of:

sudo cat /usr/share/fwupd/quirks.d/goodixmoc.quirk`

If it is not older. What is your output of:

sudo fwupdtool get-history

I’m on a FW 13 AMD. I previously had everything working with the 01000330 firmware, but had to get a replacement input cover due to receiving a defective keyboard. Unfortunately, I am unable to get the fingerprint reader to work.

it appears that this input cover shipped with the 01000320 firmware:

$ fwupdmgr get-devices 1e8c8470-a49c-571a-82fd-19c9fa32b8c3
Selected device: Fingerprint Sensor
Framework Laptop 13 (AMD Ryzen 7040Series)
│
└─Fingerprint Sensor:
      Device ID:          23ec719b6aabc2d2dac5176c232f0da7a21881b0
      Summary:            Match-On-Chip fingerprint sensor
      Current version:    01000320
      Vendor:             Goodix (USB:0x27C6)
      Install Duration:   10 seconds
      Serial Number:      UIDXXXXXXXX_XXXX_MOC_B0
      GUID:               1e8c8470-a49c-571a-82fd-19c9fa32b8c3 ← USB\VID_27C6&PID_609C
      Device Flags:       • Updatable
                          • Device can recover flash failures
                          • Signed Payload

I am running a newer version of fwupd (1.9.8)

$ fwupdmgr --version
compile   com.hughsie.libxmlb           0.3.14
compile   org.freedesktop.Passim        0.1.4
compile   com.hughsie.libjcat           0.1.14
compile   org.freedesktop.fwupd         1.9.8
runtime   org.freedesktop.fwupd-efi     1.4
compile   org.freedesktop.gusb          0.4.7
runtime   org.freedesktop.Passim        0.1.4
runtime   org.freedesktop.gusb          0.4.7
runtime   com.hughsie.libjcat           0.1.14
runtime   org.kernel                    6.6.1-arch1-1
runtime   org.freedesktop.fwupd         1.9.8

Attempting to enroll fails:

$ fprintd-enroll $USER                                                                 
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

Trying to join lvfs-testing fails with a strange error (this worked when I upgraded to the 3.0.3 firmware, so I don’t know what changed):

$ fwupdmgr refresh --force
Updating lvfs-testing
Downloading…             [          |                            ]
Failed to download metadata for lvfs-testing: Failed to download, server response was 404: vendor with access token testing not found

Attempting to flash the cab file returns an inscruitable error:

$ sudo fwupdtool install --allow-reinstall --allow-older goodix-moc-609c-v01000330.cab 
Decompressing…           [ -                                     ]
generic GUID requires a CHID, child, parent or sibling requirement

And, finally, running the fprint-clear-storage tool yields:

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 0x7f6e04f56880 (FpiDeviceGoodixMoc at 0x563c8f4921e0)>
goodixmoc
UIDXXXXXXXX_XXXX_MOC_B0
Traceback (most recent call last):
  File "/tmp/.mount_fprintyQJ7ap//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: error [udev_hotplug_event] ignoring udev action change
libusb: warning [libusb_exit] application left some devices open

IIRC mine also came with 01000320. I deviated a bit from the download-and-local-install method from the knowledgebase and just ran a simpler:

sudo fwupdtool install goodix-moc-609c-v01000330.cab

It complained about something, can’t remember the verbiage, but I remember that afterwards the device was not showing up in fwupdmgr get-devices. It seems that was a side effect of the update itself. After a reboot the device shows up in get-devices with fw version 01000330.

Side issue but probably worth a PSA: fwupd 1.9.8 build in Fedora updates-testing is bugged.

Upstream, fix should be incoming in a new build:

Affected my AMD FW too (get-devices hang).

I ran dnf distro-sync fwupd* back to 1.9.7 and all’s good.

1 Like