/bootia32-efi

EFI boot blob for devices using IA32 UEFI

Primary LanguageShellThe UnlicenseUnlicense

bootia32-efi

EFI boot blob and build scripts for devices using IA32 UEFI

Help, I've fallen into UEFI and I can't get out!

I made this because, perhaps like you, I was trying to install Linux on an older x86_64-based tablet and found myself unable to boot and dropping into UEFI...

Devices supported

Pretty much anything using Intel Silvermont -based "Bay Trail" CPUs:

  • Intel Atom® Processor E3800 and Z3700 Series
  • Intel® Pentium® and Celeron® Processor N- and J-Series.

Known to work:

  • Acer NP15A
  • Multilaser M8W tablet
  • Asus T100
  • Lenovo Tab2

How-Tos

How-To: Create a bootable USB stick from a Lubuntu ISO

This How-To will walk you through installing Lubuntu. Why Lubuntu? I tested several Ubuntu distributions with these chips and found Lubuntu to be the most performant and lightweight with the Silvermont (see methodology below).

  1. Fetch the Lubuntu ISO from https://lubuntu.me/downloads/
  2. Get a copy of bootia32.efi either by downloading it from this repo or building it yourself.
  3. Back up any valuable files from your USB stick because they'll be deleted in the next step.
  4. Create a new GPT partition table on the USB stick with Gnome Disks, parted, Windows Disk Manager, or any other partition management utility that supports GPT.
  5. Create a new FAT32 partition and format it.
  6. Mount the ISO so you can access the files within it. Windows 10 and most Linux distributions can do this without additional software.
  7. Make "hidden" files visible on the ISO. Hidden files begin with a single '.' character and are also known as "dot files" for this reason. Windows Explorer and Gnome Files both have this capability in their view menus.
  8. Copy all files from the ISO onto your USB stick's FAT32 partition.
  9. Ignore any errors about unsupported symlinks. Those symlinks are not required for a successful installation.
  10. Copy the bootia32.efi file into /EFI/boot on your USB stick. You should see other .efi files in there already.
  11. Unmount the USB stick and boot from it.

Other distros

I know this works with other Debian derivatives. I'm sure there's a way to use it with RedHat derivatives, but you'll have to figure that out on your own. The RedHat process is probably quite similar to the Ubuntu process used here.

Test methodology

I booted each in "live CD" mode, so none of the systems had access to swap. With Lubuntu I could simultaneously open all the default sponsored tabs in Firefox (Facebook, Reddit, other heavy sites), run LibreOffice Write and Calc, load a 4k image into GIMP, and have a YouTube video running full screen in just under 1.5GB RAM. The other Ubuntu distros OOM'd and died long before I could get to YouTube. I figure that's good enough for practical purposes.

How-To: Build from Sources

If you don't trust boot blobs from random strangers on the internet (understandable) you might want to build from sources. In that case you have two choices with regard to this repo:

  1. Read the contents of bootstrap.sh and build.sh (in this repo) and run the same commands yourself; or
  2. Just run the included scripts. If you run the scripts, run boostrap.sh first to install dependencies, then run build.sh to build the EFI file.

Due Credit

I relied on these sources to help me figure out this issue: