Mulle kybernetiK - Tech Info:
Building another Hackintosh
In 2009 I decided to dip my toes into the Hackintosh world and build my first Hackintosh. It was a resounding success and the machine has served me well since. So, in August 2012, with Intel's Ivy Bridge and Apple's Mountain Lion out, I decided to build another Hackintosh. This article describes my experience.
© 2012-2020 Mulle kybernetiK - text by erik

Contents

  1. Why again
  2. The hardware
  3. The build
  4. The install
  5. Updates
  6. The end

1. Why again

The xMac gap still exists in the Apple product line. The reasons I had in 2009 not to buy another Apple tower are still valid. Even worse, in 2012 the Mac Pros are not only expensive but they are quite outdated, too, from a technical perspective; and the only response from Apple to widespread criticism after WWDC was a promise to release something in 2013.

At the same time the experience with my previous Hackintosh was great. When I built it I was a bit cautious because I didn't know whether a Hackintosh would work for me or whether it would be replaced by an Apple machine a few months later. This time round I was much more confident and I'm fully expecting to get three or more years out of my new Hackintosh again.

Having a longer term perspective meant that I considered high-end parts. The cost for the hardware was still only around €1500 in total.

2. The hardware

Most of the parts are high-end desktop parts. I did not get into workstation technology such as Intel Xeon processors or EEC RAM. This means the machine is not completely comparable to a Mac Pro, but from a performance perspective it clearly is.

Mainboard: Gigabyte GA-Z77X-UP5 TH

Rule #1 for building a Hackintosh: use an Intel CPU and Intel chipset. The chipset choice was easy, Intel's Z77 Express is the "performance" chipset for the new Ivy Bridge processors. Rule #2: use a Gigabyte board. The choice here wasn't obvious because Gigabyte offers so many boards. Playing into this was the expiry of the deal Apple and Intel had regarding Thunderbolt.

The Z77X-UP5 TH is one of the high-end boards, has very compatible sound, network, and USB3 hardware, and it has two Thunderbolt ports. So I went for that. Judging from the reports on the forums I'm not the only one, which is a plus, too, because it means that there are other people who can help. I learned that lesson with the more exotic board I chose for my first Hackintosh.

CPU: Intel Core i7-3770K

Even though the improvements in Intel's new Ivy Bridge processors are not as relevant in desktop use as they are in laptops it still makes sense to go for the latest processor generation. The 3770K is the high-end offering. It has 4 cores with 8 parallel execution threads, a clock frequency of 3.9GHz in turbo mode, and it can be overclocked; although overclocking an Ivy Bridge CPU seems to be a whole different story.

If you look closely at the picture on the right you can see that I got the tray version of the CPU. This is cheaper because it doesn't include a basic cooler and fancy packaging; I didn't need either.

CPU Cooler: Corsair Hydro Series H60, Noiseblocker BlackSilentPRO PL-PS

To leave me the option to experiment with overclocking while maintaining a relatively quiet machine I decided to try water cooling. I wasn't quite ready to build a proper water cooling system so I went for a closed-loop solution from Corsair. It ships fully assembled, doesn't need maintenance, never mind refilling, and is as easy to install as an air cooler. Even the price is similar.

The only change I made was to get a different, much more quiet, fan for the radiator. At that point I learned that not only volume but also static pressure is important when selecting fans for radiators.

Memory: Corsair Vengeance 8GB DDR3-1600 CL8 Kit

Corsair memory served me well in the past, and the 1600MHz CL8 modules support a faster XMP mode, which is also supported by the mainboard.

GPU: XFX Radeon HD6870 Dual-Fan 1GB

Actually, I had bought this graphics card in November 2011 and used it in my previous Hackintosh. At the time it was the best-performing GPU that worked well with OS X Lion. It's still a pretty good choice, and the XFX version with two fans is relatively quiet.

Case: Fractal Design Define R3 Black Pearl, Noiseblocker eLoop Bionic B12-1 (2x)

Simple, understated looks, and good build quality. Great internal design and good airflow even with a physically bigger graphics card. The two slow-running Noiseblocker fans serve as intake fans on the front of the case.

PSU: Seasonic X-560

