By Kurt Liebezeit (@PDX_Kurt in podfeet Discord chat, @flaubert on MacRumors.com)
2010 Mac Pro?! Why would anyone be talking about a 2010 era computer, much less be using it in 2022? Let’s see if I can come up with a car analogy… OK, so my MacBook Air is kind of like a Mazda Miata: it’s small and reasonably fast, doesn’t cost an arm and a leg. A MacBook Pro might be analogous to a high-end German touring sedan, perhaps a BMW 740i: there’s more power under the hood, more refinement in the features offered, and of course, it costs more, sometimes a lot more. Then there is the iMac: the iMac is the Buick family sedan of the Mac family: good functionality, reasonable pricing, but you don’t take it out on the track to compete.
The 2010 Mac Pro is like… well, there is no one vehicle that captures the spirit of the 2010 Mac Pro. It can have the speed of a Porsche 911 turbo, the raw power of a Mack truck, the carrying capacity of a 13 passenger Dodge van, the versatility of a, I don’t know, maybe a VW Thing (for those who don’t remember, the VW Thing was a spinoff of the VW Bug, an ugly Jeep-like automobile that allowed you to strip its doors and windshield off if you wanted).
In short, the 2010 Mac Pro is really the only affordable Mac in current use that allows you to customize it any way you like since it was built as a standard platform utilizing standard PC parts like Xeon processors, PC RAM, PCI express cards, and SATA drives. Another crucial feature is the fact that it is also compatible with a wide range of PC GPU cards, from 2010-era NVidia cards to the latest AMD gaming monsters.
I’ve customized my 2010 Mac Pro with several technologies that were not even on the drawing board in 2010, including a Metal-compatible GPU, USB 3 ports, an NVMe boot drive, 48GB of RAM, Bluetooth 4.0, etc. Perhaps the most astonishing thing is that you can even add Thunderbolt 3 ports to a Mac Pro.
I would also say that, similar to the automotive hobby world, the 2010 Mac Pro has a large, fanatical, never-say-die fan base, which is probably its most important asset. It is out of that community that OpenCore on Apple hardware was born.
So, with that as an introduction, what is the problem to be solved, exactly? Well, as I’m sure we’re all aware, all good things must eventually come to an end in the Apple world. Specifically, Apple obsoletes older hardware on a regular basis, and obsolete hardware stops getting updated software.
For the 2010 Mac Pro, the last supported operating system was MacOS 10.14, Mojave. And now, in early 2022, Mojave is no longer getting updates. How does one continue on with a Mac Pro 2010 and enjoy the fruit of Apple’s latest, most secure, and feature-rich operating systems such as Monterey?
This is where OpenCore comes in. At its heart, OpenCore for the Mac Pro is basically the same technology developed for the purpose of running macOS on non-Apple hardware, i.e. so-called “Hackintosh” technology. Except in the case of OpenCore for the Mac Pro, it IS running on an Apple hardware platform, which I think lowers some barriers.
For one thing, you can never be completely locked out of your computer; in the worst case, you can always boot back into a copy of Mojave as a supported operating system, and work on repairing your OpenCore installation from there in a familiar environment.
Before explaining how OpenCore works, I’d like to spend just a moment explaining how OpenCore doesn’t work, so that you’ll appreciate the elegance and durability of the OpenCore approach.
Prior to OpenCore, various people developed patched installers: they took a stock Apple installer disk, added various drivers from prior versions of the OS, removed other drivers, and literally changed bytes to make the installer think it was working with supported hardware. This was laborious, the patched installer would be outdated when Apple issued updates, it meant relying on drivers that were no longer getting updates, and other downsides. A different, better approach was called for.
Parallel to this effort of keeping old Apple hardware alive with new versions of macOS, the Hackintosh community was developing their own solutions to run macOS on non-Apple hardware. At some point, someone in the community who goes by the moniker ‘cdf’ realized that the right approach to the legacy hardware problem was to bring in the Hackintosh booting technology to solve the many shortcomings of patched solutions.
The modern Apple or PC boot process is a multi-step affair, with an early stage that enumerates the hardware for the final operating system to work with. The genius of OpenCore is that they created what I’ll call a software shim that is inserted into the boot process; this shim modifies the data structures that get passed in RAM to the final operating system and can make the hardware appear to be 100% compatible with any given macOS release.
In the case of a classic Mac Pro with a Metal-compatible GPU card, it already IS essentially compatible, and all that needs to be done is to get past the limitations that Apple arbitrarily enforces as far as what is supported hardware.
There’s much more going on under the hood during the boot process, such as reading NVRAM and BIOS settings, but OpenCore can manage translating all of that in a way that keeps MacOS Monterey happy to boot, happy to run, and happy to update seamlessly on a 12-year-old computer. Really!
Once installed, you almost wouldn’t know that OpenCore has been deployed. It does its job during the boot process and then gets out of the way. Set up properly, it persists across shutdowns and reboots, works with iCloud, and allows you to have an essentially “vanilla” MacOS experience: your computer is running macOS software unmodified, and is able to support the features of macOS up to the limit of your hardware.
So, for instance, support for the original 2010 Broadcom Wi-Fi module was dropped in Catalina and later; fortunately, it is possible to replace it with a later, supported module that normally goes with an iMac, and macOS Monterey will use it. OpenCore also brings back pre-boot graphics, even with standard PC GPU Cards that don’t give you this feature on standard supported versions of the OS.
So, you’re wondering, how hard can this be to install? I put off trying OpenCore until Mojave support ran out, but in retrospect, it was less difficult than I imagined it was going to be. It took me the better part of a Sunday afternoon to completely master, going carefully, step-by-step.
It’s not hard at all to get an initial OpenCore installation going: you just have to mount a hidden partition in the Terminal, populate it with some files, and then boot into Recovery mode and set the OpenCore EFI shim file as the boot target.
From that point forward the hardware boots first to OpenCore, and then OpenCore transfers control to the operating system. The real work of the installation is in dealing with the myriad options that OpenCore offers via a configuration file, config.plist.
It is a very extensible and well-thought platform; it takes some investigation to decide what options you need to turn on and turn off, and then some serious attention to detail to find them in the plist file and set them up properly. All of this is painstakingly documented in a wiki-post over at the Macrumors.com Mac Pro forum, which is the go-to resource for OpenCore on the Mac Pro technology and advice. That forum member mentioned earlier, ‘cdf’, has done yeoman’s work getting countless newbies up and running on OpenCore, myself included.
The approach I’ve just described might be described as the “hands-on purist” approach. It gives you the most control, and you come away with a pretty good understanding of what OpenCore is doing and why. There are also some other ways to install OpenCore: Macrumors forum member Martin Lo has created a preconfigured package that essentially skips over the intermediate steps to give you a well-rounded OpenCore environment without having to dig into all the details.
Another approach is something called the OpenCore Legacy Patcher, or OCLP. OCLP is a more automated system with the ambitious goal of supporting more than just Mac Pro hardware, and thus does not strictly adhere to the “vanilla” MacOS goal – there are some drivers inserted to handle outdated hardware, as I understand it.
At this point you might be saying, “Surely there must be some downside or sacrifice to running OpenCore, isn’t there?” My answer to that question would be that first you have to be willing to live a little bit out on the unsupported ledge of the Apple universe.
What does that mean? Well, it means from time to time Apple will release software that degrades the experience for a while until the community figures out a way around the problem. One example of this was evident last year when something that Apple did in a Big Sur update caused intermittent problems with successful booting under OpenCore. It didn’t break it outright, but rather one might experience the problem randomly.
And here is where that fanatical community shows its value. One of the forum members named ‘syncretic’ figured out that the problem was actually a race condition in the enumeration process during boot, and wrote an OpenCore delay module to make booting more reliable again.
But wait, it gets better: Apple releases Monterey 12.1, and the race condition is fixed… by Apple! Was it a happy accident, or are there a few engineers at Apple giving the classic Mac Pro community a little assistance? We don’t know. This also illustrates that you have to be willing to stay up to date at least minimally with what is going on in the OpenCore universe. I do that by skimming the forum posts on OpenCore just to stay up to date with what people are experiencing, and how problems are being solved.
In the end, is it worth it to run a 2010 era computer using OpenCore? I would say, a resounding “Yes!” My daughter’s 2015 MacBook Pro for some reason boots in an insanely quick 10 seconds, easily beating my Mac Pro at 35 seconds, but I know that I can run a Linux virtual machine, encode a video file, browse in Firefox with sixty browser tabs open, simultaneously, and the Mac Pro doesn’t even break a sweat. It’s my 13 passenger Mack truck with the dual Porsche turbocharged engines, finely upholstered in the purple and blue shades of MacOS Monterey.
You can download OpenCore at github.com/acidanthera/OpenCorePkg… but you’ll really want to go to the MacRumors wiki post for instructions as the download comes with much documentation.