Forcing Macbook Air to boot x86_64 kernel in 10.6.2 via EFI modifications

Discussion in 'MacBook Air' started by LinMac, Nov 16, 2009.

  1. LinMac macrumors 65816

    Oct 28, 2007
    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:

    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? :)
  2. ayeying macrumors 601


    Dec 5, 2007
    Yay Area, CA
    I tested this a while before and couldn't get it to work.
  3. alphaod macrumors Core


    Feb 9, 2008
    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).
  4. LinMac thread starter macrumors 65816

    Oct 28, 2007
    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.
  5. g-7 macrumors 6502


    Feb 14, 2006
    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... ;)

Share This Page