Upgrading my Hackintosh from Yosemite to Sierra

Apple Logo - Multicoloured

For the first time since its initial setup, I decided that it was time to take the plunge and upgrade my hackintosh to Sierra. I’m not gonna lie, it’s something that I’ve been putting off doing for a long time. This is my primary machine, so if something went wrong, I didn’t want to take the risk of being out of action for a while.

It turns out, upgrading from Yosemite to Sierra was a lot easier than I expected. In this post, I’ll write an overview of what I did, tips, and fixes for my specific hardware.

System Specs:

  • Motherboard: ASRock Z97 Anniversary LGA 1150
  • CPU:  Intel Core i5-4440 CPU @ 3.10GHz
  • RAM: x2 Crucial 4GB DDR3L-1600
  • Graphics:  NVIDIA GeForce GTX 750 Ti
  • WiFi: TP-LINK N900 (TL-WDN4800)
  • Bluetooth: Belkin F8T065 (USB Adaptor)

The build is mostly based around hardware on tonymacx86’s buyers guide (I can’t remember the specific month/year). The closer you are to genuine Apple Mac hardware in your build, the less headaches you’re going to have.

Pre-installation

The upgrade process was literally as straight forward as described in this post. My previous build was with Chimera/Chameleon bootloader, and migrating to Clover wasn’t as daunting as I anticipated.

Motherboard Settings:

The Z97 is a wonderful board to use for a hackintosh, I changed the boot mode to UEFI (not Legacy) and configured the settings below:

Advanced / Chipset Configuration:
Primary Graphics Adapter = PCI Express
VT-d = Disabled
IGPU = Disabled

Advanced / CPU Configuration [CPU PM (native XCPM mode) & flawless Sleep and Wake]:
CPU C States Support = Enabled
Enhanced Halt Support (C1E) = Enabled
CPU C3 State Support = Disabled
CPU C6 State Support = Auto
CPU C7 State Support = Auto
Package C State Support = C6
Advanced / Storage Configuration:
SATA Controller(s) = Enabled
SATA Mode Selection = AHCI

**Advanced:
**Intel Rapid Start Technology = Disabled
Intel Smart Connect Technology = Disabled
Advanced / ACPI Configuration:
Suspend to RAM = Auto
Check Ready Bit = Enabled
ACPI HPET Table = Enabled
RTC Alarm Power On = By OS (this setting doesn’t cause system waking on every 2 hours!)
USB Keyboard / Remote Power On = Enabled
USB Mouse Power On = Enabled
Advanced / USB Configuration:
USB Controller = Enabled
Intel USB3.0 Mode = Smart Auto
Legacy USB Support = Enabled
Legacy USB3.0 Support = Enabled
USB Compatibility Patch = Disabled

**Boot:
**CSM (Compatibility Support Module) = Disabled

**Security:
**Secure Boot = Disabled

Post Installation

ASRock Motherboard not booting

This was by far the most frustrating issue. With Yosemite, my motherboard was booting in Legacy mode, and I’d read that things are generally better when booting from the UEFI instead. So I decided to go with that! Unfortunately, there is a quirk with ASRock’s UEFI implementation, which leads to the motherboard not booting at all in UEFI mode. My system returned the dreaded boot0 error.

I was able to boot from USB into Clover, then start the hard drive from there, but that’s no good. After intense Googling, I found that the best method is to install a Linux Live installation to USB, and use Linux to install the necessary kernel modules to the motherboard. Great! Install Linux to USB, run sudo apt-get, and reboot. Sounds easy enough!

Wrong. It didn’t work.

I have no idea why, and at the time, I was too frustrated to keep attempting – the USB simply wouldn’t boot into Linux, no matter what distro I tried. It was especially annoying seeing people comment it worked for them. A little disheartened at this point; I decided to search for alternative methods, and after some even more intense Googling, I came across an Insanely Mac post from 2014, where a fantastic specimen of a man had posted an alternative method to add Clover to the UEFI boot menu. The method is:

Add Clover to UEFI boot menu:

  1. Restart the system and boot into the clover USB drive
  2. Navigate to UEFI Shell 64 (aka command line)
  3. Run these commands: (I’ve left the original comments in)
Shell> map fs* # Show all partitions
Shell> fs0: (or fs1: or fs2: ...) # Switch to fs0, fs1, fs2,... partitions
Shell> ls # List the contents of current partition / directory
Shell> cd \efi\boot # Change the directory to \efi\boot
Shell> ls

All we’re doing here is directory browsing so we can locate bootx64.efi, which is fallback program for when the EFI hasn’t been configured with any boot entries. In the next step, (surprise!) we add bootx64.efi to our main hard drive.

Shell> help bcfg -b -v # Get help on bcfg command 
Shell> bcfg boot dump # List current boot options
Shell> bcfg boot add N bootx64.efi "Clover" # Add bootx64.efi from the current dir (\efi\boot) as a boot option labeled "Clover" (You will see this name also in the UEFI BIOS Boot menu boot items). N is the boot option number: 0 if you want it to be the first, 1 to be the second, etc.
Shell> bcfg boot dump # Check if Clover is added
Shell> reset # Restart the system and load Clover from SSD / HDD

It took me a few attempts to find the correct partition on my hard drive, I think it ended up being fs1. But regardless, the solution was very simple, and on reboot, it worked!

rednous, I don’t know who you are. But if i ever meet you, I’m buying you a beer.

Multibeast Settings:

As mentioned, this motherboard is very good at natively working within macOS. Main things here: I was advised to set the system definition to iMac 14,2, and to to install Clover to UEFI boot mode (we still have to do the above, because of the buggy UEFI).

