MacOS – Unsupported hack or workaround to get 64-bit OS X to install on a MacBook Pro having only 32-bit EFI

64-bitefimacbook promacos

I want to install the 64-bit OS X 10.7 on my MacbookPro 2,1, which has a 64-bit processor, but only 32-bit EFI and Kernel Boot mode.

I know that this is not officially supported, but I assume there is some workaround since the hardware provides everything needed to run a 64-bit OS, except for the EFI.

"Select Startup Mode" tells me, that: "While your Mac is technically able to run a 64-bit kernel, this is not currently enabled by Apple."

How can I get that to work? Is there an unsupported hack or workaround?

Best Answer

I found a post on the subject from the guy who wrote this book about Mac OS X internals. His post mentions Snow Leopard (10.6), but the issues would be similar for 10.7. See Mac OS X Internals - Is Your Machine Good Enough for Snow Leopard K64?

Here's the part I found most relevant to your question:

[...] Unfortunately, a 64-bit processor alone doesn’t suffice. Out of the box, boot.efi will not boot K64 even if you have a 64-bit processor and explicitly request K64 if at least one of the following is true.

  1. The machine has 32-bit EFI.
  2. The machine’s model is prohibited from booting K64 through a hardcoded list within the boot loader. (A cursory look suggests that the list excludes "non-Pro" machines.)

Both of these "limitations" are technically artificial, albeit to different degrees.

The first limitation actually does have merit and is arguably not all that artificial. Although a 32-bit EFI could launch a 64-bit kernel, the kernel, when running, would not be able to use firmware services. [emphasis mine]  In particular, you wouldn’t have NVRAM. For kernel developers merely wanting to run a 64-bit kernel for testing and debugging, this may not be an issue [...]

On the one hand, the author states that the limitations may be artificial, which still indicates some promise of a workaround, but on the other hand, as @Koen van Rhee's answer also already pointed out, you may end up with devices without support under 64-bit.

(Aside: Why do you want to run the 64-bit kernel, anyway? The OS X 32-bit kernel can run 64-bit programs.)

I did some more digging searching for a real workaround of some kind, not just theory. I found the following: OS X Daily - Got an Older Mac? MLPostFactor Installs OS X 10.8.3 on Old Unsupported Macs. OS X Daily's article links to a series of forum posts at MacRumors - [Guide] Success! Install 10.8 on old unsupported Mac. It is a very long thread.

I still don't definitively know if you can get the OS X 10.7 64-bit kernel running on your specific kind of Mac, but I suspect for the reasons mentioned in this image from the MacRumors forum thread that you can't: "Problem is cards like [...] Does NOT have 64-bit Kexts [...] 64-Bit Kernel will NOT load these 32-bit kexts". Essentially, what @Koen van Rhee already said.

But then I found this. Quoting: "Apple has included 64-bit drivers for GMA950 in the OS X 10.6.2 update. These drivers can be used to provide partial support for GMA950 under OS 10.8." ... and I'm thinking: maybe such kexts exist for your card and might work on 10.7 too, if they'd work on 10.6 & 10.8? You may have to hunt and mix & match bits from elsewhere.

To sum up: I don't believe there to be a single or simple workaround for your desired OS version and hardware version. If you want to proceed, everything I've read indicates it may be possible (to some degree — accept there may be missing drivers and so missing functionality and/or poor performance), but your work will be cut out for you.