Package: grub-efi-amd64 Version: 2.02~beta3-5 Severity: important Tags: d-i patch
There is a bug in the version of Grub2 shipped in Debian stable that renders grub unable to boot in Apollo Lake systems (this are usually recent netbooks or ultrabooks with Celeron/Atom CPUs). The issue is that the EFI binary generated by Grub2 from Stretch hangs this systems completely. See: https://medium.com/@pawitp/grub-2-issue-on-intel-n4200-97c12d4db8af The fix is simply to backport this patch https://git.savannah.gnu.org/cgit/grub.git/commit/?id=446794de8da4329ea532cbee4ca877bcafd0e534 (which applies cleanly over the grub version in Stretch). I think it will be a good idea to release a new version of Grub2 for stable with this patch and generate a new image of the debian installer. Otherwise it is impossible (well, not impossible, but very difficult) to install Debian Stretch on this systems. Note that Debian testing is not affected, as this patch is already included there. The fix is only necessary for Stretch. I attach a debdiff of a backport I did myself. I have verified that Debian Stretch boots fine on my Yepo 737A laptop (Apollo Lake) with this new version of Grub2.
diff -Nru grub2-2.02~beta3/debian/changelog grub2-2.02~beta3/debian/changelog --- grub2-2.02~beta3/debian/changelog 2017-02-11 16:09:19.000000000 +0100 +++ grub2-2.02~beta3/debian/changelog 2018-09-15 01:51:02.000000000 +0200 @@ -1,3 +1,10 @@ +grub2 (2.02~beta3-6) stable; urgency=medium + + * Non-maintainer upload. + * Fix boot on Apollo Lake EFI systems. + + -- Carlos Alberto Lopez Perez <clo...@igalia.com> Sat, 15 Sep 2018 01:51:02 +0200 + grub2 (2.02~beta3-5) unstable; urgency=medium [ Steve McIntyre ] diff -Nru grub2-2.02~beta3/debian/patches/fix_boot_apollo_lake.patch grub2-2.02~beta3/debian/patches/fix_boot_apollo_lake.patch --- grub2-2.02~beta3/debian/patches/fix_boot_apollo_lake.patch 1970-01-01 01:00:00.000000000 +0100 +++ grub2-2.02~beta3/debian/patches/fix_boot_apollo_lake.patch 2018-09-15 01:49:57.000000000 +0200 @@ -0,0 +1,31 @@ +From 446794de8da4329ea532cbee4ca877bcafd0e534 Mon Sep 17 00:00:00 2001 +From: "David E. Box" <david.e....@linux.intel.com> +Date: Fri, 15 Sep 2017 15:37:05 -0700 +Subject: tsc: Change default tsc calibration method to pmtimer on EFI systems + +On efi systems, make pmtimer based tsc calibration the default over the +pit. This prevents Grub from hanging on Intel SoC systems that power gate +the pit. + +Signed-off-by: David E. Box <david.e....@linux.intel.com> +Reviewed-by: Daniel Kiper <daniel.ki...@oracle.com> +--- + grub-core/kern/i386/tsc.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/grub-core/kern/i386/tsc.c b/grub-core/kern/i386/tsc.c +index 2e85289..f266eb1 100644 +--- a/grub-core/kern/i386/tsc.c ++++ b/grub-core/kern/i386/tsc.c +@@ -68,7 +68,7 @@ grub_tsc_init (void) + #ifdef GRUB_MACHINE_XEN + (void) (grub_tsc_calibrate_from_xen () || calibrate_tsc_hardcode()); + #elif defined (GRUB_MACHINE_EFI) +- (void) (grub_tsc_calibrate_from_pit () || grub_tsc_calibrate_from_pmtimer () || grub_tsc_calibrate_from_efi() || calibrate_tsc_hardcode()); ++ (void) (grub_tsc_calibrate_from_pmtimer () || grub_tsc_calibrate_from_pit () || grub_tsc_calibrate_from_efi() || calibrate_tsc_hardcode()); + #elif defined (GRUB_MACHINE_COREBOOT) + (void) (grub_tsc_calibrate_from_pmtimer () || grub_tsc_calibrate_from_pit () || calibrate_tsc_hardcode()); + #else +-- +cgit v1.0-41-gc330 + diff -Nru grub2-2.02~beta3/debian/patches/series grub2-2.02~beta3/debian/patches/series --- grub2-2.02~beta3/debian/patches/series 2017-02-11 16:03:45.000000000 +0100 +++ grub2-2.02~beta3/debian/patches/series 2018-09-15 01:50:47.000000000 +0200 @@ -57,3 +57,4 @@ efinet_set_network_from_uefi_devpath.patch efinet_set_dns_from_uefi_proto.patch grub-install-efibootmgr-check.patch +fix_boot_apollo_lake.patch
signature.asc
Description: OpenPGP digital signature