Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 6 Sep 2024 23:08:04 +0100
From:      void <void@f-m.fm>
To:        freebsd-current@freebsd.org
Subject:   Re: Loader needs to be updated message
Message-ID:  <Ztt9RFQ4DzI5kKbz@int21h>
In-Reply-To: <20240907025052.c93cd502dba60910f47a4c00@dec.sakura.ne.jp>
References:  <ZtsN-Z-qDfgU4zzk@int21h> <CANCZdfpgCyLOPrhnuWaHL_Sb6qDR9Pdqxy9CnPcxOq6AOehrYA@mail.gmail.com> <ZtsVQav0_oHU2H0x@int21h> <CANCZdfoH2_UhjpMhDtGdkH04zHUZc4SS6Ua80iSBoToJQBxMPA@mail.gmail.com> <20240907025052.c93cd502dba60910f47a4c00@dec.sakura.ne.jp>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Sep 07, 2024 at 02:50:52AM +0900, Tomoaki AOKI wrote:
>
>Some additional explanation.
>
>Before, loader.efi itself could not be kicked directly from UEFI
>firmware and needs boot1.efi to kick loader.efi.
>In this case, boot code in ESP (uEFI System Partition, formatted with
>FAT32, 16 or possibly 12) was completely different
>with /boot/loader.efi.
>
>But now (by default for new UEFI installations), loader.efi can be
>kicked directly by UEFI firmware if it is put with proper directory
>and name in ESP. This would be what confusing you. With
>`make installworld` or usual freebsd-update, everything need updating
>in /boot/ should be updated, but nothing in ESP is updated
>automatically. This causes what you're experiencing.
>
>Unfortunately, how loader.efi should be installed in ESP depends on the
>environment it is installed. Old or buggy UEFI firmware could force you
>installing it as, for example for amd64, BOOT/EFI/BOOTx64.EFI in ESP to
>work, but usually BOOT/FreeBSD/loader.efi would work if UEFI boot
>manager is properly configured for it.
>Some would need ESP on all drives and keep all of them in sync.
>Yes, hard to automate properly for every possible situations,
>unlike /boot/.

Thanks for the explanation.

The machine is headless. I grab the console from another pi via a
usb <-> ttl cable. I've always associated (probably wrongly) UEFI with 
graphical-based installs and had to make a boot.config file in / to
always use -h in order to get console output down the serial while booting.

I'd use 'legacy' on this hardware if possible, rather than UEFI.

if it's relevant, in /boot/efi there's, amongst other files, bcm2711-rpi-4-b.dtb
bootcode.bin armstub8.bin fixup*.dat start*.elf u-boot.bin ubootefi.var

These are all from the ESP from the image
FreeBSD-15.0-CURRENT-arm64-aarch64-RPI-20240725-82283cad12a4-271360 [1]

Maybe I need to download latest -current snapshot and copy the contents of its ESP over to
update the loader? 

[1] running bsdinstall [2] doesn't take care of the ESP completely. One has to run bsdinstall
     to the desired disk, then boot with the original image running, then copy the ESP from the
     original image to the ESP partition on the new disk, then reboot after unplugging the original
     image.

[2] this was to facilitate a zfs-on-root install.

[3] what I am trying to do now is source update the system in-situ in the normal way, on reboot
     the error popped up in the (ascii) beastie menu. It persists even after following the instructions
     in man 8 loader.efi
-- 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Ztt9RFQ4DzI5kKbz>