UEFI Haiku boot loader for x86 (32-bit)

You can use diskimage register to habe it available to mounted directly.

It would be quite wastefull to make everyone downlod the efi loader twice.

Yes, intentionally so.

Most of /system is synthetic, that is read only content that got mounted from /whereyoubootedfrom/packages

It’s in /system/data/platform_loaders.

Well, it is not that big a file, is it ?

Also, it´s for simplicity. Since the efi installation needs to be manual for a while, having the files easily accessible removes some roadblocks for people.

It is avaiable without any mount / disk register magic.

The idea there is to copy efi files from a Haiku install to another, right?
If nothing is mounted, I would say that it is a very bad practice. First, if both Haiku installs are mbr, there no esp partition and no files to copy. Let’s say one is efi. The name of haiku efi loader BOOTX64.EFI is generic. It could be any 64 bit system; it doesn’t mention the idea of stable or devel release nor a hrev not even Haiku. So, unless you are 200% certain of what you’re doing, this is something to avoid.
If you can boot an existing Haiku install and copy the file from platform_loaders folder, at least, you know that is a Haiku file and you can check other things (hrev, build type, architecture) by firing AboutSystem window. So, you have necessary infos to say if it will match or not the receiving Haiku system.

That isn’t strictly true for this case, it would be if you take it from the running system. but if you want it from the package of the image you would first need to register the disk image, mount the partition and then mount the package out of that.

It’s quite a bit more work than taking it out of the bootloader partition of the image.

Not having the efi install be manusl should be the goal, not adding the loader a third time to the image for yet another way to obtain it to cater to a quite special case (of wanting to install to a live medium but not use the system loader)

Hi,
I’m lost with all the posts about uefi in the forum. What I’m looking for is a Haiku-32bit iso file that boots in an UEFI enviroment. Can someone address me to a relative iso (if it exists)? I tried the most recent nightly-build with no luck.
Thank you for any advice

The 32-bit ISO is currently built as a legacy anyboot image, i.e. there’s no EFI system partition.
So the current situation is not very optimal: the code is there for the 32-bit EFI loader, haiku_loader.efi is built and packaged in haiku hpkg but not active in the ISO image.
I’ll take a look at the build scripts, probably it’s enough to enable building the EFI partition on the 32-bit ISO file. (by setting HAIKU_ANYBOOT_LEGACY to zero - from the commit history I see that it was introduced in hrev52443 back in 2018 to solve issue #14656 which should not be a problem any more)

edit: EFI boot for 32-bit ISO has been merged in hrev56519 so you can try it in nightly builds newer than that e.g. hrev56521. I tried it in qemu with TianoCore, it looks promising.

8 Likes

Thank you very much for working on this. With the changes from your hybrid-boot branch applied on latest master I’m able to boot Haiku x64 on Asus T100TA (32 bit UEFI Class 3 device).

However, pretty much nothing works except for USB devices, probably because almost everything on that tablet is connected through i2c or SD bus. Also for some reason USB boot doesn’t work when drive is attached to USB port on keyboard, booting works only from microUSB port. Anyway, it’s still very nice that we can now boot Haiku on 32 bit UEFI Class 3 devices at all.

EDIT:
I’ve enabled the GPU driver and it works too, but screen is shifted (similar as in #13751)

12 Likes

hi @Illen, thanks for the feedback, really good to see that the hybrid bootloader is able to start Haiku on your tablet.

I plan to resume working on the hybrid-mode bootloader once beta4 has been branched out. For now: no risky commits.

4 Likes

Please open a new ticket with a new syslog as it may be different (and the user in that ticket was requested to provide a new syslog anyway.)

1 Like

I am trying to understand the necessity for this. I thought that only 64 bit Intel/amd machines have EFI?

Reference: Booting 32bit iso's on 64bit CPU machines? "This system uses 64-bit x86 UEFI => searching for x64 EFI boot loader" · Issue #22 · pbatard/uefi-ntfs · GitHub

1 Like

32 bit UEFI-only computers exists, my old x86 tablet for example.

3 Likes

Exactly. I also have a tablet with Intel Bay Trail processor (64 bit) with 32 bit UEFI.

For Linux, there are things like https://github.com/s3k0/BayTrail-bootia32.

Besides tablets/netbooks with Intel Baytrail, there is also the MacPro 1,1 with 32 bit UEFI.

These models are known to have 32bit EFI:

  • iMac 5,1 – iMac 5,2 – iMac 6,1
  • Macbook 2,1
  • MacBook Pro 2,1 – MacBook Pro 2,2
  • Mac Pro 1,1

Probably also the old XServe 1,1

3 Likes

Hi
I’m trying to boot Haiku on iMac 2006 (EFI32, core2duo).
I’m using refind 32bits which is load but it doesn’t propose the haiku_loader.efi get from last 32bits image, as it’s done with refind 64 bits with haiku 64 bits loader.
So my question : does this 32 bits haiku loader is usable ? :-/

UEFI 32 bit is working with lenovo flex 10 with intel baytrail CPU though booting up with ACPI is slowly (even freezes when interacting with tracker/deskbar).
with no ACPI the device can boot an reach userland quite fast, even the tracker/deskbar can be interacted with less lag (~0.3s).
thanks to bringing UEFI up into 32 bit build. without it the modern device with 32 bit UEFI can’t taste same as 64 bit UEFI device.

1 Like

Unfortunately Lenovo has its own handling of ACPI embedded controller, that someone with Lenovo hardware would need to work on. Without it ACPI tasks probably use a lot of cpu.