From: Robbie Harwood Date: Thu, 18 Aug 2022 17:50:13 +0000 (-0400) Subject: efi: Don't display a uefi-firmware entry if it's not supported X-Git-Tag: grub-2.12-rc1~273 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=26031d3b101648352e4e427f04bf69d320088e77;p=thirdparty%2Fgrub.git efi: Don't display a uefi-firmware entry if it's not supported Add a new --is-supported option to commands/efi/efifwsetup and conditionalize display on it. Signed-off-by: Robbie Harwood Reviewed-by: Daniel Kiper --- diff --git a/grub-core/commands/efi/efifwsetup.c b/grub-core/commands/efi/efifwsetup.c index 7b6d4bc9f..de66c3035 100644 --- a/grub-core/commands/efi/efifwsetup.c +++ b/grub-core/commands/efi/efifwsetup.c @@ -40,6 +40,9 @@ grub_cmd_fwsetup (grub_command_t cmd __attribute__ ((unused)), grub_size_t oi_size; static grub_efi_guid_t global = GRUB_EFI_GLOBAL_VARIABLE_GUID; + if (argc >= 1 && grub_strcmp(args[0], "--is-supported") == 0) + return !efifwsetup_is_supported (); + if (!efifwsetup_is_supported ()) return grub_error (GRUB_ERR_INVALID_COMMAND, N_("reboot to firmware setup is not supported by the current firmware")); diff --git a/util/grub.d/30_uefi-firmware.in b/util/grub.d/30_uefi-firmware.in index b6041b55e..c1731e5bb 100644 --- a/util/grub.d/30_uefi-firmware.in +++ b/util/grub.d/30_uefi-firmware.in @@ -31,7 +31,8 @@ LABEL="UEFI Firmware Settings" gettext_printf "Adding boot menu entry for UEFI Firmware Settings ...\n" >&2 cat << EOF -if [ "\$grub_platform" = "efi" ]; then +fwsetup --is-supported +if [ "\$grub_platform" = "efi" -a "\$?" = 0 ]; then menuentry '$LABEL' \$menuentry_id_option 'uefi-firmware' { fwsetup }