2015 feels like a lifetime ago.
The last time I'd built – or written about building – a Hackintosh, it was in those dark, early winter nights of late 2015. I was in a haze of insomnia, my second daughter having been born a few weeks prior. I stumbled through the planning, build, and configuration, still new to the experience. I've learned a ton in the years that followed.
My continuous tweaking of hardware and software configurations gave me an investment in the build beyond anything I'd had with a commercially-released Apple product. I was actively participating in the upkeep and improvement of the foundation upon which I create my work and livelihood. Sure, I was in a practically perennial debug mindset. I would never recommend a Hackintosh to anyone not willing to actively maintain and troubleshoot their machine. But again, I learned so much – and as I began considering upgrading to a newer studio computer, I found myself thinking very enthusiastically about building another Hackintosh.
To my eyes, a lot has changed since 2015 for the Hackintosh community, but plenty has stayed the same. There are endless forums, YouTube channels, dubious blog posts (such as this one!); you encounter them all when seeking solutions to the more common config problems. There are groups who distribute builds – full EFI folders with all the necessary drivers/configuration for an approximated list of approved hardware, ultimately spawning forums and comment threads full of users unable to troubleshoot even basic issues (see above). But at the core of the community, there are the developers and hardware experts who create tools that enable attentive, detail-oriented [non-expert] builders to start from the ground-up, striving to attain the closest vanilla mac OS experience on non-native hardware. This, the OpenCore project, became my obsession, and that's the path I chose.
Since so many of my configuration issues with Subterranea stemmed from picking compatible but not optimal hardware, I began researching and comparing components. I paid more fervent attention to successful builds by users that described scenarios I myself would be in. I needed a solid build; fast, stable, and versatile (yet not overpowered for powers' sake). Thanks to encountering a user detailing a bit of downstream jubilance on Reddit (recounting build after build that had helped him along in his own, based on CaseySJ's superb, [now] golden build), I settled into the following hardware configuration:
Motherboard: Gigabyte Z390 Designare
CPU: Intel i9-9900K 3.6GHz (8-Core)
Cooler: be quiet! Dark Rock Pro 4
RAM: 32GB (2x16) Corsair Vengeance LPX DDR4-3200
PSU: Corsair RM850X (80-Watt)
GPU: Sapphire Pulse Radeon RX 580 (8GB)
Bluetooth/Wi-Fi: Broadcom BCM94360CD (802.11a/b/g/n/ac, Bluetooth 4.0)
HD1 (macOS): Samsung 970 EVO Plus M2 NVME (500GB)
HD2 (Windows 10 Pro): Samsung 860 EVO (250GB)
HD3 (Data): Seagate Barracuda 4TB HDD
HD4 (Data): Seagate Barracuda 8TB HDD
Case: NZXT H510i ATX Mid-Tower (Black)
As has always been the case, graphic cards require adhering to what is natively supported within macOS (choosing integrated graphics opens up a bevy of other potential issues). Once support for almost all nVidia cards was dropped after High Sierra, I switched to the Sapphire Pulse Radeon RX 580 (8GB) and have been super happy ever since. This is my first explicit tip, if you're reading this with interest in building: the RX 580 is a solid graphics card for a Hackintosh if you need something capable but affordable (sub-$200) and not crazy overpowered (ie, you don't need 60FPS 4K gaming, aren't doing loads of video and 3D work, etc.).
I also discovered, following countless hours reading conflicting posts, that the Broadcom module that, in my experience, works almost out-of-the-box (requiring only a couple kexts, mentioned below) is the Broadcom BCM94360CD. I acquired mine for $24 on eBay, pulled from an out-of-commission 2013 iMac. Immediately upon installation, all Handoff/AirDrop/Sidecar functionality was enabled. Most glamorously, Apple Watch Auto-Unlock actually fucking worked. My second tip: the Broadcom BCM94360CD is a supported and cheap module (you'll just need a PCI-e adapter to install). I also considered the Fenvi T919, but already had the Broadcom PCI-e adapter, saving me $25-30.
But before I could gleefully emote in these good computing times, I had to build the thing, which leads me to what I'll shamefully declare is my third tip: do not order all the parts for your build at 2AM. Oh – and check dimensions and clearances. You could, say, entirely hypothetically, order laptop RAM. And let's say you rectify that blunder by then ordering fancy RGB RAM that is 4mm too tall to clear your massive CPU cooler. You know, completely hypothetically speaking, that could delay things a bit.
Throughout the build, I paid considerably closer attention to cabling and routing of cables than I ever had in the past. As the NZXT case has a panel of tempered glass, order felt crucial. I didn't go nuts, but I definitely tried. And I think the end result feels aesthetic and orderly, and I'm happy about that. It was also an opportunity to understand and appreciate the consideration that goes into the more impressive builds I'd seen. Eye-opening, truly.
Clearing the hurdles, minor as they were, to complete the actual assembly of the machine, I set out to begin the configuration and installation process. The bootloader is the software that sits between your BIOS and chosen OS(es). In this case, it also happens to trick macOS into allowing your machine to boot in the first place by patching various parts of the OS to make your hardware appear official. After years of using Clover (and before that, Chimera, albeit briefly), I'd become obsessed with OpenCore. It aimed to more delicately patch the OS for a closer-than-ever-before vanilla macOS experience.
Utilizing the OpenCore Desktop Guide for Coffee Lake-based systems, I went step-by-step and built my first EFI folder. As it's evolved over time, it's most worthwhile to share where it's at now (and not where it started). My current (as of 0.5.9) kext list (the extensions injected into the macOS boot process) is as follows:
KEXT LIST (AS OF OC 0.6.3)
- AirPortBrcmFixup: for BCM94360CD Bluetooth/Wi-Fi functionality
- AppleALC: enables onboard ALC audio hardware
- IntelMausiEthernet: enables onboard NIC
- Lilu: the framework that many of these kexts rely on
- USBPorts: custom USB port mapping, an essential post-install process to ensure accurate USB port speed(s) and functionality (creating your own is a must via RehabMan's USBInjectAll)
- VirtualSMC: essential emulation of the System Management Controller (including SMCProcessor & SMCSuperIO kexts)
- WhateverGreen: handles graphics system patching; RX580 works out of the box with no additional settings
With the exception of two kexts and some subsequent tweaking, that initial config differs very little from my configuration today. Surprisingly – or perhaps a bit unsurprisingly – the [mostly] default OpenCore guide config for Coffee Lake worked at (basically) the first boot. Installation from bootable OpenCore (0.5.7)/macOS Catalina (15.4) USB was seamless and fast. Upon completion, I did some large, essential installs (Logic Pro, Adobe Creative Suite) and tested applications for speed/stability – all the while preparing myself for some early build config disaster which, thankfully, never really came. While I certainly encountered a number of vexing config woes, in retrospect, they were just a bunch of little things:
- First night, I'd left Energy Saver settings default, which resulted in an unsupported (deep?) sleep that the computer wouldn't wake from. Hard reboot, disabled that. No problems since.
- One time out of five, while running OpenCore 0.5.7, booting would die before reaching the bootloader menu. Once you were in that 'mode', NVRAM resets wouldn't help, reboots wouldn't help. While nonsensical and unsatisfying, successfully booting into the restore partition seemed to rectify/workaround the issue. Thankfully this seems to have been resolved in 0.5.8 and beyond, for me.
- While adding my [previously configured] Windows 10 SSD was as easy as plugging it in, automatically being detected by OpenCore from the outset, I did notice semi-predictable freezes when rebooting from Windows to macOS. Within 10-15 minutes (sometimes longer), that first reboot would be prone to a system freeze; unsure if it was a kernel panic, since it never presented that screen. In addition to now upgrading to 0.5.9 – uncertain if that's the catalyst – I followed instructions on setting the KASLR slide value (covered in the OpenCore guide). Without even requiring a custom KASLR value, certain BIOS adjustments (in addition to the aforementioned 0.5.9 update) seem to have rectified this issue. I haven't experienced random freezes in nearly a month.
As part of the general post-installation configuration, all essential good practices were followed (that I'm aware of), including the configuration of the USB port injector kext (via USBInjectAll). In addition to a great deal of reading and really, quite frankly, not understanding what the hell I was doing for the first many attempts, previously, I got through the process. Understanding my motherboard and how it allocated ports was key; something I didn't take time to understand with my previous motherboard. Now, all ports, including my unused Thunderbolt ports, are detected and run at native speed. Using headkaze's Hackintool in conjunction with corpnewt's USBMap got me to a final, custom, fully-functional USBPorts mapping kext.
I've been running Hologram as my primary computer – cough, "Daily Driver," if you must – for two months. Following a rather smooth, even-keeled refinement over that time, I'm pleased to report all changes/adjustment in configuration, at this stage, are purely for fine-tuning. There's no question I've got a ton more to learn, but thankfully, with a Hackintosh, those opportunities find you – and clearing each hurdle feels like a meaningful success (wrapped in a bow of palpable relief). Two months in, I'm extremely happy with this build; it's been an upgrade in every sense of the word.
Two weeks ago, at the annual WWDC event, Apple announced it would be moving away from Intel processors – or at very least working to build Apple-manufactured ARM processor-based machines – going forward. Nobody is really certain what, as macOS eventually stops supporting Intel processors, the future of the Hackintosh is. I'm not particularly interested, nor am I not particularly worried. Nothing is permanent. Regardless, the energy that people have collectively poured into their involvement or contribution to this project will remain something very special to an increasingly large number of people.
To close, thanks for reading! If you're someone who found yourself down here a bit confused as to what just happened, I hope it was interesting (?), if not entirely puzzling. If you're here and you've been thinking about building a Hackintosh and find what I've written low-key informative, that's awesome! I hope I've portrayed the experience in an accurate fashion that helps you in whatever way it can. While I'd never call this a build guide, I'm happy to answer questions if you want more details or are chosing to go down a similar path. My inbox is always open!