This power supply is modular, so there are no excess cables needing to be hidden, and the cables are long enough to work well when the power supply is mounted at the bottom of the case. It is very energy efficient, 80PLUS Gold certification, and quiet; the fan only starts above 20% load, which the system does not reach when idle. Lastly, the power supply and mainboard support an ErP compliant mode. In standby the system draws less than 0.1W of power, the lowest my power meter can measure.

Storage: Corsair ForceGS 480GB, Seagate Barracuda 500GB

I definitely wanted an SSD, I didn't want to fiddle with boot and data disks, and I wanted both, OS X and Windows, on SSD. So 480GB was about the minimum capacity. When it came to models I decided that a Sandforce-based SSD probably matches my usage profile the best.

The spinning disk, taken from my previous machine, is for Time Machine backups.

Picture 1: The delivery spread out on our floor, an evening's worth of work ahead of me.

3. The build

The build was very straight-forward, and the Fractal Design case makes it possible to route cables in a space behind the mainboard tray, resulting in a much tidier look; not Apple-tidy but pretty okay if you ask me.

The water cooling solution comprises the pump, which sits on top of the CPU, and, connected by two sturdy tubes, a radiator with a 120mm fan on it. I basically replaced the rear exhaust fan with the radiator/fan combination.

The only slight issue with this build was the lack of a decent fan controller on the mainboard. The Gigabyte board only has two fan circuits, one for the CPU fan and one for all other fans. The water cooling system's pump is connected to a fan header and it must run at full speed at all times, which means that the other fans have to run at full speed all the time, too. Using the slow Noiseblocker fans as intake fans this wasn't a problem, though.

For the basic BIOS settings I started with the setting for a very similar Gigabyte UEFI board as described in this post. These settings were sufficient to get OS X installed as described below.

Given that the processor and board support overclocking I just had to experiment a bit. In the end I settled for raising the base clock to 103MHz and the turbo multiplier to x42 across the board. I had played with Gigabyte's EasyTune utility but found that that increases the CPU voltage slightly; mostly likely in an attempt to provide more stability. I found that the system was stable without increased CPU voltage and the increased voltage did increase processor temperature noticeably. In addition I turned on XMP Profile 1 for the RAM.

Even under the most extreme load, caused by the Prime95 torture test, the system is completely stable. After an hour of the test the average processor core temperature is around 72°C, which seems acceptable. If I run FurMark in parallel to stress the graphics card, and remove one worker thread in Prime95 so that FurMark isn't bottlenecked on the CPU, temperatures rise by another 10°C, obviously because the air that is blown over the radiator is from inside the case.

With this setup the system gets a GeekBench score of just over 15000 (32-bit version), which isn't bad at all looking at the results for real Macs. The 8 and 12 core machines in that list are dual-processor Xeon machines by the way.

Picture 2: Assembled system. Definitely getting closer to a tidy "Apple look". Click to enlarge.

4. The install

This time I decided to go the convenient route and used UniBeast/MultiBeast for the installation and post-install tuning.

The install was still not completely painless as I ran into two problems: booting from the USB stick that I had prepared with UniBeast resulted in a kernel panic early during the boot. It took me a while to figure out that this was caused by the USB stick itself, especially because I didn't suspect the stick, after all I had used it to install Lion on my previous Hackintosh. In the end it seems that for some reason Mountain Lion was confused by the U3 feature of the stick, which effectively makes the stick appear as a hub. The second problem was a hanging white screen later during the boot. This turned out to be a well-known problem with Radeon HD 6870 graphics cards, which only occurs during installation. An easy workaround was to install using the Intel HD Graphics 4000 provided by the CPU and chipset, and switch back to the discrete graphics card afterwards.

With the previous Hackintosh I had spent a fair bit of time creating a good DSDT for the system. The new mainboards with UEFI BIOS work without a DSDT so this wasn't an issue at all. In fact, Gigabyte seems to be lending a helping hand as alluded to in this post. Dual-booting with Windows 7 is now properly supported by the Chameleon boot-loader so nothing special required either.

Post-install tuning was mostly limited to running MultiBeast with the following settings:

  • User DSDT or DSDT-Free Installation
  • Drivers / Realtek ALC8xx / Without DSDT / ALC898
  • Drivers / Disk / 3rd Party SATA
  • Drivers / Disk / TRIM Enabler
  • Drivers / Network / hnak's AppleIntelE1000e Ethernet
  • Customization / System Definitions / iMac12,2

