Wanted to provide some steps for those of you that don’t want to update with a usb stick and have an appropriately sized ESP/EFI partition to hold image updates:
I store the images in a directory for the hardware type, eg:
# ls /boot/efi/EFI/Insyde/
CapsuleApp.efi H2OFFT-Sx64.efi firmware.cap startup.nsh
FWUpdLcl.efi bootx64.efi hx20.3.20.bin winux.bin
Fwupdate.bin error.log old
I also have created an EFI shell file
% cat /etc/grub.d/31_efi_shell
#! /bin/sh
# SPDX-License-Identifier: LGPL-2.1+
set -e
[ -d ${pkgdatadir:?} ]
# shellcheck source=/dev/null
. "$pkgdatadir/grub-mkconfig_lib"
echo "Adding efi shell" >&2
cat << EOF
menuentry 'EFI Shell ' \$menuentry_id_option 'jared' {
EOF
${grub_probe:?} --version > /dev/null
prepare_grub_to_access_device "$(${grub_probe} --target=device /boot/efi/)" | sed -e "s/^/\t/"
cat << EOF
set root=(hd0,gpt1)
chainloader /EFI/BOOT/BOOTX64.EFI
}
EOF
The file that is in /boot/efi/EFI/BOOT/BOOTX64.EFI comes from the zip file.
For those of you that date back to the DOS days you can see what I did here. You could unpackage things in what will end up FS0:/EFI/BOOT/ as well if you want it to automatically update semi-unattended and you could tell grub to boot thatles next time around.
If you edit the startup.nsh and remove the logo file winux.bin you will get the text based update and be able to see the various components update - I would suggest removing this but i’m also a grumpy old guy who doesn’t load remote images and thinks text/html rendering in e-mail is an abomination ![]()
Thanks @Kieran_Levin