I think it would be better if we had a table of strings with the textual representation of all UEFI status codes and have that printed instead of unreadable hex salad.
Mate On Fri, Apr 25, 2025 at 1:18 PM khaliid caliy <khaliidca...@gmail.com> wrote: > > This patch addresses some undescriptive error messages that grub > chainloader command returns when issue encountered, specifically > during the loading of the uefi image or starting the image. > > As per uefi UEFI specification (2.11) boot service functions > `StartImage()` and `LoadImage` return error codes that describe the > issue happened, which the command didn't check and suppressed it. The > current implementation of the command prints some generic error > messages like "unknown error", "cannot load image". Which doesn't tell > much of the nature of the issue and what happened. > > So my patch addresses the command error message and prints the error > based on the return value of the functions or else prints the status > code returned by the functions. > > diff --git a/grub-core/loader/efi/chainloader.c > b/grub-core/loader/efi/chainloader.c > index 869307bf3..c0ef37489 100644 > --- a/grub-core/loader/efi/chainloader.c > +++ b/grub-core/loader/efi/chainloader.c > @@ -91,7 +91,7 @@ grub_chainloader_boot (void *context) > } > } > else > - grub_error (GRUB_ERR_BAD_OS, "unknown error"); > + grub_error (GRUB_ERR_BAD_OS, "cannot start image 0x%" > PRIxGRUB_EFI_UINTN_T, status); > } > > if (exit_data) > @@ -346,8 +346,12 @@ grub_cmd_chainloader (grub_command_t cmd > __attribute__ ((unused)), > { > if (status == GRUB_EFI_OUT_OF_RESOURCES) > grub_error (GRUB_ERR_OUT_OF_MEMORY, "out of resources"); > + else if (status == GRUB_EFI_UNSUPPORTED) > + grub_error(GRUB_ERR_BAD_OS, "image is not supported"); > + else if (status == GRUB_EFI_INVALID_PARAMETER) > + grub_error(GRUB_ERR_BAD_ARGUMENT, "invalid argument"); > else > - grub_error (GRUB_ERR_BAD_OS, "cannot load image"); > + grub_error (GRUB_ERR_BAD_OS, "cannot load image 0x%" > PRIxGRUB_EFI_UINTN_T, status); > > goto fail; > } > > Checking error messages is important and may save time for users or > professionals. So please let me know for any improvement, adjustment > or any other feedback. > > Thanks best regards khaalid > > _______________________________________________ > Grub-devel mailing list > Grub-devel@gnu.org > https://lists.gnu.org/mailman/listinfo/grub-devel _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel