My initial impressions of OpenCore for modern Hackintoshing

— 8 min read

For people who don't need a Mac all the time, or those who have more time than money, making a Hackintosh is a great way to get real macOS while avoiding the slowness and awkwardness of virtual machines or connecting to remote Macs. As Apple has changed some elements of macOS and PC hardware evolves, the Hackintosh scene has changed as well. The Clover boot loader, which was the most popular way to set up Hackintosh machines for years, is slowly being replaced by the less hackish and more Mac-like OpenCore boot loader.

Back when I only occasionally needed Xcode and Apple Configurator, I set up a reasonably quick Clover-based Hackintosh using the r/Hackintosh Vanilla Desktop Guide. According to my friend with a similar PC desktop, I got very lucky with my smooth Hackintosh install process. Following the guide left me with a decently fast and stable fake Mac, although I had to perform a variety of workarounds for some strange bugs. For example, the standard macOS installer in the recovery environment did not work for me; I had to use the command-line version via the included Terminal.app. Then, when everything was set up, macOS read my display EDID and used the YPbPr color space instead of the RGB color space without instructing my monitor to switch color spaces. For this reason, I had to disable System Integrity Protection and add an override profile that made sure that my monitor was fed RGB data instead. Otherwise, white would appear pink and black would appear greenish.

The most impressive feat that Clover performed was successfully updating from macOS Mojave, the originally installed version, to macOS Catalina without a hitch. The process worked just like it would on a real Mac and I had no issues during the upgrade or afterwards.

At this point, I had macOS installed on a secondary SATA SSD that was not as fast as my primary M.2 drive (which had Linux installed instead). When I decided to replace that secondary SSD with a larger HDD for storage, I wiped the SSD and put it to use in my laptop. Since I had a backup of my Clover EFI partition, I could trivially reinstall macOS simply by extracting the latest macOS Recovery DMG from a software update on a friend's real Mac.

Recently, I decided that I needed to use macOS more. I've been reading a lot about OpenCore on Hacker News and elsewhere across the Internet, so I thought that it would be worth trying. It would be great to be able to update macOS without having to worry about strange mid-upgrade failures forcing me to restore from a backup. Overall, it sounded like OpenCore would allow me to spend less time worrying about the boot process and more time actually using my computer for real-world tasks. OpenCore also supports some additional features like FileVault disk encryption and UEFI Secure Boot. I haven't explored any of the fancier features yet, but it's nice to know that they're available.

Attempt 1: The Unstoppable Kernel Panic🔗

After going through the entire OpenCore install guide, I felt ready to boot up my machine to the installer from the USB drive I had created. OpenCore itself booted correctly and everything seemed to work up until the point where WhateverGreen initialized my integrated graphics. At this point, the specs of my computer were the following:

  • Intel Core i5-7400
  • 16GB DDR4 from mixed vendors
  • Acer Aspire TC-780-UR1B prebuilt including proprietary Acer motherboard
  • Intel HD Graphics 630
  • M.2 SSD (not NVMe) and SATA HDD

Every time I would boot up the computer from the flash drive, regardless of the DeviceProperties I set in the OpenCore configuration file, I would get a kernel panic with a few WhateverGreen and Lilu errors relating to some IsTypeCOnlySystem check. This led me to use the USBInjectAll kernel extension and try a variety of potential solutions offered by helpful members of the Hackintosh Paradise Discord server.

In the end, I found that I was able to boot to the installer using the -igfxvesa boot argument (applied to the kernel command line via a tag in the NVRAM section of the OpenCore configuration file). Once I installed macOS, this also worked for booting into the system itself. Unfortunately, this meant that I was unable to use graphics acceleration at all. With the number of GPU-accelerated GUI elements in modern-day macOS, using the system with pure software rendering was unbearably slow and buggy.

No matter what I tried, I was unable to remove that boot argument without causing a kernel panic. After hours of trying all sorts of different solutions, I gave up on the internal graphics, chalking it up to an issue with my prebuilt PC motherboard.

Attempt 2: New GPU Day🔗

At this point, my Hackintosh-adept friend suggested that I simply purchase a real AMD GPU that could reasonably have been included in a Mac of the same vintage as my processor. Given that I have an i5-7400, which is from 2017, he thought that an AMD Radeon RX 560 would be an appropriate graphics card for my purposes. My computer had a 300W power supply, which was significantly lower than the recommended power supply wattage for the RX 560. I might have given it a shot with the old PSU had it been a quality name-brand product, but I instead decided to buy a new EVGA 500W PSU to make certain that I wouldn't trip any fuses or cause other issues.

Replacing the power supply and adding a graphics card to the Acer pre-built machine was surprisingly painless. I was expecting to have issues with clearance between some on-board components and the back of the graphics card, but I was lucky that everything fit without a hitch.

Then, after changing a few values in my OpenCore configuration to take into account the discrete GPU and re-enable graphics acceleration, macOS booted perfectly on the first try. Audio worked with AppleALC using the same layout number as in my Clover configuration and the pink-screen issue was also fixed. It turns out that my monitor correctly determined the color space this time around and macOS did not need to be forced to cooperate.

After getting graphics acceleration working, I effectively had a real Mac. A few features, like the integrated Wi-Fi card, do not work (which is to be expected given that I have an Intel combo Wi-Fi/Bluetooth card). This means that Handoff and AirDrop don't work. I'm fine with that trade-off given that all the important things work just fine.

A few recommendations🔗

A lot of Hackintosh luck comes down to selecting appropriate hardware. People who choose AMD processors have to do a lot more work compared to those who select Intel processors. NVIDIA graphics cards are completely incompatible with recent macOS versions. There is plenty of information online about hardware that is and isn't compatible with macOS. Conveniently, much of the same hardware that works well with macOS also works well with Linux and the BSDs. AMD graphics cards are the better choice on Linux if you want to avoid proprietary drivers and incompatibility with many Wayland compositors.

Another suggestion I have is to make sure to select an accurate SMBIOS, serial number, and board ID before the first boot. This way, you can guarantee that iMessage and FaceTime work out of the box without requiring future effort or blacklisting your Apple ID. It's a lot more work to delete iCloud files and test out new serial numbers by trial and error after the fact.

Overall, time is the most important resource when creating a Hackintosh. It's best to give yourself an entire weekend to go through the guide thoroughly. The Hackintosh Paradise Discord server, r/Hackintosh subreddit, and some of the other forums are useful ways to find additional information about specific issues. In general, you should eye any content on tonymacx86.com with a healthy dose of skepticism, as that site frequently promotes proprietary tools and poorly-regarded techniques. Whatever you do, you have to have a good idea of your computer hardware and be pretty good at using Google to be able to solve issues that might come up during the installation process.

These days, choose OpenCore🔗

Although plenty of people will continue to use Clover for years to come, OpenCore is the much more future-proof and stable option. Even though there is more information available online about Clover, documentation for OpenCore is rapidly expanding. Given the greater ease of software updates and more stable base, odds are that OpenCore-based Hackintoshes will require less time spent monkeying around with the operating system after the initial installation.