32bit efi / uefi support for LE

  • As some forum members probably already noticed, i'm trying to get an industrial minipc to work with LE.


    One of the things that keep intervening with good operation of the device, is the lack of support for 32bit efi systems.


    Short explanation: EFI is the successor for the old bios based system. This is the first code being loaded once a computer is powered on. EFI (extensible firmware interface) comes in to flavours: 32 and 64bit. Keep in mind: this has nothing to do with the microarchitecture of the computers processor.


    Now comes the weird part: there are computers being sold that have modern 64bit (multicore) cpu's, but are fitted with a 32bit efi. This means often that one can't boot 64bit operating systems, even when the cpu supports this. Sometimes this goes in hand with a max memory limitation of, for example, 2gb memory.


    For this reason: Microsoft windows 10 comes in multiple bootable versions: both 32 and 64bit for legacy bios systems, and 32 and 64bit for efi systems. So this means that, for a windows system, a pc with 32bit efi can be used to run win10 (probably other versions too).


    The problem is that lots of linux distributions, this includes LE, come with only an 64bit efi boot option. The 32bit efi files are not included This means that if you have a 32bit efi, and no option to boot in legacy (CSM/bios) mode, you can't boot LE and therefore arent able to install it.


    For my particular case, i've tested a few distro's. None of them came with the necessary 32bit efi boot files.


    I've found this article: 32-Bit UEFI Boot Support - Ask Ubuntu


    I then copied the bootia32.efi file to the efi folder on the memstick which i had ubuntu on, and it immediately booted fine (64bit ubuntu with 32bit efi boot, nice :) )


    I was hoping the same trick would work for LE, but unfortunately it didn't. So up to this date no 32bit efi booting for LE.


    Maybe the developers can find a way to included 32bit efi booting capabilitys for LE?


    I found other threads on the forum from people asking for this feature, even developers telling they didn't succeed in making it work. Maybe progress has been made on this matter?


  • You can do it using grub2, however, we use syslinux.


    When grub2 is able to facilitatie 32bit efi boot (and therefore making LE more universal compatible), is there a reason for sticking with syslinux?

  • I'm guessing there isn't any particular reason other than there's some work required to replace syslinux and not a lot of benefit as there isn't a whole lot of devices requiring 32 bit EFI boot.


    On the plus side, you could always manually install grub.

  • Syslinux supports this too. (as do all efi booters, they don't care what they're booting, it's up to the kernel afterwards to support this, and the LE kernel does support it)


    You should download syslinux-6.04-pre1.tar.gz
    Rename the syslinux.efi under efi32 directory to boot.efi on the install stick (and maybe afterwards you have to copy it to the install destination too) I have not tried it, but I cannot see why it shouldn't work.

  • You're right, it does look like syslinux supports 32 bit EFI. You'll probably need ldlinux.e32 as well though.


    Here's the relevant places in the LE source:


    LibreELEC.tv/package.mk at master · LibreELEC/LibreELEC.tv · GitHub
    LibreELEC.tv/mkimage at master · LibreELEC/LibreELEC.tv · GitHub
    LibreELEC.tv/installer at master · LibreELEC/LibreELEC.tv · GitHub


    Surely someone with such a system and enough interest could put together a PR that would do the correct thing here.

  • Last time we check syslinux didn't work. Only grub (and probably others).

    Better support for Amlogic devices: use CoreELEC

    Blu-ray Disc Java menus support - forum thread, Github

    my lamp addon (unofficial/community with limited support)
    my touchscreen support and instructions by Grruhn (now touchscreen addon exists in repository)

    Edited once, last by vpeter ().

  • There are 2 requirements for booting a 64bit kernel on a pc with 32bit efi. The bootloader has to support efi handover protocol and that config_efi_mixed is enabled in the kernel.


    Syslinux implemented the Efi handover protocol almost a year before efi mixed mode was mainlined in Linux 3.15. Both commitments were from the same author.
    efi: implement Linux kernel handover protocol support · geneC/[email protected] · GitHub
    EFI mixed mode [LWN.net]


    I'm not saying you're lying but I kinda doubt that you really checked it out.



    I can't check it right now but I also believe CloudReady and Parted Magic use syslinux and are able to boot 64bit kernel with a 32bit efi. I even made my own live-boot stick and used syslinux to boot 64bit kernel with my first gen mac mini's (I've upgraded the cpu from coreduo to core2duo)

    Edited once, last by Soli ().

  • piotrasd tried everything with syslinux and he couldn't get it booting. Maybe something is missing in kernel too. If anyone has any direct tips let us know.


    Maybe I didn't write correctly before. Syslinux did boot and kernel starts loading. But then only dark screen.

    Better support for Amlogic devices: use CoreELEC

    Blu-ray Disc Java menus support - forum thread, Github

    my lamp addon (unofficial/community with limited support)
    my touchscreen support and instructions by Grruhn (now touchscreen addon exists in repository)

    Edited once, last by vpeter ().

  • I have managed to boot LE8 with 32efi by using the OE5 USB creator.
    First, created a OE 5 Stick and installed it. Then just updated it to LE8.


    Im absolutley new to Linux and this was the only solution for me to get LE8 to boot from ssd.


    I also found out that my Board has a linux bios which i have to flash, but im not sure if i will get 64efi after that :huh:


    If there is another workaround please let me know.



    My HTPC: Acer Aspire X1430 with AMD E-350 1,6ghz
    4GB RAM, 64 GB SSD


  • I'll test LE8 with my Mac mini 2006 with upgraded c2d cpu later.


    Unfortunately that didn't fare well.
    copied over 32bit efi as bootia32.efi (1gen Mac minis only recognize "boot.efi" on HFS+ partitions)
    copied over ldlinux.e32


    Shows up when I hold option/ALT-button when I restart the Mac, but when I choose it, everything just freezes for a little while, then reboots.

  • I gave up on 32bit efi. I began with the spo comm device (as mentioned in my other thread), which resulted in nothing. After that, i discovered that an Pipo x7 which i purchased also only could boot from 32bit efi. This gave me the same problems (there is a beta cherry trail build, but nothing official). The pipo x7 also has the nice feature of overheating and becoming totaly unusuable after some "wrong" bios settings (no clear cmos available, piece of cr*p).


    Now i'm running LE on "normal" machines with bios or 64bit efi support, no more weird hardware that only costs money and, in the end, doesnt work.


    For anyone who's reading this, if you want to avoid a lot of headaches and frustration, avoid all the cheap "quadcore" boxes as sold with intel cherry trail cpu's, or other devices that have this 32it efi limitation. this included the intel compute stick, Pipo X7 (x7s) , basically everything "to good to be true" (from aliexpress, ebay, dealextreme, etc).


    If you want a cheap device with proper LE support, look at the supported hardware list, or if you just want to buy something guaranteed to work (and is cheap), buy a raspberry :D

  • I built grub-efi. Just extract this to /EFI/BOOT on LE installation media: MEGA
    Extract all files to /EFI/BOOT/ on install media.
    After install: copy grub-postinstall.cfg as grub.cfg and bootia32.efi to where /dev/sda1 is mounted, probably /flash/EFI/BOOT/ (you can boot LE live and ctrl-alt-f3 to do this) After this LE will be able to boot from HDD. I only wasted time on this so that I have a way to boot the install media with my 1. gen Mac minis in the future:) These 1.Gen machines don't support legacy USB boot, only EFI USB BOOT.

    Edited once, last by Soli ().


  • I built grub-efi. Just extract this to /EFI/BOOT on LE installation media: MEGA
    Extract all files to /EFI/BOOT/ on install media.
    After install: copy grub-postinstall.cfg as grub.cfg and bootia32.efi to where /dev/sda1 is mounted, probably /flash/EFI/BOOT/ (you can boot LE live and ctrl-alt-f3 to do this) After this LE will be able to boot from HDD. I only wasted time on this so that I have a way to boot the install media with my 1. gen Mac minis in the future:) These 1.Gen machines don't support legacy USB boot, only EFI USB BOOT.


    Hi and thanks Soli for this.,
    This is not the right forum for a full debug of my problems but since you got to this resolution for LE and nobody else seem to know anything about this in the other forum, you might be my o flu chance.
    I am trying to do the same as you but with OpenpHT Embedded, basically LE 8 but with the OpenPHT client instead of KODI one.
    With your files I am finally booting into something but I still have an issue.
    I am using the generic Intel 8.0.1 image that I flashed with dd. I am on 2006 mac Mini with a core 2 duo. I have reFind installed from previous attempts at getting this working, and I have to select the failsafe option of the 2 available for my USB boot. I then pick "Live", it boots, I then seem to get a graphics reset as I have multiple coloured lines appearing for a sec, but then a few seconds later I get a console with the message:


    "*** Error in mount_flash: mount_common: Could not mount UUID=2303-3709"


    I have tried with 2 different USB sticks, one is USB 2, the other is USB 3


    Any idea?

    Edited once, last by raidersan ().


  • I built grub-efi. Just extract this to /EFI/BOOT on LE installation media: MEGA
    Extract all files to /EFI/BOOT/ on install media.
    After install: copy grub-postinstall.cfg as grub.cfg and bootia32.efi to where /dev/sda1 is mounted, probably /flash/EFI/BOOT/ (you can boot LE live and ctrl-alt-f3 to do this) After this LE will be able to boot from HDD. I only wasted time on this so that I have a way to boot the install media with my 1. gen Mac minis in the future:) These 1.Gen machines don't support legacy USB boot, only EFI USB BOOT.


    You're a genius. Don't know why i missed this post. Will be testing soon. Thanks again!


  • Probably your OpenPHT image uses another UUID. You have to edit grub.cfg and replace boot=UUID=2303-3709 with the UUID of your image. You can probably find out what it is by looking at the /syslinux.cfg file. Or if the label of the install media is OPENPHT you could also replace it with boot=LABEL=OPENPHT


    (In fact the LE install media is named LIBREELEC so you could just replace boot=UUID=2303-3709 with boot=LABEL=LIBREELEC if LE for any reason decides to change the UUID)

    Edited once, last by Soli ().


  • Probably your OpenPHT image uses another UUID. You have to edit grub.cfg and replace boot=UUID=2303-3709 with the UUID of your image. You can probably find out what it is by looking at the /syslinux.cfg file. Or if the label of the install media is OPENPHT you could also replace it with boot=LABEL=OPENPHT


    (In fact the LE install media is named LIBREELEC so you could just replace boot=UUID=2303-3709 with boot=LABEL=LIBREELEC if LE for any reason decides to change the UUID)


    You are a star, that worked! Many thanks