Failure to upgrade to BIOS 3.10! Running Fedora 36 (EDIT: resolved; see below)
- Secure boot is off
- uncommented “DisableCapsuleUpdateOnDisk=true” line in /etc/fwupd/uefi_capsule.conf
- made sure to raise the 80% charge limit to 100% so the battery was actively charging when I attempted my upgrades.
Tried “fwupdmgr update”. After “Upgrade System Firmware from 0.0.3.7 to 0.0.3.10” it offers also an “Upgrade UEFI dbx from 33 to 77”, but this fails:
Blocked executable in the ESP, ensure grub and shim are up to date: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: No such interface “org.freedesktop.UDisks2.Filesystem” on object at path /org/freedesktop/UDisks2/block_devices/nvme0n1p2
restarting the system does boot differently: some tiny-print version number appears in the top-left. But after that the system reboots and I’m back to my normal grub and my BIOS is still at 3.7.
EDIT: The “UEFI dbx” problems seems to have gone away by doing a “fwupdmgr update --force”. Now running “fwupdmgr update” or fwupdmgr install --allow-older" seems to correctly schedule the System Firmware Upgrade and offer to reboot (it didn’t before; apparently due to the dbx failure). Same problem occurs then, though: system reboots, there’s a tiny version number in the upper-left of the “Framework” boot screen, system reboots almost immediately, and I’m back at grub.
Also tried EFI Shell (which successfully got me to 3.7 in January). I can successfully boot into the EFI shell from USB. It gives me the screen:
Please do not remove the AC power!
Insyde H20FFT (Flash Firmware Tool) Version 2.12
Copyright (C) 2000-2020. Insyde Software Corp. All Rights Reserved
Current BIOS Model Name: GFW30
New BIOS Model Name: GFW30
Current BIOS Version: GFW30.03.07
New BIOS Version: GFW30.03.10
Error:
Update BIOS failed!
Shell> _
No indication about what failed, unfortunately.
EDIT: I finally did succeed via the fwupd route, but I’m not entirely sure what did the trick. Uninstalling an old kernel did not seem to do much for changing the space used on /boot/efi
(/boot and /boot/efi are separate partitions), but there was a whole “Microsoft” subdirectory as well, and removing that did free up some space.
When I retried fwupdmgr after that, things did work. So perhaps filesystem space was the problem? It would mean that the firmware updater itself needs space, since I went from 70% full to 50% full on /boot/efi: by no means full! If the EFIShell updater failed for the same reason, then apparently it DOES end up using the disk as well, even though it starts from a USB drive.
My partition table looks like:
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 206847 204800 100M EFI System
/dev/nvme0n1p2 206848 2158591 1951744 953M EFI System
/dev/nvme0n1p3 2158592 4255743 2097152 1G Linux filesystem
/dev/nvme0n1p4 4255744 780214271 775958528 370G Linux filesystem
where the first partition is the one that is mounted as /boot/efi. The 100M is a bit small! I think it’s a remnant of the Windows install and that I made p2 when I partitioned the disk for linux (at that point it seemed the p1 partition was “protected”). Either it never used the p2 partition properly for EFI or the F35->F36 upgrade confused the system. It would explain why there was a Microsoft directory there in the first place … As a plus: by removing that Microsoft directory in /boot/efi I’m now finally rid of the defunct Windows boot entry.