diff options
2 files changed, 48 insertions, 0 deletions
diff --git a/meta-efi-secure-boot/recipes-bsp/grub/grub-efi-efi-secure-boot.inc b/meta-efi-secure-boot/recipes-bsp/grub/grub-efi-efi-secure-boot.inc index c3e7a9c..2477a2e 100644 --- a/meta-efi-secure-boot/recipes-bsp/grub/grub-efi-efi-secure-boot.inc +++ b/meta-efi-secure-boot/recipes-bsp/grub/grub-efi-efi-secure-boot.inc | |||
| @@ -28,6 +28,7 @@ SRC_URI_append_class-target += "\ | |||
| 28 | file://Grub-get-and-set-efi-variables.patch \ | 28 | file://Grub-get-and-set-efi-variables.patch \ |
| 29 | file://uefi_verify.patch \ | 29 | file://uefi_verify.patch \ |
| 30 | file://0001-grub-verify-Add-strict_security-variable.patch \ | 30 | file://0001-grub-verify-Add-strict_security-variable.patch \ |
| 31 | file://0001-kern-efi-init.c-disable-inside-lockdown-and-shim_loc.patch \ | ||
| 31 | file://grub-efi.cfg \ | 32 | file://grub-efi.cfg \ |
| 32 | file://boot-menu.inc \ | 33 | file://boot-menu.inc \ |
| 33 | ${@d.getVar('GRUB_MOKVERIFY_PATCH', True) if d.getVar('UEFI_SELOADER', True) == '1' else ''} \ | 34 | ${@d.getVar('GRUB_MOKVERIFY_PATCH', True) if d.getVar('UEFI_SELOADER', True) == '1' else ''} \ |
diff --git a/meta-efi-secure-boot/recipes-bsp/grub/grub-efi/0001-kern-efi-init.c-disable-inside-lockdown-and-shim_loc.patch b/meta-efi-secure-boot/recipes-bsp/grub/grub-efi/0001-kern-efi-init.c-disable-inside-lockdown-and-shim_loc.patch new file mode 100644 index 0000000..83f5899 --- /dev/null +++ b/meta-efi-secure-boot/recipes-bsp/grub/grub-efi/0001-kern-efi-init.c-disable-inside-lockdown-and-shim_loc.patch | |||
| @@ -0,0 +1,47 @@ | |||
| 1 | From ca81ba93b6536916673b6cb9cb6aef7652aee971 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Yi Zhao <yi.zhao@windriver.com> | ||
| 3 | Date: Wed, 7 Apr 2021 11:00:37 +0800 | ||
| 4 | Subject: [PATCH] kern/efi/init.c: disable inside lockdown and shim_lock | ||
| 5 | verifiers | ||
| 6 | |||
| 7 | The lockdown support[1] and secure boot detection[2] have been added to | ||
| 8 | grub 2.06. These verifiers are registered when UEFI Secure Boot is | ||
| 9 | enabled. Unfortunately, they conflict with the current MOK2 Verify | ||
| 10 | mechanism. So disable them when enable SELoader. | ||
| 11 | |||
| 12 | Fixes grub error: | ||
| 13 | error: failed to verify kernel /bzImage | ||
| 14 | |||
| 15 | [1] http://git.savannah.gnu.org/cgit/grub.git/commit/?id=578c95298bcc46e0296f4c786db64c2ff26ce2cc | ||
| 16 | [2] http://git.savannah.gnu.org/cgit/grub.git/commit/?id=d7e54b2e5feee95d2f83058ed30d883c450d1473 | ||
| 17 | |||
| 18 | Upstream-Status: Inappropriate [embedded specific] | ||
| 19 | |||
| 20 | Signed-off-by: Yi Zhao <yi.zhao@windriver.com> | ||
| 21 | --- | ||
| 22 | grub-core/kern/efi/init.c | 2 ++ | ||
| 23 | 1 file changed, 2 insertions(+) | ||
| 24 | |||
| 25 | diff --git a/grub-core/kern/efi/init.c b/grub-core/kern/efi/init.c | ||
| 26 | index 7facacf..67b18e9 100644 | ||
| 27 | --- a/grub-core/kern/efi/init.c | ||
| 28 | +++ b/grub-core/kern/efi/init.c | ||
| 29 | @@ -95,6 +95,7 @@ grub_efi_init (void) | ||
| 30 | /* Initialize the memory management system. */ | ||
| 31 | grub_efi_mm_init (); | ||
| 32 | |||
| 33 | +#if 0 | ||
| 34 | /* | ||
| 35 | * Lockdown the GRUB and register the shim_lock verifier | ||
| 36 | * if the UEFI Secure Boot is enabled. | ||
| 37 | @@ -104,6 +105,7 @@ grub_efi_init (void) | ||
| 38 | grub_lockdown (); | ||
| 39 | grub_shim_lock_verifier_setup (); | ||
| 40 | } | ||
| 41 | +#endif | ||
| 42 | |||
| 43 | efi_call_4 (grub_efi_system_table->boot_services->set_watchdog_timer, | ||
| 44 | 0, 0, 0, NULL); | ||
| 45 | -- | ||
| 46 | 2.17.1 | ||
| 47 | |||
