Ubuntu – 32-Bit UEFI Boot Support

32-bitbootinteltabletuefi

I recently purchased a Dell Venue 8 Pro. I have read online about what it needs in order to boot into Ubuntu or any other Linux distro. From what I have gathered, what really needs to happen is 32-bit UEFI support. I got information from several sites, but where it was really summed up was in this previous post:

http://ubuntuforums.org/showthread.php?t=2187204

"Ubuntu has no 32-Bit Uefi installer, ask them to add support, they may listen."

That thread was specifically about getting the Dell Venue 8/11 Pro to boot Linux. However, there are a slew of new tablets coming out running 32-bit UEFI, and I think this is a trend that is going to continue to grow:

mjg59.dreamwidth.org/26734.html

"UEFI on IA32 isn't going away. It will show up on more embedded systems as time goes on."

Others have tried this before with mixed success, but haven't gotten things to work quite right:

https://www.happyassassin.net/2013/11/24/the-fedlet-revived-or-fedora-linux-on-a-dell-venue-8-pro-bay-trail/

"It doesn’t really work. But it’s interestingly close."

I'm trying to start a thread dedicated thread on 32-Bit UEFI support, because that is the piece that is missing (from what I understand). I don't really know how to work with this stuff, but I'm hoping that some people who do will read this and either contact canonical or somehow patch Ubuntu (or any other distro, really) to work this way. Again, I don't really know how to do any of this…I'm just hoping someone can help!

Dell Venue 8, 11 Pro, Toshiba Encore, Acer w3, w4, Lenovo miix, and the asus transformer a100 are all tablets that will be affected by this…I think these are going to be incredibly popular tablets once their prices go down, and I think people are really going to get interested in putting linux on these. Any help is appreciated, and thank you all so much!

EDIT 4/1/14: Just booted into Ubuntu on my DV8Pro! All you have to do is follow the instructions here:

http://www.jfwhome.com/2014/03/07/perfect-ubuntu-or-other-linux-on-the-asus-transformer-book-t100/

To summarize, what you need to do is download the latest Ubuntu 14 daily build (AMD 64 is what worked for me) and put that on a USB drive via Rufus. 'For “Partition scheme and target system type”, choose “GPT partition scheme for UEFI computer.”' You can get the latest daily build here:
http://cdimage.ubuntu.com/daily-live/current/

You will need to put the file found below into your EFI/Boot directory:
https://github.com/jfwells/linux-asus-t100ta/raw/master/boot/bootia32.efi

Disable Secureboot and such–follow the original instructions link if you don't know how. Then set the USB to boot first in BIOS. This should get you to GRUB.

The rest I'll quote the original author, it's real straightforward:

In the GRUB menu, highlight “Try Ubuntu”, and press “e” to edit it. In the editing screen, scroll down to the command line options, where it says “quiet splash”. Delete “splash” and replace it with:
video=VGA-1:1368x768e reboot=pci,force
[EDIT: For those of us using the Dell Venue 8 Pro, you need to use this line instead:
video=VGA-1:800x1280e reboot=pci,force
That accounts for the different resolution of screen.]

Then press F10 to boot. You should get all the way to the Desktop.

There you have it! This got me to the Unity Desktop. Problems: Wifi is not working, but I used an Ethernet adapter and that seems to work.

I tried rotating the screen, but it throws your touch input off to one side, so I left it.

Make sure to read the tutorial mentioned earlier, it is more comprehensive, even though it is made for the ASUS T100. If nothing else, the instructions I have provided should be enough just to get you to the Unity Desktop, which for me was amazing! Hope you too can have the same success and keep building on it!

For what it's worth, someone else did this and posted a youtube video here:
https://www.youtube.com/watch?v=1WrRngZ4giE#t=94

Best Answer

  • Ubuntu 15.10 supports 32-bit EFI. The 32-bit version will, in fact, automatically install a 32-bit EFI bootloader. Unfortunately, Canonical doesn't offer a bootable 32-bit ISO that has an EFI bootloader in the DVD image. So, we must create the install disk ourselves.

    Other instructions try getting 64-bit Ubuntu to run and install. This probably comes from a misconception that EFI requires a 64-bit OS. This is false. In fact, the bitness of the EFI is meant to be tied to the bitness of the OS. Most PCs are designed for 64-bit OSes and therefore have 64-bit EFIs. However, cheap PCs designed for a 32-bit OS have 32-bit EFI.

    Keep in mind, however, that Ubuntu (or rather, its Linux kernel) doesn't fully support the hardware in the systems which typically ship with 32-bit EFI BIOSes (cheap Intel Atom SoCs). WiFi, sound, and power management often do not work. Patched third-party kernels that fix some of the issues do exist, such as those made available here.

    To prepare an Ubuntu 32-bit install drive with an EFI bootloader:

    • Download both 32bit and 64bit Ubuntu ISOs. (Tested with Ubuntu 15.10)
    • Download a multi-arch Debian ISO. (Tested with Debian 8.2.0 netinst ISO)

    • Format your USB disk as FAT and mount it

      • In Gnome Disks, select the USB drive in the left list, go to the "Hamburger Menu" in the upper-right corner, choose Format Disk, select MSR/DOS partitioning, and Format. Then click '+' and accept defaults which should create a FAT partition. Finally, click the "play" triangle to mount it.
    • Extract installation files from the Ubuntu 32-bit ISO while copying the contents of the symlinks
      • In Gnome Disks, open the Disks menu (up where File and Edit normally are), choose Attach Disk Image, select ubuntu-15.10-desktop-i386.iso, and mount the biggest partition.
      • In Terminal, rsync -rL --exclude=/ubuntu <path to Ubuntu 32-bit install disk>/ <path to usb disk>/
        • Replace <placeholders> with the correct paths
        • Don't forget the slash at the end of the source path
    • Copy /boot and /EFI directories from an Ubuntu 64-bit ISO
      • Mount the iso
      • rsync -r <path to Ubuntu 64-bit install disk>/boot/ <path to usb disk>/boot/
      • rsync -r <path to Ubuntu 64-bit install disk>/EFI/ <path to usb disk>/EFI/
        • Again, the slashes at the end are significant
    • Copy 32-bit GRUB from a Debian multi-arch ISO
      • Mount the iso
      • cp <path to Debian multi-arch install disk>/efi/boot/bootia32.efi <path to usb disk>/EFI/BOOT/
      • rsync -r <path to Debian multi-arch install disk>/boot/grub/i386-efi <path to usb disk>/boot/grub/
        • Watch those slashes (this time the source doesn't end in a slash)
    • Rename vmlinuz to vmlinuz.efi
      • mv <path to usb disk>/casper/vmlinuz <path to usb disk>/casper/vmlinuz.efi
    • Unmount everything
    • Disable Secure Boot on target system and boot from the USB drive.
    • Install Ubuntu! (I've tested with "Erase disk and encrypt it with LVM" option and the install works automatically--unless the kernel doesn't support the flash chips in the device.)
    • System should be "ready." It will boot, but actually it may not be very functional due to lack of drivers (as of Ubuntu 16.04). Check out this Google+ group for more advice and latest patched kernels.