Updating Fingerprint Reader Firmware on Linux for all Framework Laptops

September 30 2024 4:12pm • Est. Read Time: 4 MIN

This fingerprint firmware update guide is for Framework Laptops


- First section is for newcomers who want to update their fingerprint reader successfully, with a little extra help.

- Latter section towards the bottom provides the manual method for those comfortable with GUIDs, fwupdmgr, etc.

- This guide assumes you are using Ubuntu 24.04 or greater or Fedora 40 or greater. 


Determine your current firmware version - Newer Linux Users


The command to check your current version. Simply copy, paste into the terminal and press enter:

GUID=$(fwupdmgr get-devices | grep -A 6 -E "fingerprint" | grep -i "GUID" | awk -F ': ' '{print $2}' | awk '{print $1}'); clear && echo "fwupdmgr get-devices $GUID" && fwupdmgr get-devices $GUID


This will provide you with important details such as the Current Version status. I recommend writing this down should you need support later as this is the current firmware version you are using.

The one line script above will ensure you are only updating your fingerprint device and nothing else. It does this by grabbing the GUID based on discovery of such from the section named "Fingerprint."

You will be presented with an output that looks something like this.


Important note: Firmware versions will vary between Framework Laptops. As mentioned above, it's worth noting the current version of your firmware marked at "Current Version."


Updating your firmware for your fingerprint reader - Newer Linux Users


To check for firmware updates, we simply run this script. Paste, press enter.

GUID=$(fwupdmgr get-devices | grep -A 6 -E "fingerprint" | grep -i "GUID" | awk -F ': ' '{print $2}' | awk '{print $1}'); clear && echo "fwupdmgr get-devices $GUID" && fwupdmgr get-updates $GUID


As we're going to be on the stable channel for LVFS by default, odds are fair you may check for firmware updates and find the following. Notice how no updates are currently available. This is expected as clearly, the stable LVFS channel does not have updates for the fingerprint reader at the time of this guide's creation. This is likely to change, so checking back is worthwhile.


Engineering post from the Community Forum asking for testing - Newer Linux Users


From time to time, you may come across official requests from the engineering team to help test fingerprint firmware. Worth noting, we do internal testing. But we're big believers that including the community is good as well.

This means enabling the LVFS testing channel. If you are comfortable in doing so or, have been told by a member of support or the engineering team to enable the testing channel for testing or to apply a security update, then this next section is for you.

To enable the testing channel, copy/paste, press enter and select Y as promoted followed by enter for each time:

fwupdmgr enable-remote lvfs-testing && fwupdmgr refresh --force


Once completed, it will look something like this below.



Now let's check for available updates for your fingerprint reader again, this time from the LVFS testing channel. Same as before, copy/paste, enter key.


GUID=$(fwupdmgr get-devices | grep -A 6 -E "fingerprint" | grep -i "GUID" | awk -F ': ' '{print $2}' | awk '{print $1}'); clear && echo "fwupdmgr get-devices $GUID" && fwupdmgr get-updates $GUID


In this example, we see on the testing channel that there is a new firmware release available. 



Great. Let's update now.

GUID=$(fwupdmgr get-devices | grep -A 6 -E "fingerprint" | grep -i "GUID" | awk -F ': ' '{print $2}' | awk '{print $1}'); clear && echo "fwupdmgr update $GUID" && fwupdmgr update $GUID




Once this is completed, you may reboot if prompted to do so. Then once rebooted, open a terminal again and run get-devices again.

GUID=$(fwupdmgr get-devices | grep -A 6 -E "fingerprint" | grep -i "GUID" | awk -F ': ' '{print $2}' | awk '{print $1}'); clear && echo "fwupdmgr get-devices $GUID" && fwupdmgr get-devices $GUID


Now we should see this if the update was applied successfully.



If you are asked to upload a report to LVFS, we would appreciate it as it allows us to spot any challenges and make sure everything went along smoothly. It will ask you with a Y or a N. Just press Y and enter to complete. This will happen with a few repetitive steps.




Determine your current firmware version - Advanced Linux User Guide


The command to check your current version.

fwupdmgr get-devices

(Look for your fingerprint reader GUID)



Updating your firmware for your fingerprint reader - Advanced Linux User Guide


fwupdmgr get-updates GUID-here


If update is available, then:

fwupdmgr update GUID-here


And then see if it applied the update (reboot if prompted):

fwupdmgr get-devices


Need the testing channel with LVFS?

fwupdmgr enable-remote lvfs-testing 

then

fwupdmgr refresh --force



Troubleshooting


- You want to disable the testing channel with LVFS.

fwupdmgr disable-remote lvfs-testing --force && fwupdmgr refresh --force

Check for the line Enabled: false for lvfs-testing.


- This does not seem to be updating.

1) Make sure an update is available.

2) If one is, make sure you're attached to power.

3) Rerun the update per the instructions above.

4) You used the manual method. It's entirely possible you are selecting the wrong GUID or missed a step. Use the scripted method at the top of this guide. If using the scripted method, try the manual method.


- My fingerprint reader is not being detected? 

Check get-devices once more, make sure it's reflected there?

fwupdmgr get-devices | grep -A 6 -i "fingerprint"

If it is not, this may indicate a firmware error and we will want to see if it's detected on the hardware side of things. 

sudo lsusb | grep -i 'Goodix'


If neither indicate the presence of a fingerprint reader, please contact support.