Bug 4696 - R4 32-bit doesn't support EFI
: R4 32-bit doesn't support EFI
Status: RESOLVED FIXED
Product: Desktop Bugs
Classification: ROSA Desktop
Component: Main Packages
: Fresh
: i586 Linux
: Low minor
: ---
Assigned To: Konstantin Vlasov
: ROSA Linux Bugs
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2014-11-18 21:52 MSK by Andrey Ponomarenko
Modified: 2016-03-17 00:14 MSK (History)
3 users (show)

See Also:
RPM Package:
ISO-related:
Bad POT generating:
Upstream:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrey Ponomarenko 2014-11-18 21:52:46 MSK
Description of problem:

32-bit image of R4 doesn't support EFI.

Version-Release number of selected component (if applicable): R4


How reproducible: always


Steps to Reproduce:
1. Enable UEFI boot in BIOS
2. Try to boot from USB flash drive with ROSA R4
3.
Comment 1 Konstantin Vlasov 2014-11-18 22:53:43 MSK
This was a deliberate decision (though I don't know for what reasons).
Comment 2 Konstantin Vlasov 2014-11-20 05:12:13 MSK
Well, I performed some tests along with some googling, and here are the results. I'm not completely sure of my conclusions, but it seems that:
1) UEFI can load only EFI binaries of the same architecture. That is, it is impossible to boot 64-bit UEFI machine using 32-bit bootloader (shim, grub2), and vice versa.
2) 32-bit UEFI machines are not very frequent now, but they do exist in the wild (people report of such Atom-based machines). They may even contain a 64-bit-capable processor, but still be 32-bit UEFI and, therefore, require a 32-bit EFI bootloader!
3) It is definitely possible to boot 32-bit kernel from 64-bit bootloader - at least, on some machines. I successfully checked it on Lenovo U310 notebook.
4) People in the Internet report that it is also possible to boot 64-bit kernel from 32-bit bootloader.
5) Some comments from the author of shim: http://mjg59.dreamwidth.org/26734.html

So, the simplest way would be to add a 64-bit EFI bootloader to 32-bit ISO: most UEFI systems are 64-bit, so it will work fine. However, then our images won't boot with 32-bit UEFI.

More robust approach would be, to supply both 32- and 64-bit EFI bootloaders in each of the 32- and 64-bit iso images: when booting from this image, UEFI will automatically select the bootloader with the appropriate architecture (BOOTIA32.efi+grubia32.efi or BOOTX64.efi+grubx64.efi), which in turn will load the Linux kernel of a (possibly) different bitness. However, this way is quite bumpy:
https://bugs.launchpad.net/ubuntu-cdimage/+bug/1025555/comments/86

Besides, we need to have a computer with 32-bit UEFI for testing, and I'm not sure we have one. Without it I'm not sure it's feasible to implement such drastic changes.
Comment 3 Denis Silakov 2016-03-17 00:14:30 MSK
We have a possibility to build 32bit images with UEFI now and have an official ISO for Gnome R7:

http://mirror.yandex.ru/rosa/rosa2014.1/iso/ROSA.Fresh.R7/ROSA.FRESH.GNOME.R7.i586.uefi.iso

We'll provides such images for further releases of all editions. If somebody needs some other edition (KDE/LXQt) right now, feel free to send a request and we'll build one for you. As for this bug, I think we can close it now.