On Wed, May 03, 2023 at 03:50:09PM +0200, Oliver Steffen wrote: > This is a step towards supporting unified kernel images (UKI) in Grub. > > Add a new module named bli. It implements a small but quite useful part > of the Boot Loader Interface [0]. This interface uses EFI variables for > communication between the boot loader and the operating system. > > This module sets two EFI variables under the vendor GUID > 4a67b082-0a4c-41cf-b6c7-440b29bb8c4f: > > - LoaderInfo: contains GRUB + <version number>. > This allows the running operating system to identify the boot loader > used during boot. > > - LoaderDevicePartUUID: contains the partition UUID of the > EFI System Partition (ESP). This is used by > systemd-gpt-auto-generator [1] to find the root partitions (and > others too), via partition type IDs [2]. This is especially useful for > UKIs, where the kernel command line is fixed and usually does not > contain any information about the root partition. > > This module is only available on EFI platforms. > > This series also unifies the GUID implementations and introduces a > printf format specifier for them: %pG.
Sadly there are still some problems with this patch set... :-( First of all please do rebase on latest master because there are some conflicts due to recently merged LoongArch support. Please add more missing static keywords to the GUID assignments in the patch #2, e.g.: @@ -139,12 +139,12 @@ grub_cmd_lssal (struct grub_command *cmd __attribute__ ((unused)), const grub_efi_system_table_t *st = grub_efi_system_table; grub_efi_configuration_table_t *t = st->configuration_table; unsigned int i; - grub_efi_packed_guid_t guid = GRUB_EFI_SAL_TABLE_GUID; + grub_guid_t guid = GRUB_EFI_SAL_TABLE_GUID; Please do s/cannot opening/cannot open/ in the patch #8. The build for arm-linux-gnueabihf target complains: arm-linux-gnueabihf-gcc kern/misc.c: In function ‘grub_vsnprintf_real’: kern/misc.c:1063:28: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] grub_guid_t *guid = (grub_guid_t *) curarg; I think s/(grub_guid_t *) curarg/(grub_guid_t *)(grub_addr_t) curarg/... I hope you checked "pG" format specifier prints GUIDs correctly. And last but not least, sadly you broke documentation build... grub.texi:3277: warning: node next `Environment' in menu `Commands' and in sectioning `Modules' differ grub.texi:3893: warning: unreferenced node `Modules' grub.texi:3893: warning: node `Commands' is next for `Modules' in sectioning but not in menu grub.texi:3893: warning: node `Environment' is prev for `Modules' in sectioning but not in menu grub.texi:3893: warning: node `Top' is up for `Modules' in sectioning but not in menu grub.texi:69: node `Top' lacks menu item for `Modules' despite being its Up target grub.texi:3916: warning: node prev `Commands' in menu `Environment' and in sectioning `Modules' differ Daniel _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel