13

I have a Intel BayTrial Z3735D tablet which comes with a 32bit UEFI BIOS. After some search I've found that most linux distro don't come with a 32bit efi file.

How can I insert one (or build a new ISO)

According to https://wiki.archlinux.org/index.php/HCL/Firmwares/UEFI#Intel_Atom_SoC_Bay_Trail , this should be possible.

1

3 Answers 3

8

The Baytrail tablets run a 64b processor and a 32b EFI, for reasons best known to Intel.

Grub2 (compiled for 32b EFI) will start a 64b UEFI operating system from a 32b EFI.

Just like a 64b or 32b CPU processor calling into a traditional 16b BIOS, a thunk is needed in the operating system to marshal the arguments from 64b to 32b, change the processor mode, call the firmware, and then restore the processor mode and marshal the arguments from 32b to 64b. A x86-64 Linux kernel built with the option CONFIG_EFI_MIXED=y includes such a thunk to allow the x86-64 kernel to call to a i686 EFI.

At this point in time there is no thunk for AMD's AtomBIOS, and thus the "radeon" module fails. This isn't an issue for the Baytrail tablets, as they use the Intel GPU.

I would look at the Ubuntu operating system when considering Baytrail, as Fedora is yet to build their stock kernels with CONFIG_EFI_MIXED=y. Use a USB stick like Super Grub2 Disk to get to the Grub2 (32b) command line and then load and run the x86-64 installer kernel from the Grub2 command line. Once you have installed Ubuntu go back and install Grub2 32b bootloader to the EFI partition by hand and remove the Grub2 64b bootloader.

The lack of advanced video driver is a showstopper for the MacBookPro2,2 as it uses the AMD Radeon X1600. Linux can boot using the EFI "UGA" driver (roughly equivalent to using the VESA option in BIOS-land). But the result is so much overhead that then fans run at full rate continually. Note that the "radeon" module copies the AtomBIOS contents into RAM, and thus a small change to the driver to allow the AtomBIOS to be loaded from disk is a path to solving this issue. Probably the best approach on a early Mac is to run a 32b operating system, although most of the popular distributions do not support EFI in their i686 32b builds.

6
  • The known to Intel reasons.
    – Hi-Angel
    Commented Aug 23, 2016 at 4:54
  • here are the commits needed for the thunk
    – phuclv
    Commented Nov 5, 2018 at 16:06
  • 1
    The article shared by @Hi-Angel now lives here.
    – PiCTo
    Commented Oct 16, 2020 at 11:05
  • The TL;DR essentially is UEFI requiring[*] the firmware and the kernel to have the same "width" and, Windows 8.1 being noticeably larger (disk and RAM space) when compiled for 64-bit and not bringing clear benefits to low-spec (64-bit) systems, we decided to ship Windows 8.1 (x86) which therefore required 32-bit UEFI.
    – PiCTo
    Commented Oct 16, 2020 at 11:05
  • 1
    [*]: This, in turn, is basically part of the UEFI spec because it makes the firmware-kernel interface simpler and less error-prone, simplifying its implementation; it is not something inherently required by the system (hardware), hence Linux now being able to run as a 64-bit Kernel from a 32-bit UEFI; not sure about Windows.
    – PiCTo
    Commented Oct 16, 2020 at 11:05
5

This page might be of help, titled: Linux on UEFI: A Quick Installation Guide. Specifically this section:

Ensure that you're using a distribution that's the right bit depth — EFI runs boot loaders that are the same bit depth as the EFI itself. This is normally 64-bit for modern computers, although the first couple generations of Intel-based Macs and a handful of obscure computers use 32-bit EFIs. I have yet to encounter a 32-bit Linux distribution that officially supports EFI, although it is possible to add a 32-bit EFI boot loader to 32-bit distributions. (My Managing EFI Boot Loaders for Linux covers boot loaders generally, and understanding those principles may enable you to modify a 32-bit distribution's installer, although that's not a task for a beginner.) Installing a 32-bit Linux distribution on a computer with a 64-bit EFI is difficult at best, and I don't describe the process here; you should use a 64-bit distribution on a computer with a 64-bit EFI.

So given this I'd probably shy away from attempting to use a 64-bit distro and adding my own 32-bit UEFI loader to start. I'd find a 32-bit distro. There are options here, mainly in the embedded space.

If you're determined and want to do this @RodSmith has provided details in this AskUbuntu Q&A titled: 32-Bit UEFI Boot Support.

2
  • slm - is this relevant? I don't think the tablet can do a 64-bit anything. Those things are usually ARM - UEFI really does strive to be universal. The asker will need to look specifically at ARM-compatible distros, I think - which are not the norm. There is the Arch Linux on ARM project, for example...
    – mikeserv
    Commented Dec 31, 2014 at 20:39
  • My bad - definitely Intel. Upvoted for Rod. Geez - it even says so in the question, huh?
    – mikeserv
    Commented Dec 31, 2014 at 20:43
1

I had this problem with a Packard Bell Easynote, after a lot of research I have discovered that Sparky Linux 32bit does actually support 32bit efi. Any of the 586 versions seem to work. I have successfully installed the LDXE version.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .