Solved booting MacPro1,1 with 32bit EFI (not BIOS/Legacy)

Hello,

I'm wondering if anyone is able to offer some suggestions:

Hardware:
MacPro 2006 (has 32bit EFI)
32GB RAM
2 x QuadCore Xeon 64bit CPUs (have been upgraded)
6 x SATA ports
2 x PATA ports

Anytime the Mac boots using Legacy BIOS and not EFI, only 4 SATA ports are recognised, temperature sensors (and thus fan control) are not presented to the kernel correctly to be controlled. This leads to all sorts of heat issues where other people on the net experience the CPUs halting to protect themselves.
For obvious reasons, I would much prefer to get EFI boot happening.
I have used mattgadent.com's method to patch the FreeBSD 12 ISO so that it has MBR boot only, and so the MacPro does boot the CD installer using BIOS legacy mode.
So I have booted up via CD and the installation asks whether to setup the PATA disk as EFI for BIOS.
If I choose EFI, a 64bit bootx64.efi file is copied to the ~260MB EFI partition. Naturally, the 32bit EFI of the Mac will not be able to execute this.
Using Sergey's blog as a reference, I thought I could swap out the bootx64.efi file in the EFI partition with a bootia32.efi file that is used to boot Ubuntu 64bit kernel via EFI. After swapping out the file, GRUB drops into rescue mode and doesn't boot the FreeBSD boot loader and so clearly my knowledge about freeBSD is lacking.
I tried renaming the bootia32.efi file to bootx64.efi also, but got the same result.
I know these Macs are ancient, but I just can't bare to see them go to waste.
Power consumption of these Macs is offset by our solar here so it would be great to put them to use somehow. I've installed Ubuntu 16 onto these MacPros via EFI okay and with 10GB Chelsio cards installed they make great backup machines with their 6xSATA ports, but I'd prefer to get BSD installed if I can.
I have searched for posts booting FreeBSD with Grub2 EFI, but cannot find any EFI howtos and only old BIOS posts.
Anyone able to suggest the glue needed to get a 32bit EFI of the MacPro to boot the FreeBSD Bootloader?
Thanks.
 
Last edited by a moderator:
So after reading the 12.2. FreeBSD Boot Process a couple time nows, am I now correct in understanding that FreeBSD only boots via the old BIOS method (even though a disk may be formatted as MBR or GPT) and is not yet able to boot via EFI?

If so, I guess that's the end of that.
 
So after reading the 12.2. FreeBSD Boot Process a couple time nows, am I now correct in understanding that FreeBSD only boots via the old BIOS method (even though a disk may be formatted as MBR or GPT) and is not yet able to boot via EFI?
Much of the information in that chapter of the handbook has only limited applicability for UEFI systems. Whether you use GPT or MBR partitioning scheme should also make not much of a difference. What you need to boot in UEFI mode is a copy of /boot/boot1.efi or better yet /boot/loader.efi on your EFI system partition (ESP). The problem is that those binaries are by default built as 64 bit binaries which will probably not run on your 32 bit EFI. I am not sure how or if at all there is a chance to build 32bit versions of these, maybe someone else has more insight into this matter. Are you sure that the problems you are having with temperature sensors and disk controllers are caused by the boot mode and do not come from a faulty ACPI implementation?
 
If you're intent on going the EFI32 route, here are a few places I’d start:

  1. Thread: Ubuntu 15.04 on Mac Mini 2,1 with EFI boot (2007 Intel) – The guide uses rEFInd on one USB stick. On a 2nd USB install disk it uses a Ubuntu USB install, but adds a bootia32.efi to the /EFI/BOOT folder. When starting up the Mac, uses ALT to bring up the manager and chooses rEFInd. Then once rEFInd has loaded, selects the option that contains “bootia32.efi”.

    Once the Ubuntu install is complete, grub fails to install, but there are steps listed to manually install a grub-efi-ia32. Much of it is based on the steps that Jason Heeris provided on his blog. This is a very “EFI-native” solution, but I’d personally still be a little concerned about the potential for major release upgrades to overwrite the bootloader with a new 64-bit EFI.
  2. Hackintosh bootloader solutions – The hackintosh community has been finding solutions for Apple’s EFI compatibility limitations for years. If you’re looking for something very Mac-specific, search for Mac Pro 1,1 and add ML/MountainLion/10.8/10.9/etc to the search. Otherwise you can peek into various bootloaders like Chameleon, Pike’s bootloader, etc., but your are more likely to hit some trial-and-error bits there since every guide looks at a different purpose (some for just intented for having a different bootloader, some aimed at hackintoshing, etc).
Source: https://mattgadient.com/2016/07/11/linux-dvd-images-and-how-to-for-32-bit-efi-macs-late-2006-models/
 
There may be hope ... from the twittersphere:

New conversation marc r‏ @theunixwizard 24 May 2018
Replying to @ed_maste@FreeBSDHelp
What about a 32 bit UEFI booting to a 64 bit processor? (Apple X serve 2009 vintage as the example.)
1 reply 0 retweets 0 likes

Ed Maste‏ @ed_maste 25 May 2018
No support yet, but hopefully in the not-too-distant future
0 replies 0 retweets 0 likes
 
... Are you sure that the problems you are having with temperature sensors and disk controllers are caused by the boot mode and do not come from a faulty ACPI implementation?
Hi Mickey,
I managed to boot the MacPro via 32bit Grub2 into Ubuntu 16.10 and all 6 SATA ports are usable. macOS also sees them and I've not had any heat/fan issues while booted in these OSes.
I also understand if you used Apple's official Bootcamp method to get Windows installed, BIOS emulation/legacy was used to do so and that too did not present the SATA ports to Windows, so It looks like Apple's effort (lack there of) when implementing emulated BIOS over the top of 32Bit EFI is half baked. Fair enough I guess considering they use EFI and control the hardware and software.

Thank you Trev for finding that post!
Yeah, old devices with 32-bit EFI…
I have a Mac mini 2006 (upgraded to 2007). I compiled GRUB 2 for 32-bit EFI and it boots 64-bit FreeBSD from ZFS just fine :)

I have (I think) contacted floatboat from that post and have asked for help.
 
I have went off the deep end on tablets and have several that won't run FreeBSD because of the 32-bit UEFI implementation.
I too would really like to see a FreeBSD version of bootia32.efi.
 
Success!

am able to boot using any of the 6 SATA ports.

am waiting to here back from floatboat before I post how we did it.
It's been a week since I started trying to boot FreeBSD x64 from 32-bit UEFI with no luck. NetBSD, OpenBSD, Linux, all work flawlessly. I also managed to grab the loader.efi from an i386 ISO and put it as BOOTIA32.EFI and it loaded. But after the splash screen it says "Failed to load kernel 'kernel'". I installed a 32-but GRUB2 and created FreeBSD menuentry. But it also fails to load with an error, which is not readable on the screen because suddenly the font goes very very tiny, like 0.1 pixel per character.

So, please! To help me avoid suicide, tell me how did you do it? Thank you.
 
Solved??? How is it solved? I can’t see solution here?

If someone managed to boot 64-Bit FreeBSD 12.1 on system (laptop) with 32-Bit EFI, post your solution or link to related post, pleeeaseee!!!
 
I have the same issue with MSI, but I am not sure that my efi is 32 bits...
I try all uefi options combination. Only Legacy mode can boot from nvme...
 
Hi All

I wrote a guide on how to bless the efi partition on Mac hardware,
so it boots up in a couple of seconds instead of 30 seconds with the legacy boot option

If anyone is stuck and needs a hand after reading the how to guide let me know and ill walk you through the steps
Thanks for an idea, but in your post you really on ability to boot from FreeBSD installation USB. My problem is that I’m not able to start FreeBSD installer because I’m not able to to boot from FreeBSD memstick USB. My concern is not specifically related to Mac now, it’s more general question how to boot FreeBSD installation USB on laptop with 32-Bit EFI support only (legacy BIOS is not available).
 
Thanks for an idea, but in your post you really on ability to boot from FreeBSD installation USB. My problem is that I’m not able to start FreeBSD installer because I’m not able to to boot from FreeBSD memstick USB. My concern is not specifically related to Mac now, it’s more general question how to boot FreeBSD installation USB on laptop with 32-Bit EFI support only (legacy BIOS is not available).
To anyone still having this issue:


See the patch for the installer image.
 
NetBSD, OpenBSD, Linux, all work flawlessly.
That is not true. There are only a few Linux distributions that boot on a 32 bit efi out-of-the-box. As far as I know and at least tried as a live-cd, these are Fedora 35 and Sparky Linux.
On the NetBSB 9.2 iso I don't see any .efi files in the boot directory.
Solved??? How is it solved? I can’t see solution here?

If someone managed to boot 64-Bit FreeBSD 12.1 on system (laptop) with 32-Bit EFI, post your solution or link to related post, pleeeaseee!!!
I can't either. I am also very interested in finding a solution. I have some Notebook with an Intel Atom Bay Trail chip. I can imagine that this chip is quite common on a bunch of Notebooks and tablets out there and therefore a solution for FreeBSD is very desirable...
 
Well, I have tried Fedora 35, Sparky and Debian Live images, but with Fedora I get Wifi, but when I plug a headphone or mini jack cable into the audio out connector, the sound switches to mono output! With Sparky and Debian I do not get Wifi in the first place, and sound does not work either. So I am already fed up with trying different Linux distributions all with their own f****** problems.
So I'd really like FreeBSD...
 
No but I have looked at the Intel Tiano EDK2 build stuff. I have a stack of Z27xx tablets if you want a crack at it...

I had a look but am fairly overwhelmed by how much you need to learn to even make a start.

What is actually involved in developing an ia32 UEFI for FreeBSD?

What do you make of this post?


Also Thread 73128
 
I can tell you that the amd64 installation image of NetBSD 9.3 boots on my Laptop with that Intel Baytrail 32-bit EFI, but unfortunately during the installation process, the OS suddenly shuts itself down. It seems to be a clean shutdown, not a hang or a crash. This seems to be an ACPI issue of NetBSD, though. What I am trying to say, maybe it would be easier to have a look at what NetBSD has done and try to copy something from there?
 
Back
Top