Most of the choices are obvious and they reflect the chips on the mainboard: Realtek ALC898 sound, Marvell 88SE912 SATA controller for the additional ports, and Intel 82579V ethernet. A patch to enable TRIM for non-Apple SSDs is needed even on real Macs. The reason for not using the MacPro3,1 definition, which is traditionally used for most Hackintoshes, is that the graphics card does not work properly after sleeping. It's not obvious in desktop use but the Cinebench score drops dramatically, proving that something is wrong. This is fixed with the iMac12,2 definition.

After running MultiBeast with these settings I noticed two issues. When the computer was waking up from sleep the keyboard and mouse were unresponsive for 20-30 seconds and subsequent system shutdowns would fail. One fix for this was to disable overclocking and the XMP memory setting in the BIOS. A better fix was to upgrade the BIOS to version F9 and disable CPU PLL Overvoltage as described in this post. The second issue was a 20 second delay towards the end of the boot process. I was able to fix this by completely disabling the internal graphics option in the BIOS.

With this setup the only issues that I am aware of are: no support for "Find My Mac" in iCloud and very low (too low) volume on the front-panel microphone port.

Picture 3: Success. The About This Mac screen shows Mountain Lion running on the Hackintosh.

5. Updates

10.8.1: Updated from the AppStore. No issues.

10.8.2: Updated from the AppStore. No issues.

10.8.3: Updated from the AppStore. Ran latest Multibeast. No immediate issues. There were a small number of occasions, though, where under extreme load OS X would completely freeze; no kernel panic, no reset, just completely unresponsive. I was never sure whether it was caused by my overclocking, whether it had to do with the network driver, or whether it was something yet different. Either way, I had also come to realise that by using the iMac12,2 definition I was running my shiny Ivy Bridge CPU with Sandy Bridge power management. Following the instructions from this thread I switched to native Ivy Bridge power management, using the iMac13,2 system definition and an SSDT created for my processor and overclock settings. By the way, I also went back to the standard 100MHz base clock. Haven't seen a freeze yet.

10.8.4: Updated from the AppStore. Ran latest Multibeast. No issues.

10.8.5: Updated from the AppStore. Ran latest Multibeast. No issues.


10.9.0 (Mavericks): Used Unibeast to create a USB stick, from which I upgraded the system. Everything looked okay at first but then I realised that GPU power management was broken, leaving the GPU stuck at about 1GHz under certain conditions. (Since the original build I had switched to an NVIDIA GTX 670 graphics card, which had worked fine on Mountain Lion.) Reverted back to 10.8.5 in the hope that this would be fixed in a later update.

10.9.1: In the meantime the problem had been understood and a workaround found. Reinstalled using Unibeast, applied the workaround, no issues since.

10.9.2: Updated from the AppStore. No new issues, added updated workaround for GPU issue.

10.9.3: Updated from the AppStore. Switching to NVIDIA's latest web drivers, released for 10.9.3, fixed the GPU issue. The iMac model my Hackintosh pretends to be supports autopoweroff. This didn't seem to work with the Hackintosh so I turned it off using the pmset command. No known issues remaining.

10.9.4: Updated from the AppStore. Updated NVIDIA driver and applied TRIM and HDA patches via Multibeast. No issues.

10.9.5: Updated from the AppStore. Updated NVIDIA driver and applied TRIM and HDA patches via Multibeast. No issues.


10.10.5 (Yosemite): After a long, happy period with Mavericks two factors drove me to switch to Yosemite just when it had reached its final version. One of them was the release of Xcode 7, which doesn't run on Mavericks, the other a new graphics card. The card is an NVIDIA GTX 970, ie. a card with a Maxwell architecture. This is supported by NVIDIA's web drivers, but only by the drivers released for Yosemite.

For the upgrade I used Unibeast to create a USB stick, from which I upgraded the system. Everything worked out of the box.


10.11.5 (El Capitan): Like with Yosemite, I waited until the final version (or so I thought) of El Capitan before upgrading. Again I had been happy with the version of OS X I was running, but ultimately needed to upgrade to be able to use the latest version of Xcode.

