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
- 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.
Upgraded all the RPM packages to the latest ones before upgrading BIOS. Just in case.
$ sudo dnf upgrade --refresh
$ sudo reboot
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
It seems the BIOS setting is reset.
My Left-Ctrl, Fn key swap was reset.
If you want to downgrade the BIOS version. I haven't tried this command.
$ sudo fwupdmgr downgrade