Audio didn’t work from get-go, which was expected. After a few attempts, I found that ALC887/888b worked very well.

Multibeast settings for my Hackintosh coniguration

Multibeast settings for my Hackintosh configuration

It’s important as well, to NOT inject nVidia, like I did. If you Inject nVidia, the Graphics Card won’t work. Luckily, because I had two monitors plugged in, the second not getting any signal was an immediate indication of anerror. Also, is that if you go to ‘About This Mac’ – the memory on the Graphics card will show as 0mb.

nVidia Web Drivers

Incredibly straight forward, navigate to nVidia’s website and download the alternative Graphics Card drivers for Sierra. Install the software, and set your Hack to use nVidia drivers instead of native.

Fix no audio after sleep

A fun little quirk that I accidentally discovered, the audio kept disappearing any time the hackintosh woke up. I recall reading that this is a power management thing. Something about motherboard not sending a signal to the audio driver to power back on (don’t quote me here). Regardless – this is another pretty simple fix:

  1. Download CodecCommander.kext
  2. Unzip and install the kext to iMac/{Name of Disc}/System/Library/Extensions
  3. Reboot

Important to note here, you do not install this kext to the EFI partition, you install it to the system. I think this is another power management thing (again, don’t quote me. I’m writing all this from memory and a few notes). The S/L/E directory will be a hidden directory, so make sure you’ve enabled hidden folders in Finder.

If you experience an error message when you copy the kext to your Extensions folder, you need to repair system ownership. Open up Terminal and run this command:

sudo chown -R root:wheel /System/Library/Extensions/CodecCommander.kext

Getting iMessage to work

One of the initial reasons for me wanting to upgrade to Sierra – iMessage! Probably the most common issue I read about with hackintosh. Unfortunately, I still haven’t got mine to work. Following An iDiots Guide to iMessage is a brilliant resource for getting to iMessage to work. I followed it, and I have reason to believe all of my settings are correct, but I’m faced with the ‘Contact Apple Support’ message:

iMessage, Customer Code error

iMessage Customer Code error

From what I gather, if you get the ‘Contact Apple Support’ error code with iMessage – it means you’re good to go with the system configuration – incorrect serial number combinations tend to return a ‘Verification’ error. Whereas this error message is a security measure by Apple to prevent IDs that appear fraudulent (think Russian, Chinese scammers). It’s easy for those with hackintosh’s to fall under this category, because part of the process of setting up iMessage is rotating your serial numbers to find a genuine match.

The information in this incredibly useful thread gave me a much more clearer understanding of the error message. Though I have read conflicting reports, the information provided does make sense (especially in regards to the next section of this post).

My options here I guess, are to wait it out and see if iMessage works in a few weeks time, or call Apple Support and see if they can remove the blacklist.

Removing old Mac from Apple iCloud

After trying to configure iMessage, and learning about the device quota, I had a look on iCloud to see what devices I was signed into. Lo-and-behold, my Yosemite build was still there (defined as a Mac Pro). It was right there next to my Sierra build (defined as iMac 27″). I didn’t have a screenshot of them both there, annoyingly.

My old Hackintosh build appearing in iCloud Devices

My old Hackintosh build appearing in iCloud Devices

So what was happening here? Despite them physically being the same machine, they’re treated as two separate machines on iCloud because when I did a fresh install from Yosemite to Sierra, I assigned new serial numbers and System Definitions to the machine.

In any normal scenario, I should be able to select the device on my iCloud, and ‘Remove’. This didn’t work. This was the second most irritating issue in this post. No matter what I did, the device would not delete. I tried from my iPhone, I tried from iCloud.com, I tried from appleid.apple.com. Nothing. Would. Work. It just kept reappearing when I reloaded the page.

The solution is a bit of a pain in the ass, but relatively simple

  1. Open up your favourite software for editing your config.plist. I used Clover Configurator.
  2. Make a note of your current, working Serial Number, UUID, Board Serial etc.
  3. Change your current serial number to your old builds serial number, reboot.
  4. Check that the serial number has changed
  5. Sign into iCloud on the Mac (may not be necessary, but I had to do this to let iCloud know the machine’s active)
  6. Sign into iCloud.com, remove the Mac from Device List
  7. Log into appleid.apple.com to verify the machine has been removed
  8. Sign out of iCloud on the Mac, and clear your caches by opening Terminal and entering the commands below
  9. Reboot
  10. Open up Clover Configurator and change your Serial Number back to your working one
cd ~/Library/Caches/
rm -R com.apple.Messages*
rm -R com.apple.imfoundation*
cd ~/Library/Preferences/
rm com.apple.iChat*
rm com.apple.imagent*
rm com.apple.imessage*
rm com.apple.imservice*
rm -R ~/Library/Messages/

If all is well, your old build will disappear, and your Sierra build will now appear as the only device:

List of devices on my Apple ID

My updated Sierra build showing correctly on Apple ID

I don’t think that changing my serial number again has helped my chances of getting iMessage to work, but time will tell for that one.

In hindsight, I definitely should have signed out of iCloud on Yosemite before doing a fresh install of Sierra. Next time, I’ll also take note of my current working Serial Number and transfer that one to the next upgrade.

Final thoughts

All in all, the process was relatively smooth. I feel a bit silly for worrying that everything would crash and burn. I definitely prefer Clover to Chimera/Chameleon – boot time is much faster, performance is smoother, and overall, the system is much more stable than it previously was. I also have to give a massive, massive thank you to the Hackintosh community over at tonymacx86 and /r/hackintosh. There are some tremendous resources out there, so it’s comforting to know that you’re not stranded when it comes to things breaking on hackintoshes.

Here’s hoping that the next major update to macOS is smooth for the hackintosh.