For the upgrade I decided to go with Unibeast again, but in the meantime that had switched boot loaders, from Chameleon to Clover. To be honest, I had known about Clover for a while and it had looked appealing; not appealing enough, though, to invest the time to understand it. Now I had a reason... Given the depth of the changes I didn't even attempt to do an in-place upgrade and opted for a fresh install instead.

While making the switch to Clover I decided to also switch from Legacy (BIOS/MBR) boot to UEFI boot. That meant that I had to convert my Windows 10 installation to EFI, too. Following the instructions in this post the procedure was relatively straight-forward.

Installation of OS X was smooth, but booting OS X directly from the harddisk, without using the Clover USB stick, turned out to be a bit tricky. In its own boot selector the UEFI BIOS showed two boot options, labelled, somewhat surprisingly, Windows and Mac OS X. But no matter what I chose it booted Windows. It seems my UEFI BIOS is "badly written" and needed the change described in this post. (Update: much later I found out that Clover can write its own boot entries into the BIOS and using those solves the problem much more elegantly.)

A little bit of tweaking the Clover config, using the excellent Clover Wiki, applying the autopoweroff change described above, and, of course, installing the NVIDIA web drivers, got me to a nicely working Hackintosh with El Capitan.

10.11.6: Updated from the AppStore. Updated NVIDIA driver. No issues.


10.12.4 (Sierra): As in previous years I wasn't particularly excited about any of the major features introduced with the new version of OS X macOS and so, again, I waited for a good while before making the upgrade. With the new Clover bootloader setup I changed to for the El Capitan upgrade, this one should have just worked out of the box, directly upgrading from the Mac App Store.

To be fair, it did, but there was one small issue. The first attempt to do the Sierra upgrade from the App Store got me a reboot and a machine booting back into El Capitan. A quick web search reminded me that I should actually upgrade Clover from time to time... With Clover updated to a current version, the upgrade to Sierra just worked out of the box. I didn't notice any issues afterwards.

10.12.5: Updated from the AppStore. Updated NVIDIA driver. No issues.

10.12.6: Updated from the AppStore. Updated NVIDIA driver. After the update the system booted without issue but sooner or later heavy graphic glitches started appearing, eg. parts of windows were transposed, content from other windows, even closed ones, would show up in the wrong place, sometimes the entire window system would become unresponsive, sometimes leading to a forced log out. The issue was bad enough to render the system unusable.

Immediately, I suspected that the problem might not have been with the software update but with the new graphics card, an NVIDIA GTX 1080 (Pascal) card, which I had added to the system shortly before the update. Reverting to 10.12.5 did not fix the problem, confirming that it really was a problem with the new GPU.

I was ready to try High Sierra, which was just around the corner, or, in the worst case, downgrading to the old graphics card, when reading about similar issues gave me one more idea: trying a different video port on the graphics card. And indeed, swapping the Display-Port-to-Display-Port cable I had used before with an HDMI-to-DVI cable fixed the problem. With the different cable 10.12.6 works fine. How weird.


10.13.6 (High Sierra): My plan was to skip High Sierra but the lack of NVIDIA drivers for Mojave forced me to do the upgrade to High Sierra in the end. Staying on Sierra was not an option because the latest versions of Xcode don't work on it anymore.

Before the actual OS ugrade I installed the latest version Clover, added apfs.efi to the Clover drivers, and installed the latest versions of the Lilu, AppleALC, and WhateverGreen kernel extensions. The latter required a bit of tinkering with the Clover config, but that was well explained in this post.

I did the upgrade from the App Store and the only problem I encountered was a kernel panic after the second installer reboot. After some investigation I found out that this was caused by an entry in the MATS ACPI table of my computer's firmware. This table is not needed so I was able to solve the problem by simply dropping the table with an entry in the Clover config.

A positive side-effect of the changes is that the GPU intergrated in my processor is now available to macOS, in addition to the discrete NVIDIA card.


