Share this story

Apple has now confirmed via its Mountain Lion upgrade page that previously published limitations on some 64-bit Macs will extend to the final release. This means that several otherwise 64-bit capable MacBook Pros, iMacs, and Mac Pros will indeed be restricted from upgrading to OS X 10.8 when it goes public later this month. And according to information found in the recently released golden master (GM), the limitation appears to be related to graphics, as we originally suspected.

When the first developer preview of Mountain Lion was seeded to developers earlier this year, the release notes listed hardware requirements showing that some early 64-bit Mac models were not compatible. (Lion is likewise 64-bit, and can run on any Core2 or newer 64-bit Intel processor.) As such, Mountain Lion developer previews would not run on the earliest Mac Pros, MacBook Pros, iMacs, and other hardware.

Macs supported by Mountain Lion

iMac (Mid 2007 or newer)

MacBook (Late 2008 Aluminum, or Early 2009 or newer)

MacBook Pro (Mid/Late 2007 or newer)

MacBook Air (Late 2008 or newer)

Mac mini (Early 2009 or newer)

Mac Pro (Early 2008 or newer)

Xserve (Early 2009)

Apple declined to tell us the reasoning behind leaving some of these models out of potential Mountain Lion upgrades, but we suspected it is related to an updated graphics architecture that is designed to improve OS X's graphics subsystem going forward. Our own Andrew Cunningham suspects the issue is more specifically related to graphics drivers, since the GPUs not supported under Mountain Lion have drivers that were written before 64-bit support was common.

Information included with the first Mountain Lion GM now corroborates the connection to 32-bit graphics drivers as the culprit. While Mountain Lion is compatible with any Mac capable of running a 64-bit kernel, the kernel does not support loading 32-bit kernel extensions (KEXTs). Furthermore, Macs with older EFI versions that are not 64-bit clean won't load Mountain Lion's 64-bit only kernel.

As you might have already guessed, graphics drivers are KEXTs under OS X. And the GPUs in some of those early 64-bit Macs were deprecated before 64-bit KEXTs became common. Since those older drivers are 32-bit, Mountain Lion won't load them. We believe Apple decided it was better to draw the line in the sand for some older machines rather than invest the resources into updating the drivers for these older GPUs.

While Apple had suggested that the hardware limitations were not set in stone back in February, it seems anyone hoping for additional support before Mountain Lion is released will be disappointed. Look on the bright side: both Snow Leopard and Lion are likely to get security fixes for at least the next year, so your machine should continue to hum along fine for now. If Mountain Lion contains updates that are useful to you, however, it may be time to start shopping for a newer Mac.

Promoted Comments

So I wonder if they have programmed ML specifically not to run on these machines or if say you have an older Mac Pro that has been upgraded to a supported GPU if it will let you install. I am willing to bet that soon after or likely even before it ships there will be hacks to get it running on unsupported machines. XPostFacto makes a dramatic return

On those older Mac Pros that shipped with unsupported graphics cards, Apple hasn't deigned to update their firmware to support 64-bit EFI. You can run this command in Terminal to see whether you have a 32-bit or 64-bit EFI:

ioreg -l -p IODeviceTree | grep firmware-abi

All of the Macs dropped by Mountain Lion are going to return "EFI32" - if you can hack around that in addition to upgrading your graphics card, you may indeed be able to get Mountain Lion running on an older Mac, but it's a bit of a long shot.

Good thing OS X upgrades are only $30. People are bound to buy software they can't actually install. O.o

Well seeing how Moutain Lion comes from the Mac App store as a download I doubt it would allow someone on an older machine to purchase it. The store supports OS and hardware checks...not sure if it supports this however.

So I wonder if they have programmed ML specifically not to run on these machines or if say you have an older Mac Pro that has been upgraded to a supported GPU if it will let you install. I am willing to bet that soon after or likely even before it ships there will be hacks to get it running on unsupported machines. XPostFacto makes a dramatic return

The 64-bit kernel *never* supported loading 32-bit kexts. It it not possible.

If you're running Lion today, and you're running the 32-bit Kernel, then ALL of your kexts are loading the 32-bit codepath. Likewise, if you're running the 64-bit kernel, then ALL of your kexts are loading the 64-bit codepath. The fact that kexts can be universal binaries (with 32-bit and 64-bit Intel code inside) doesn't mean that one kernel can load extensions for the other architecture.

