Updating BIOS on Linux

November 12 2024 10:13pm • Est. Read Time: 4 MIN

There are two release types we use at Framework to get our customers onto the latest BIOS releases. This KB article will walk you through the two BIOS types we offer.

- Public BIOS releases.

- Beta BIOS releases.

And with that, there are two installation methods.

- LVFS: This can be done from a Linux terminal. 

- EFI Shell: This is done with a USB key.


NOTE: some BIOS releases will NOT be available via LVFS, so be sure to read those release notes carefully. Also, you do NOT need to disable secure boot for LVFS.


Linux/LVFS Released BIOS


For this section on LVFS, we'll be addressing the public release of BIOS.

Ubuntu LTS

Open a terminal, follow these directions exactly.

fwupdmgr refresh --force

then

fwupdmgr get-updates

then

fwupdmgr update

This will take awhile and you can expect it to reboot on its own. Do not force the power off as this will interrupt the process - allow rebooting to happen naturally.

Fedora

Open a terminal, follow these directions exactly.

fwupdmgr refresh --force

Next, you will run:

fwupdmgr get-updates

then lastly

fwupdmgr update 

This should complete, then you will choose to reboot.

Reboot



NOTE: LVFS may not update if the battery is 100% charged. LVFS uses the battery status to determine if it is safe to apply updates. However if our battery is at 100% and the charger is off, we set the battery charging status to false. In this case you can discharge your battery a few percent, then plug in AC again and run fwupdmgr update.


Linux/LVFS Beta Testing BIOS

For this section on LVFS, we'll be addressing the beta release (testing) of BIOS.

- Follow the above instructions for Ubuntu and Fedora.

- You can enable updates from testing by running the following from the terminal:

fwupdmgr enable-remote lvfs-testing

- You will be asked to confirm with Y once, and then once again.

- You will then see “Successfully enabled and refreshed remote.

Now that you have the more current version of fwupd installed after rebooting as instructed above. We’ll run the next steps:

fwupdmgr refresh --force

then

fwupdmgr get-updates

then

fwupdmgr update

This will take awhile and you can expect it to reboot on its own. Do not force the power off as this will interrupt the process - allow rebooting to happen naturally.


NOTE:LVFS may not update if the battery is 100% charged. LVFS uses the battery status to determine if it is safe to apply updates. However if our battery is at 100% and the charger is off, we set the battery charging status to false. In this case you can discharge your battery a few percent, then plug in AC again and run fwupdmgr update.



Linux/Other/UEFI Shell update

First let's make sure you are absolutely sure which Framework motherboard you are using and which BIOS is currently installed. This method can be used for Beta releases and for Public BIOS releases.

Ubuntu users:

sudo apt install lshw dmidecode -y && sudo dmidecode | grep -A3 'Vendor:\|Product:' && sudo lshw -C cpu | grep -A3 'product:\|vendor:'


Fedora users: 

sudo dnf install lshw dmidecode -y && sudo dmidecode | grep -A3 'Vendor:\|Product:' && sudo lshw -C cpu | grep -A3 'product:\|vendor:'


The above commands will give you your product type and also your BIOS version.

Download the EFI link for the BIOS you wish to upgrade to. Remember, make sure it's the correct BIOS for the correct motherboard.

Instructions for EFI shell update:

- Download the correct BIOS zip after reading the release notes for your BIOS update. 

- Extract contents of zip folder to a FAT32 formatted USB drive. Cleanly unmount the drive before physically removing it, otherwise the BIOS update may not function correctly. 

- Disable secure boot in BIOS if you have not done so already as described above.

NOTE: You only do this for USB flash drive BIOS updates. For LVFS, secure boot can remain enabled and unchanged.

- Boot your system while pressing F12 just before the Framework splash screen and boot from the thumb drive.

- Let startup.nsh run automatically.

- Follow the instructions to install the update.

- Some users may choose to re-enable secure boot once this is complete. This will depend on your operating system.

Specifically how to disable Secure Boot in the BIOS

On AMD Ryzen 7040 Series

- Boot into BIOS by tapping F2 just before the Framework splash screen.

- Arrow down to Administer Secure Boot. Press enter.

- Arrow down to Enforce Secure Boot. Press enter, select Disabled, press enter.

- Press F10 to save and reboot. With Yes selected, press Enter.

On 13th Gen:

- Boot into BIOS by tapping F2 just before the Framework splash screen.

- Arrow down to Administer Secure Boot. Press enter.

- Arrow down to Enforce Secure Boot. Press enter, select Disabled, press enter.

- Press F10 to save and reboot. With Yes selected, press Enter.

On 12th Gen:

- Boot into BIOS by tapping F2 just before the Framework splash screen.

- Left arrow over to Security. 

- Arrow all the way down to Secure Boot. Press enter.

- Select Enforce Secure Boot, press enter, select Disable, press enter.

- Press F10 to save and reboot. With Yes selected, press Enter.

On 11th Gen:

- Boot into BIOS by tapping F2 just before the Framework splash screen.

- Left arrow over to Security. 

- Arrow all the way down to Secure Boot. Press enter.

- Select Enforce Secure Boot, press enter, select Disable, press enter.

- Press F10 to save and reboot. With Yes selected, press Enter.

Available BIOS updates

You will find available BIOS update files here.