10.14.6 (Mojave): As usual I waited for a good while before thinking about upgrading to the next version of macOS. In previous years I had simply found no reason to upgrade early in the cycle. This time round I experienced a number of issues with the early releases of Mojave on my work MacBook Pro, which made me really sceptical about upgrading. All of this was pretty irrelevant, though, because I use an NVIDIA card that's not supported natively by macOS, and, for one reason or another, there are no drivers from NVDIA available for Mojave. Using the iGPU wasn't an option either. It is supported by Mojave, but it cannot drive my 4K display at 60Hz.

With no change in sight regarding the NVIDIA situation, I knew I had to get a supported AMD card. Outright replacing the NVIDIA card wasn't an option. I don't need much GPU power on macOS but the Hackintosh doubles as a Windows gaming machine. Spending lots of money on an AMD card that would be merely almost as good as the card I already have didn't make sense. So, I bought the smallest supported AMD card, an RX 560 4GB, and put that into the Hackintosh in addition to the NVIDIA card. To make the experience smoother, the AMD card went into the first PCIe slot and the NVIDIA into the second. Given the rest of my hardware that meant halving the PCIe lanes for the GPU from 16 to 8 but for all I know this doesn't have a discernable impact on performance. This worked but, unfortunately, with the NVIDIA card still present, the Hackintosh lost its ability to sleep.

Using the AMD card, and current versions of Clover, Lilu, WhateverGreen, AppleALC, and IntelMausiEthernet the update from High Sierra to Mojave went smoothly.

Picture 4: After years of updates: the About This Mac screen shows Mojave running on the Hackintosh.

Picture 5: After years of hardware changes: new case, back to air-cooling, vastly better GPU, no optical drive. And the look is even cleaner. Go PC! Click to enlarge.

Note: This picture shows the Hackintosh before I added the additional graphics card to run Mojave.

6. The End

After more than a decade of using a Hackintosh as my main computer, in May 2020, I decided to buy a Mac again. Apple still doesn't make a computer that sits "somewhere between" the Mac Mini and the Mac Pro, which is what I wanted all along (see above). Today, both, the Mini and the Pro, are great machines but the Mini still doesn't provide extensibility and the Pro still costs more than I'm willing to spend. So, what changed my mind?

First, there are the problems with the Hackintosh. Due to the lack of NVIDIA drivers I had to add a second GPU for macOS (as described above). Having to remember to switch inputs on my monitor and, especially, the fact that the Hackintosh couldn't sleep anymore got annoying. And while most updates worked without issues, I got increasingly nervous with the changes to filesystems and disk structures. So much so, in fact, that I didn't even try to enable File Vault, which means I was missing out on a major security feature. Speaking of which, these days running a Hackintosh is only possible by disabling System Integrity Protection, another useful security mechanism.

What also crossed my mind was that the Hackintosh scene seems to have become increasingly dependend on a very small number of individuals who provide and maintain some complex key components. It seems possible to find out a bit more about them, but it's totally unclear how they are funded, and what would happen if they simply lost interest in continuing to develop these components.

The second main point is that I realised I didn't need the computer anymore that I had wanted all along, provided that I'm okay with having two computers. The Hackintosh had doubled as a Windows gaming machine because gaming on a Mac hasn't been an attractive proposition for a long time. So, keeping the Hackintosh computer for gaming on Windows, Apple's current notebooks are sufficient for everything else I need a computer for these days.

Working from home due to the Covid-19 crisis had forced me anyway to change my home setup in such a way that I can use the MacBook Pro I got from my employer with my monitor, mouse, keyboard, and audio devices. And it's set up so that everything (power, video, audio, USB) goes through a single USB-C cable between laptop and monitor. So, at the end of the day I can now close the work MacBook, and plug the USB-C cable into my new personal MacBook.

Final question: did the announcements at WWDC 2020 change anything? Not really. It is now clear that my Hackintosh would not have been able to run Big Sur. (My Hackintosh was basically a 2012 iMac and these are unsupported.) It is also clear now that it would have been possible for me to jump straight from the Hackintosh to an ARM-based Mac. The deadline here is next April when Big Sur will likely become a requirement to run the latest version of Xcode. I had suspected that this could be a possibility when I ordered the Intel MacBook. However, despite my reasonable experiences with buying one of the early Intel MacBooks during the last CPU transition in 2006, I wasn't too keen on being a guinea pig with this transition again.

Picture 6: My new MacBook Pro running Catalina