[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#908852: Debian Stretch can't be installed or booted on Apollo Lake systems.



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 <clopez@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.box@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.box@linux.intel.com>
+Reviewed-by: Daniel Kiper <daniel.kiper@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

Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: