Support 32-bit UEFI [$100]

Bug #1519733 reported by Cody Garver
16
This bug affects 2 people
Affects Status Importance Assigned to Milestone
elementary OS
Fix Released
Medium
PinGUY

Bug Description

Converted from launchpad question to bug report:

Are there any plans to support 32-bit UEFI? Elementary OS would be a great option for the many low powered Bay Trail Atom machines but these only have a 32-bit UEFI (despite a 64-bit CPU) so can't boot Elementary OS.

It would be great to have UEFI support for the 32-bit version.

Cody Garver (codygarver)
Changed in elementaryos:
importance: Undecided → Medium
milestone: none → loki-beta1
status: New → Triaged
Revision history for this message
Danielle Foré (danrabbit) wrote :
summary: - Support 32-bit UEFI
+ Support 32-bit UEFI [$100]
Changed in elementaryos:
assignee: nobody → PinGUY (antoni-norman)
Revision history for this message
PinGUY (antoni-norman) wrote :

Code done and released.
Also have some patches for Bay Trail Atom's.
https://sourceforge.net/projects/pinguy-os/files/Atom_Patches/

Revision history for this message
PinGUY (antoni-norman) wrote :
Changed in elementaryos:
milestone: loki-beta1 → loki-rc1
Revision history for this message
PinGUY (antoni-norman) wrote :

Just add this to the ISO root dir: http://pinguyos.com/files/ISO_Boot&EFI.zip

Then edit grub.cfg file with your info. This will allow the iso to boot on 32-bit systems.
The main thing that achieves this is the /EFI/BOOT/bootia32.efi file.

As for the packages in the pool for offline install you will need to edit your builder script to include the packages shown here: http://pastebin.com/jBLtUV0U

You will need different packages for 64-bit and 32-bit ISO's. That snippet of code will automate it the process.

As mentioned in earlier posts on G+, if you want to use a startup.nsh file so EFI only bios (as seen in tablets) work you need to create a file ‘startup.nsh’ in /boot/efi and place the following string in:

64-Bit
Code:
fs0:\EFI\ubuntu\grubx64.efi

32-Bit
Code:
\EFI\custom\grubia32.efi

Its up to you how you want to do that but I do it by making a script that edits /usr/share/ubiquity/apt-setup

I use something like this: http://pastebin.com/AZ0MXe9G

This should be all the info you need to get 32-bit UEFI systems to boot and install. As long as you include these packages in the 32-bit iso (efibootmgr grub-common grub-efi grub-efi-ia32 grub-efi-ia32-bin grub-pc-bin grub-pc grub2-common grub-gfxpayload-lists libefivar0 mokutil secureboot-db). Offline install will work.

Revision history for this message
Cody Garver (codygarver) wrote :

PinGUY, I assumed you stopped working on this bug since you stopped replying to my posts on the Google+ thread where we were discussing this bug.

My remaining request is in the very bottom of your screenshot of our conversation that you've been posting since then, where it says "any ideas?".

It's about this: do you have any ideas how we could keep the 32-bit and 64-bit paths in a single startup.nsh file using architecture detection logic?

So we don't have to generate it on the fly in the build system. For info on my reasoning, check your screenshot.

As in the past, snippets like those above from your Ubuntu ISO remixing script are not directly applicable to our Debian Live Build system, but fortunately I've written code for this already and shared it with you on Google+.

Since you didn't reply to that either, here's the link again:
http://bazaar.launchpad.net/~codygarver/+junk/terraform-32-bit-startupnsh/revision/138

As promised in the same Google+ thread, this bounty will go to you once it's implemented as thanks for help with the 64-bit UEFI bug a while back.

Revision history for this message
PinGUY (antoni-norman) wrote :

Grab the /EFI/BOOT/bootia32.efi binary from the zip file I posted (it will allow the ISO to boot on 32-bit systems). You can have both bootia32.efi and bootx64.efi on the ISO, they don't conflict.

Once the the two binarys are on the ISO it will work. Obviously you will need to include the UEFI 32 Grub packages in the pool folder for offline install. I posted the packages you need in the other post.

As for startup.nsh it's not really needed. Not even Ubuntu include it as a it only effects a handful of systems. But if you want to include it I posted a snippet of code that will look at the system architecture and add the correct values.

http://pastebin.com/AZ0MXe9G

Just add it to the /usr/share/ubiquity/apt-setup file.

Revision history for this message
Cody Garver (codygarver) wrote :

I'm just gonna commit the working code from 2 months ago.

I can't include the binary from your zip for obvious security reasons.

It would also be a hack to implement a solution like that.

Since we use Debian Live Build to create our ISO (same tool as official Ubuntu & Debian distributions do, I highly recommend it) hacks are frowned upon, so I have to use the clean way to fix this bug.

You could've just said "no idea about the startup.nsh" question months ago instead of ignoring me and this bug would've already been closed.

Then there probably also wouldn't be a reddit thread making accusations towards me about what went on here based on misleading or misguided things you've said publicly.

I voluntarily created this bounty on a really easy to fix issue just as thanks for your help with a complex UEFI bug in the past after you expressed privately that you were struggling financially. I even asked you what the amount should be.

The bountysource link should update around 24 hours after the status of this bug changes to Fix Committed and then you can submit your claim on their website and I'll approve it.

Thanks for your help.

Changed in elementaryos:
milestone: loki-rc1 → loki-beta1
status: Triaged → Fix Committed
Revision history for this message
Cody Garver (codygarver) wrote :

Reminder: the bountysource page has updated and is awaiting claim. Be sure to claim it within 30 days, otherwise it will be reallocated to another bug.

Changed in elementaryos:
status: Fix Committed → Fix Released
milestone: loki-beta1 → loki-rc1
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Related questions

Remote bug watches

Bug watches keep track of this bug in other bug trackers.