What I think Apple are saying is that they are no longer willing to support the 32-bit kernel, and thus 32-bit kernel extensions. Its a valid move, frankly.

While Mountain Lion is compatible with any Mac capable of running a 64-bit kernel, the kernel no longer supports loading 32-bit kernel extensions (KEXTs).

This is a bit misleading. The 64-bit kernel has never supported loading 32-bit KEXTs - you always had to load a 32-bit kernel if you needed to run older drivers. The difference is that Apple will not be including a 32-bit kernel with the release.

I think Apple's reasoning is that this is what people do. I've talked to Apple engineers in the past about supporting older OS versions and hardware and they always point to statistics about how people stop upgrading after awhile.

The 64-bit kernel *never* supported loading 32-bit kexts. It it not possible.

If you're running Lion today, and you're running the 32-bit Kernel, then ALL of your kexts are loading the 32-bit codepath. Likewise, if you're running the 64-bit kernel, then ALL of your kexts are loading the 64-bit codepath. The fact that kexts can be universal binaries (with 32-bit and 64-bit Intel code inside) doesn't mean that one kernel can load extensions for the other architecture.

What I think Apple are saying is that they are no longer willing to support the 32-bit kernel, and thus 32-bit kernel extensions. Its a valid move, frankly.

I don't understand what's the big deal to just let 32-bit continue working. These machines are older anyway so unlikely these are the performance chasers? How much work is it to just continue to support.

It's annoying I have a Core 2 Duo Macbook that works fine for what it does, yet now it's been forced out of business. I know I don't have to upgrade and it will keep working, however I do like to have security updates and it's been said several times above that Apple doesn't provide security updates for more than a year or so after a new OS X release

Ridiculous. It will work well and run fine until the hardware dies with it's current OS. I have a quake server sitting here that still runs Win2K.

Its not that its garbage, but one can make the argument it certainly loses some of its value. The OS on your quake box had extended support until 2010, how long to you think SL will receive security updates? The fact certain things are packaged and updated by Apple doesn't help either.. as once they stop updating, you are kind of left out in the cold.. Java is a perfect example of this.

So I wonder if they have programmed ML specifically not to run on these machines or if say you have an older Mac Pro that has been upgraded to a supported GPU if it will let you install. I am willing to bet that soon after or likely even before it ships there will be hacks to get it running on unsupported machines. XPostFacto makes a dramatic return

On those older Mac Pros that shipped with unsupported graphics cards, Apple hasn't deigned to update their firmware to support 64-bit EFI. You can run this command in Terminal to see whether you have a 32-bit or 64-bit EFI:

ioreg -l -p IODeviceTree | grep firmware-abi

All of the Macs dropped by Mountain Lion are going to return "EFI32" - if you can hack around that in addition to upgrading your graphics card, you may indeed be able to get Mountain Lion running on an older Mac, but it's a bit of a long shot.

You know what is obvious here is Apple's move to push users into new Mac's all the time. Not only excluding higher priced Mac's from upgrading to Mountain Lion. But also building new Mac's with no ability to upgrade or even replace a battery without sending it out for repair. This just proves to me that Apple is creating a forced upgrade ecosystem. Whereas Windows users typically can install the most recent version of Windows on almost any PC built in the last 6 years. Apple tries to always focus on creating ways to convince you that you have to buy a new Mac to enjoy all the features. Even if you can install the latest OS from Apple. It does not mean you will have access to all of the features.

Does your computer magically stop doing all of things you've used it for once Mountain Lion comes out?

Probably not, but you got to admit this is a pretty stupid reason for not being able to install a new OS. A graphics driver.

That happens in the Windows world on occasion. I could never upgrade my 2005 Gateway 8510GZ to Windows 7 because ATI required laptop manufacturers to release drivers for their older mobile chips instead of doing it themselves, and Gateway never released a Vista/Win7 driver for that particular GPU. I tried installing a generic Catalyst driver instead, but had no luck, so I was stuck with XP if I wanted any sort of real GPU support at all.

On those older Mac Pros that shipped with unsupported graphics cards, Apple hasn't deigned to update their firmware to support 64-bit EFI. You can run this command in Terminal to see whether you have a 32-bit or 64-bit EFI:

ioreg -l -p IODeviceTree | grep firmware-abi

All of the Macs dropped by Mountain Lion are going to return "EFI32"

Thank you for this info... I was just able to check this and definitively confirm I will be unable to run Mountain Lion.