Yearly Hackintosh upgrade: macOS Monterey with OpenCore

November 16, 2021

Exactly a year ago, I migrated my Hackintosh from Catalina to Big Sur, and from Clover to OpenCore. Apple recently released Monterey, so it’s the first time for me doing a major upgrade since I’m using OpenCore.

So far, OpenCore has been a breeze to work with. I’m not sure if it’s because it’s a really high quality piece of software and ecosystem in general, or if it’s because it forced me to learn a lot of low-level details in order to have a working Hackintosh, but both probably have a lot to do with this.

I’ve been upgrading seamlessly all year long through Big Sur updates as smoothly as if I was using a “real Mac”. Upgrading to Monterey might have been as easy (with the addition of upgrading OpenCore and all kexts to their latest version, which I should probably do on minor updates even though I’ve been getting away perfectly fine by ignoring that all year long), but I like to take a new major version as an opportunity to reinstall my system from scratch and start from a clean slate.

My paranoid upgrade procedure

I don’t do cowboy-style upgrades or installations anymore, because I’ve bricked my system too many times and while I’ve always managed to fix it more or less gracefully, it’s always been a somewhat stressful, uncomfortable and time-consuming experience.

I’m also constantly scared of losing critical data by mistake, so I tend to back up everything more often than not. Here’s the procedure I follow to upgrade my system making sure I always have a bootable machine and without risking data loss.

This is a bit more time-consuming than straight up performing the installation, and some of those steps might be a bit overkill, but I like going the extra length to make sure everything is backed up and redundant to prevent any unexpected issue and minimize the impact of a program or human error.

Upgrade log

I’ll list all the steps I took in that upgrade, which are very similar to my Big Sur post, but I’ll note here the differences. Here’s the relevant details of my machine:

Motherboard
MSI H110M PRO-D (RTL8111H Ethernet chipset, Realtek ALC887 audio chipset)
CPU
Intel Core i5-6500 Skylake
GPU
GIGABYTE Radeon RX 580

Still following the OpenCore guide, I:

Now here’s what got easier than my first OpenCore installation.

SSDTs

I just had to copy SSDT-PLUG.aml, SSDT-EC.aml and SSDT-USBX.aml from the ACPI directory of my previous installation, the first two which I had built back then with SSDTTime, and the latter being the prebuilt one that didn’t need to be updated.

USB map

I could just copy USBMap.kext from my previous installation to have my USB ports supported right away without having to generate it again or to deal with XhciPortLimit and USBInjectAll. Sweet.

Making the config.plist

I started again from OpenCore’s Sample.plist and applied the same tweaks from the Skylake guide. I’m not sure if I could have reused my previous config.plist or not, but I wanted to start fresh and up-to-date.

Everything was the same as my previous installation so I won’t include it here.

The only difference was that I left XhciPortLimit to False as the guide mentions to disable it if running macOS 11.3 or newer, plus I already have my USB map so it shouldn’t be needed either way.

I also had an issue last time where I needed to set SecureBootModel to Disabled instead of the Default mentioned in the guide, but just to check, I left it to Default this time and didn’t have any issue, meaning I can now benefit from Apple Secure Boot!

Removing previous fixes

For Big Sur, I needed to add IO80211HighSierra.kext to get my Wi-Fi to work but I’m now connected over Ethernet so I didn’t need to include it. It’s a good thing because it doesn’t work on Monterey (at least for now, I tried and had the same issue).

Also I’ve had an issue last time that required a CtlnaAHCIPort.kext in order to see my SATA drives in the installer, but that wasn’t required anymore so I left it alone (it actually prevented the installer to boot if it was there).

Finalizing

Once everything was working, I copied OpenCore to my SSD’s EFI directory, and applied the cosmetic tweaks including putting the files from the OpenCore RELEASE version, removing the debug and verbose settings, and adding OpenCanopy.efi for a nice UI.

I still needed to patch the EDID of my screen to force it in RBG mode, and the patch-edid.rb method still works!

After that, I didn’t need to do any tweak at the system configuration level, everything works out of the box including CPU power management and sleep. Power Nap also works like a charm but I turned it off just because it’s not useful to me.

Since my system drive was named the same as my previous installation, Time Machine was able to continue the existing backup and I kept my full Time Machine history! Had I renamed the drive, it seems that I could have used tmutil inheritbackup and tmutil associatedisk to help with that.

Wrapping up

If it wasn’t for a totally unrelated hardware issue that happened around the same time I performed the upgrade, migrating to Monterey with OpenCore was a straightforward and painless procedure and I didn’t encounter any hiccup.

If you too are upgrading your Hackintosh to Monterey, I hope it went as smooth for you as it did for me!

Want to leave a comment?

Start a conversation on Twitter or send me an email! 💌
This post helped you? Buy me a coffee! 🍻