Upgrade BIOS from 3.02 to 3.09 on Fedora - junaruga/framework-laptop-config GitHub Wiki
Upgrade BIOS from 3.02 to 3.09 on Fedora
This note is to upgrade Framework Laptop BIOS from version 3.02 to 3.09 by LVFS.
Guide on the community forum: BIOS 3.09 Beta release
My environment
- Fedora 36
$ cat /etc/fedora-release Fedora release 36 (Thirty Six)
- Kernel: 5.18.10-200.fc36.x86_64
$ uname -r 5.18.10-200.fc36.x86_64
- Window manager: Sway
- fwupd version: 1.8.1
$ rpm -qf /bin/fwupdmgr fwupd-1.8.1-1.fc36.x86_64
- LUKS encryption - Yes. Maybe. Possibly the setting below shows I am using LUKS encryption. Masking the actual name as
luks-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
. https://docs.fedoraproject.org/en-US/quick-docs/encrypting-drives-using-LUKS/$ cat /etc/default/grub | grep luks GRUB_CMDLINE_LINUX="rd.luks.uuid=luks-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX rhgb quiet mem_sleep_default=deep vconsole.font=LatGrkCyr-12x22 nvme.noacpi=1" $ sudo cryptsetup -v status luks-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX /dev/mapper/luks-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX is active and is in use. type: LUKS2 cipher: aes-xts-plain64 keysize: 512 bits key location: keyring device: /dev/nvme0n1p3 sector size: 512 offset: 32768 sectors size: 3903668224 sectors mode: read/write flags: discards Command successful.
Upgrade all the RPM packages to the latest ones
Upgraded all the RPM packages to the latest ones before upgrading BIOS. Just in case.
$ sudo dnf upgrade --refresh
$ sudo reboot
Update BIOS by LVFS
Set DisableCapsuleUpdateOnDisk=true
in /etc/fwupd/uefi_capsule.conf
before applying this update, otherwise the update will fail.
$ cd /etc/fwupd
$ sudo cp -p uefi_capsule.conf uefi_capsule.conf.org
$ sudo vi uefi_capsule.conf
$ diff uefi_capsule.conf.org uefi_capsule.conf
22c22
< #DisableCapsuleUpdateOnDisk=true
---
> DisableCapsuleUpdateOnDisk=true
$ sudo fwupdmgr enable-remote lvfs-testing
╔══════════════════════════════════════════════════════════════════════════════╗
║ Enable new remote? ║
╠══════════════════════════════════════════════════════════════════════════════╣
║ The LVFS is a free service that operates as an independent legal entity and ║
║ has no connection with Fedora Linux. Your distributor may not have verified ║
║ any of the firmware updates for compatibility with your system or connected ║
║ devices. All firmware is provided only by the original equipment ║
║ manufacturer. ║
║ ║
║ This remote contains firmware which is not embargoed, but is still being ║
║ tested by the hardware vendor. You should ensure you have a way to manually ║
║ downgrade the firmware if the firmware update fails. ║
║ ║
║ Enabling this functionality is done at your own risk, which means you have ║
║ to contact your original equipment manufacturer regarding any problems ║
║ caused by these updates. Only problems with the update process itself ║
║ should be filed at https://bugzilla.redhat.com/. ║
╚══════════════════════════════════════════════════════════════════════════════╝
Agree and enable the remote? [Y|n]: Y
Authenticating… [ - ]
Do you want to refresh this remote now? (Requires internet connection) [Y|n]: Y
Authenticating… [ - ]
Downloading… [***************************************]
Downloading… [***************************************]
Downloading… [***************************************]
Successfully enabled and refreshed remote
$ echo $?
0
According to the guide above,
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.
So, I did plug off the AC power cable and reduced the battery to 96%.
$ upower -i $(upower -e | grep BAT) | grep -E '(percentage|capacity)'
percentage: 95%
capacity: 98.4043%
$ sudo dmidecode -s bios-version
03.02
Run the command below to upgrade BIOS, and the output complained with the "Device requires AC power to be connected".
$ sudo time fwupdmgr update
Devices with no available firmware updates:
• UEFI Device Firmware
• UEFI Device Firmware
• WD BLACK SN750 2TB
System Firmware is not currently updatable: Device requires AC power to be connected
Command exited with non-zero status 2
0.05user 0.01system 0:00.09elapsed 72%CPU (0avgtext+0avgdata 23476maxresident)k
0inputs+8outputs (0major+2093minor)pagefaults 0swaps
$ echo $?
2
So, I connected AC power again.
$ upower -i $(upower -e | grep BAT) | grep -E '(percentage|capacity)'
percentage: 94%
capacity: 98.4043%
Then the fwupdmgr update
again with the time
. Note the time
was meaningless as OS restarted directly in the sub-interactive console after this command.
$ sudo time fwupdmgr update
Devices with no available firmware updates:
• UEFI Device Firmware
• UEFI Device Firmware
• WD BLACK SN750 2TB
╔══════════════════════════════════════════════════════════════════════════════╗
║ Upgrade System Firmware from 0.0.3.2 to 0.0.3.9? ║
╠══════════════════════════════════════════════════════════════════════════════╣
║ Due to an incompatibility between our BIOS and recent versions of fwupdmgr ║
║ please set DisableCapsuleUpdateOnDisk=true in /etc/fwupd/uefi_capsule.conf ║
║ before applying this update. ║
║ ║
║ Warning! Update may cause your system to lose boot entries. ║
║ ║
║ • Updating the BIOS firmware will erase NVRAM boot variables. Press F3 ║
║ during boot to manually select a desired boot entry after the update has ║
║ completed it you run into this issue. ║
║ ║
║ Fixes in this release ║
║ ║
║ • This update fixes a number of important CVEs impacting the BIOS. with ║
║ the highest base score of 9.8. ║
║ • Fix battery cycle count is not valid. ║
║ • Fix audio output polarity is inverted from the headphone jack on Tempo ║
║ audio codec mainboards. ║
║ • Fix abnormal shutdown. ║
║ • Fix charging led behavior. ║
║ • Reduce main battery drain in off state. ║
║ • Fix keyboard function keycodes being incorrect or missing. ║
║ • Disable support for 14V-16V charging. ║
║ • Improve recognition of HDMI/DP dongles or adapters when going though ║
║ power cycles. ║
║ • Improve compatibility with some USB-A devices. ║
║ ║
║ New Features and changes ║
║ ║
║ • Added boot from file menu by pressing F3 on boot to access the boot ║
║ from file menu. ║
║ • Added option to control the 8254 clock gate in bios advanced setting ║
║ page to support memtest86++. ║
║ ║
║ Known Issues ║
║ ║
║ • Thunderbolt devices may not be recognized on S4 resume in some cases, ║
║ but can be recognized after replugging the device. ║
║ • Touchpad PS2 fallback mode may not work if the user is in an OS that ║
║ supports the SerialIO driver, and then restarts to an OS that does not ║
║ support the SerialIO driver. ║
║ ║
║ Laptop must remain plugged into a power source for the duration of the ║
║ update to avoid damage. ║
╚══════════════════════════════════════════════════════════════════════════════╝
Perform operation? [Y|n]: Y
Downloading… [***************************************]
Downloading… [** ] Less than oneDownloading… [*** ] Less than oneDownloading… [*** ] Less than oneDownloading… [**** ] Less than oneDownloading… [**** ] Less than oneDownloading… [***** ] Less than oneDownloading… [***** ] Less than oneDownloading… [***** ] Less than oneDownloading… [****** ] Less than oneDownloading… [******* ] Less than oneDownloading… [******* ] Less than oneDownloading… [******* ] Less than oneDownloading… [******** ] Less than oneDownloading… [******** ] Less than oneDownloading… [******** ] Less than oneDownloading… [********* ] Less than oneDownloading… [********* ] Less than oneDownloading… [********** ] Less than oneDownloading… [********** ] Less than oneDownloading… [********** ] Less than oneDownloading… [*********** ] Less than oneDownloading… [*********** ] Less than oneDownloading… [************ ] Less than oneDownloading… [************ ] Less than oneDownloading… [************ ] Less than oneDownloading… [************* ] Less than oneDownloading… [************* ] Less than oneDownloading… [************** ] Less than oneDownloading… [************** ] Less than oneDownloading… [************** ] Less than oneDownloading… [*************** ] Less than oneDownloading… [*************** ] Less than oneDownloading… [*************** ] Less than oneDownloading… [**************** ] Less than oneDownloading… [**************** ] Less than oneDownloading… [***************** ] Less than oneDownloading… [***************** ] Less than oneDownloading… [***************** ] Less than oneDownloading… [****************** ] Less than oneDownloading… [****************** ] Less than oneDownloading… [******************* ] Less than oneDownloading… [******************* ] Less than oneDownloading… [******************* ] Less than oneDownloading… [******************** ] Less than oneDownloading… [******************** ] Less than oneDownloading… [********************* ] Less than oneDownloading… [********************* ] Less than oneDownloading… [********************* ] Less than oneDownloading… [********************** ] Less than oneDownloading… [********************** ] Less than oneDownloading… [*********************** ] Less than oneDownloading… [*********************** ] Less than oneDownloading… [***************************************]
Decompressing… [***************************************]
Authenticating… [***************************************]
Waiting… [***************************************]
Successfully installed firmware
╔══════════════════════════════════════════════════════════════════════════════╗
║ Upgrade UEFI dbx from 33 to 77? ║
╠══════════════════════════════════════════════════════════════════════════════╣
║ This updates the dbx to the latest release from Microsoft. ║
║ ║
║ UEFI dbx and all connected devices may not be usable while updating. ║
╚══════════════════════════════════════════════════════════════════════════════╝
Perform operation? [Y|n]: Y
Downloading… [***************************************]
Decompressing… [***************************************]
Authenticating… [***************************************]
Waiting… [***************************************]
Successfully installed firmware
An update requires a reboot to complete. Restart now? [y|N]: y
The OS is shut down and rebooted. Then the process took around 5 minutes until the login prompt was printed.
Logged in from the login prompt. Checked the BIOS version.
$ sudo dmidecode -s bios-version
03.09
Test
It seems the BIOS setting is reset.
My Left-Ctrl, Fn key swap was reset.
Downgrade BIOS by LVFS
If you want to downgrade the BIOS version. I haven't tried this command.
$ sudo fwupdmgr downgrade