]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
efi: Don't display a uefi-firmware entry if it's not supported
authorRobbie Harwood <rharwood@redhat.com>
Thu, 18 Aug 2022 17:50:13 +0000 (13:50 -0400)
committerDaniel Kiper <daniel.kiper@oracle.com>
Fri, 19 Aug 2022 23:26:06 +0000 (01:26 +0200)
Add a new --is-supported option to commands/efi/efifwsetup and
conditionalize display on it.

Signed-off-by: Robbie Harwood <rharwood@redhat.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
grub-core/commands/efi/efifwsetup.c
util/grub.d/30_uefi-firmware.in

index 7b6d4bc9fe4c7d3dabba2f51f1495caba50b1653..de66c3035ea7c1fff1b692d303e2b214b86f7842 100644 (file)
@@ -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"));
index b6041b55e2a0fad94e3622ef2c790db51d08ad0e..c1731e5bbbb33191f11eadc7773bf944be1ef1ac 100644 (file)
@@ -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
        }