- Feb 8, 2013
- ASRock Z690M-ITX/ax
- RX 6600
- Classic Mac
- Mobile Phone
Celeri's Hack Mini II (aka. "Silent Mini Beast")
ASRock Z690M-ITX/ax + Core i5-12600 + Sapphire Radeon RX 6600
ASRock Z690M-ITX/ax + Core i5-12600 + Sapphire Radeon RX 6600
I have always liked small form factor machines since I got my first Mac Mini in 2006. In 2018, I had to change my venerable 2012 model but Apple's "mini" lineup was not very exciting, and I also wanted a real GPU for certain apps and games. So I built my first "Hack Mini" with a Silverstone SUGO 13 containing a Gigabyte Z370N-WiFi, a Core i5-8600 and a Sapphire RX 580. It was a good machine indeed and was quite happy with it.
And so we are in 2022, this machine is turning 4 and I want to build its successor with the same idea : small form factor, mid-range performance CPU and GPU with low TDP and low noise. Of course, I could wait for the upcoming M2 Mac Mini, but I want to be able to boot some VMs that I still use regularily, and the current solutions on Apple Silicon are not satisfactory. So this new hackintosh will allow me to wait 3-4 more years, before macOS gets Apple Silicon only.
- CPU : Intel Core i5-12600 (3.3 GHz)
- Motherboard : ASRock Z690M Z690M-ITX/ax
- GPU : Sapphire Pulse Radeon RX 6600 8GB
- RAM : Corsair Vengeance LPX 32GB (2x16GB) DDR4 3200MHz C16 XMP 2.0
- SSD : WD Black SN750 2TB
- Cooler : Noctua NH-D12L
- Power Supply : Cooler Master V750 SFX Gold
- Intake fan : Noctua NF-A12x25 PWM
- Exhaust fan : Noctua NF-A12x15 PWM
- Case : Silverstone SUGO 16 Black
- WF+BT : BCM94360NG 802.11AC M.2 WiFi Bluetooth Adapter (optional)
About the case
Silverstone's SUGO-16 is one of the best mini-ITX cases out there. It is elegant, sturdy and very well engineered. The parts are easy to open and close, and all ventilation holes are protected by dust filters that are easy to clean. You can use either an ATX or a SFX power unit which goes in the front (the power plug is extended to the rear of the box), the motherboard goes on one side, and the GPU on the top. This way, you have much room to put a large cooler in the case, despite its small form factor, which allow for a much better control of temperatures—and noise.
Here is a video that will illustrate most of what I said (and much more):
About the GPU
I have chosen the Sapphire Pulse RX 6600 for several reasons: the card itself is small and not too power-hungry, its Navi23 architecture works well in macOS since Monterey 12.1, and I already had a very good experience with my Pulse RX 580 in my previous "Hack Mini" build.
You can use several other models (the SUGO 16 case supports standard PCI-E cards up to 275mm in length!), but keep in mind that using a dedicated GPU is mandatory with an Alder Lake CPU, because its integrated UHD 770 is not supported by any version of macOS.
About the WiFi+BT module
Replacing the stock WiFi+BT module is completely optional: thanks to drivers developed by the community (see the "What works" part below) you can get basic functionality without touching this module.
However, if you wish to have Apple-specific features such as Handoff, Airdrop or Watch Unlock, then you should buy a BCM94360NG by Fenvi, which includes the same components as real Macs. Is is not 802.11ax compatible, however, so other PCI-E cards should be considered if you really need WiFi 6.
Installing the BCM94360NG module is very easy and straightforward, as it has exactly the same dimensions as the stock module: just make sure that the cables for the "MAIN" and "AUX" antennas go with the same connector on the BCM94360NG. I am not 100% sure this must be respected, but I did not want to end up dismantling my machine and build it again just to invert two cables!
Be aware that this is not an easy build, and the main culprit for this is the cooler: it is very efficient but its size makes difficult to install everything in the case. If you want to have a much more comfortable build, you could turn to another cooling solution, such as Corsair's H60 AIO cooler, which is roughly the same price as the NH-D12L but seems to be a bit noisier, in which case you should still buy theNF-A12x25 to replace its stock fan.
If you prefer air cooling over water cooling (just like me), then the NH-D12L should be your best pick, and I suggest you organize your build following these steps:
- Connect the processor, RAM, M.2 SSD and the GPU to the MB, but NOT the cooler (it would block the power supply's installation later)
- (optional) change the WiFi+BT module in the small metallic case (make your choice before assembling the machine, modifying it later would be a hassle)
- Install the "infrastructure" of the cooler on the MB (everything except the cooler itself)
- Connect the intake and exhaust fans to the motherboard (with their respective "low noise" adapter if applicable)
- Connect the case's onboard headers & USB ports to their respective plug on the motherboard
- Connect the power supply to the MB still out of the case
- Install the MB in the case
- Install the intake and exhaust fans on the case
- Install the power supply in the case
- Install the cooler (of the the 2 fan's bracket may be a little hard to reach because of the slim space between the cooler and the case, you can use some hooking tool for this)
- The motherboard firmware used is 8.02 (most recent at the time of build)
- The bootloader used is OpenCore 0.8.3 (most recent at the time of build)
- The Mac model used is MacPro7,1
- The macOS version installed is Monterey 12.5.1 (most recent at the time of build)
- The SSD is installed on M2_1 port (the second one is not used but should work)
- The main cooler's fan is directly connected to the CPU_FAN plug
- Both intake & exhaust fans have their "low noise" adapter installed, because the processor chosen has a low TDP and is not overclocked. If you consider using a "K" series, I would recommend not using these adapters.
- Both intake & exhaust fans have been configured in "Silent" mode in the BIOS settings. Again, this may not suit a "K" CPU model.
At the first boot, hit the DEL or F2 key to enter the firmware settings of the motherboard and locate the "Load UEFI Defaults" in the "Exit" tab. Then look for the following settings and set the corresponding value:
- DRAM XMP 2.0 → Profile 1
- Primary Graphics Adapter → PCIE1
- Legacy USB Support → Enabled
- XHCI hand-off → Enabled
- Config Lock → Disabled
- Fast Boot → Disabled
- Secure Boot → Disabled
- Intel Platform Trust Technology → Disabled
- Security Device Support → Disabled
I will not develop this part in detail, as it would basically paraphrase TonyMacX86's guide.
My two main sources of information to have a fully working EFI folder were:
- Dortania's OpenCore Install Guide
- Z690 Aero G golden build by @CaseySJ, which contains many great advice for a quite similar build
As you probably already know, macOS can only address 15 USB ports, knowing that a USB2+USB3 plug counts as two ports. The internal Bluetooth module also needs one. So a selection has to be made, and here is mine:
Everything I could test! \o/ ... provided that you replace the internal WiFi+BT module by a BCM94360NG. If not, you will have working WiFi and Bluetooth, but without specific Apple/iCloud features such as Handoff, Airdrop, Watch Unlock, Universal Control, etc.
Here are the main results for this build:
- Geekbench 5 → Single Core = 1,833 & Multi-core = 8,791
- Cinebench R23 → Single Core = 1,649 & Multi-core = 11,516
- CPU temperatures : between 35-45°C in typical use, 50-55°C in gaming
- GPU→ use "agdpmod=pikera" in NVRAM/boot-args
- Geekbench 5 → OpenCL = 57,636 & Metal = 82,006
- Unigine Heaven = 2,448 in "Extreme" benchmark
- Sound : both DisplayPort & analog work out of the box → use "alcid=12" in NVRAM/bootsargs
- Intel 1G Ethernet : working out of the box
- Realtek 2.5G Ethernet : working thanks to LucyRTL8125Ethernet.kext → https://github.com/Mieze/LucyRTL8125Ethernet/
- Stock WiFi : working thanks to itlwm.kext → https://blog.kulman.sk/using-intel-wifi-bt-on-macos/
- Stock Bluetooth : working thanks to IntelBluetoothFirmware → https://github.com/OpenIntelWireless/IntelBluetoothFirmware/issues/369
- Sleep works too! Well, not out of the box, as it needed to be very cautious with the USB Mapping and type some commande line (see in the "Problems & solutions" part below), but I definitely can put this beast into sleep and find it as-is the next morning!
- GPU acceleration in video software like VideoProc : I thought it would not work, since UHD 770 does not work with OpenCore, but in the end it does... Cool!
What does not work
Of course I encountered some problems during this build's preparation and some tweaking was necessary to achieve a very good result. So follow me in the following part...
Problems and solutions
- Occasional black screen after boot ➡︎ solved by installing Whatevergreen.kext (which I thought was not necessary anymore)
- Sleep not working ➡︎ solved by correcting my USBMap.kext (thanks again to @CaseySJ) → sleep now works and the machine can be awaken both by the power button or the keyboard. Note: the machines self-wakes for a few seconds every 2 hours or so (even with "wake for network access" and "power nap" options disabled, but nothing more.
- Sleep not working again after loging off and on again on iCloud : I Found "PreventUserIdleSystemSleep named: "Handoff"" in pmset logs ➡︎ solved by typing "sudo pmset proximitywake 0"
- Specific Apple features such as Airdrop or Watch Unlock ➡︎ solved by installing the BCM94360NG. In this case, no kext is needed, you do not have to install itlwm and IntelBluetoothFirmware.
- I had a "Volume hash mismatch" error notification after each reboot ➡︎ I resolved by removing "XHCI-unsupported.kext". It got better after that, but the error still occurs sometimes, especially when connecting a Bluetooth device... According to Dortania, if no other problem happens, it can be ignored.
- No Intel sensors available for the motherboard & processor ➡︎ Some info are available when using FakeSMC instead of VirtualSMC, or by installing Intel Power Toys along with Virtual SMC.
- RX 6600 sensors not available in VirtualSMC, nor FakeSMC ➡︎ Partially solved (we only get the temperature, not the fan speed) by using Aluveitie RadeonSensor package. Caution: the precise order of these kexts must be respected: Lilu → VirtualSMC → RadeonSensor → SMCRadeonGPU.
In the end, I am very happy with this build. As I said at the beginning of this post, my 3 main objectives were: small form factor, good performance and low noise. All of them have been reached. This nice little hackintosh is barely audible in typical use, and only get slightly noisy when doing some high-CPU work. The GPU can also make more noise depending on the work you ask of him, but it is still very acceptable. This is why I nicknamed it "Silent Mini Beast".
It is really a nice thing that the 12th generation of Intel's Core CPUs are working so well with OpenCore, and I can only hope the next 2-3 major macOS updates will not break that. Also note that I deliberately chose a "non-K" processor, so without the new "P" and "E" differentiated cores, which macOS does handle, hence limiting incompatibility problems. This new architecture seems to work well in hackintoshes, but I much prefer avoiding spoofing my CPU's cores.
Attached below you can find my currently running EFI folder. I only removed the SMBIOS part of the "config.plist" file, so you should generate new info (with GenSMBIOS) before using it in a similar build!
Thank you all for reading this post, I really hope you have found it useful. Feel free to ask questions or make remarks!