Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

LinMac

macrumors 65816
Original poster
Oct 28, 2007
1,270
43
I've been testing this method for awhile to determine if it was possible to boot the x86_64 kernel on the Macbook Air via any process. It looks like it is.

References here and here show it is possible to force boot the x86_64 kernel if you have a 64bit EFI firmware.

To test your EFI firmware you can use the following: (Source).

Type the following into Terminal:

ioreg -l -p IODeviceTree | grep firmware-abi

If your Mac shows "firmware-abi" = EFI64 then you can proceed. If you see EFI32 then you're out of luck for this particular method.

The rest of the process is detailed at the links included above. I will rewrite this part when I have the method fully working, but for now I haven't been successful.

There are several relevant parts such as:

Model (with 64-bit EFI) Byte Position in boot64.efi Old Value New Value
Mac mini(Eary 2009) 0×266DB 0×00 0×80
MacBook Air(Late 2008) 0×266FB 0×00 0×80
iMac(early 2008) 0×2671B 0×08 0×80

included in the comments at this page, but so far I'm stuck.

Update 1:

As an alternate method I attempted to use lipo to modify the mach_kernel to only contain the x86_64 kernel information. A reboot confirms this didn't work so well. :)

Interesting notes so far from the EFI modification tests:

1) bless --info works fine on 10.6.0, but gives a Can't access "efi-boot-device" NVRAM variable on 10.6.2.

2) You can still modify which efi file is used for boot in 10.6.2 (I fouled one up in a hex editor and rebooted to see if it would fail just to test it), but the bless binary will not show the information the system is configured with.

3) The information at both links above for modifying the boot.efi doesn't seem to work in 10.6.0. It already wasn't working in 10.6.2, but there were some comments about it working in previous versions of Snow Leopard so I went back to an unpatched vanilla install from my install media (used Disk Utility to format the drive before installation) to test it.

===

Thread Notes:

1) Yes, I am aware that Leopard and Snow Leopard are fully capable of running 64bit programs using the i386 kernel. This is just an experiment for fun.
2) No, I do not have any reason to do this and I know the Macbook Air runs fine with the i386 kernel including every feature of the x86_64 kernel.
3) Yes, I know the Macbook Air only contains 2GB of ram so there is no reason to run the x86_64 kernel.

Now that the notes are out of the way. Does anyone have experience with this? :)
 

alphaod

macrumors Core
Feb 9, 2008
22,183
1,245
NYC
The 64-bit kernel is a PITA for a lot things. A lot of things don't work and require elaborate workarounds (if they even exist).
 

LinMac

macrumors 65816
Original poster
Oct 28, 2007
1,270
43
The 64-bit kernel is a PITA for a lot things. A lot of things don't work and require elaborate workarounds (if they even exist).

I'm aware. This is an experiment to see if it is possible to do. :)

I tried to head off most of the comments not directly related to the procedure itself by adding the notes at the bottom of the initial post.
 

g-7

macrumors 6502
Feb 14, 2006
405
103
Poland
Works with iMac7,1 (Mid 2007). The correct boot.efi offset is 0×26718 (I have found it here), changing 0×0C to 0×07 allowed me to run the kernel in 64 bit mode. Now I'm waiting for kernel panic... ;)
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.