Comment 86 for bug 1025555

Revision history for this message
Colin Watson (cjwatson) wrote : Re: [Bug 1025555] Re: Ubuntu i386 images (install media) cannot boot in UEFI mode

It's true that it's easier than we previously thought now that it would
appear that we only principally need to be concerned with systems that
have a 64-bit CPU and 32-bit firmware; there was confusion about this in
the past. That means we get to dodge the problem of certain 32-bit-only
systems that fail to boot images with multiple El Torito boot images.

However, it's not quite as trivial in practice as Jay Davis suggests in
comment #85, when you actually look at the specific tasks we need to
perform. We need two pieces of information before we can make this
work:

 * An interface to discover from userspace whether the system was booted
   using 32-bit or 64-bit UEFI (this is needed in order to install the
   correct GRUB platform packages on the target system; such an
   interface may exist but we do not currently know what it is)

 * Resolution of a claim by Dimitri John Ledkov that CONFIG_EFI_MIXED
   isn't currently working properly on either Ubuntu or Fedora with a
   64-bit kernel, 32-bit firmware, and 32-bit boot loader; he's going to
   follow that up with folks at Intel

We should also make sure that Secure Boot support is in place, both
because it may end up being functionally required on some systems, and
because it makes our code considerably more robust if 32-bit and 64-bit
UEFI work essentially the same way.

Once we have these, then the steps are:

 * Make grub-installer use the interface above to decide which GRUB
   platform packages to install

 * Fix the grub2 packaging to build linuxefi for grub-efi-ia32 as well
   (I just pushed the necessary changes to Debian's grub2 git
   repository)

 * Modify shim to build 32-bit binaries as well, and get them signed

 * Modify shim-signed.postinst to use --target=i386-efi rather than
   --target=x86_64-efi where necessary

 * Modify debian-installer to add binaries from grub-efi-ia32-bin to the
   amd64 images it produces

 * Modify Ubuntu's debian-cd branch to put a 32-bit UEFI image in the
   right place (may require coordinated changes with the previous item;
   debian-installer currently emits grub/efi.img, which isn't very
   specific)

That's past the threshold of changes where we can reasonably just wing
it, so I believe Adam Conrad is going to look into expensing a suitable
system with the aim of being able to test this properly as we make the
necessary changes. I certainly hope we can make this happen for Ubuntu
15.04.