- Apr 7, 2011
- Asrock Z370 Extreme4
- GeForce GTX 960
- Classic Mac
- Mobile Phone
erik's "Tiny But Mighty" High Sierra Coffee Lake Build:
i5-8400- Asrock Z370m-ITX/AC - Intel UHD 630 - 16GB RAM
i5-8400- Asrock Z370m-ITX/AC - Intel UHD 630 - 16GB RAM
Intel Core i5-8400 Coffee Lake 6-Core 2.8 GHz (4.0 GHz Turbo)
ASRock Z370 Extreme4 motherboard
16GB (2 x 8GB) G.SKILL Ripjaws V Series DDR4-2666 SDRAM
250GB Samsung 960 EVO M.2 250GB VNMe PCI-Express 3.0 x4 SSD
Noctua Low-Profile Quiet CPU Cooler for Intel 115x Based Retail Cooling NH-L9I
2x Noctua NF-A4x20 PWM premium-quality quiet 40mm fan
MITXPC MX500 Industrial Fanless Mini-ITX Case (VESA mountable)
Mini-Box picoPSU-160-XT High Power 24 Pin Mini-ITX Power Supply
Mini-Box 12A/144W AC to DC Switching Power Supply 110-240vAC to 12vDC PicoPSU Compatible
Broadcom BCM94352Z NGFF Dual Band 802.11ac 867M Wifi BT 4.0 Lenovo FRU 04X6020
I had a 1.4 GHz Mac Mini I was using as an HTPC/home server. I had been getting fed-up with -- ironically -- how unstable this machine was in comparison to my hackintosh builds. Not to mention that it was slow and not upgradeable.
On the tail end of an 8700k build, I decided to sell the Mac Mini and do a mini-ITX HTPC build to replace it. I wanted a tiny case that my toddler wouldn't be able to reach. The ideal case seemed to be a Mini-ITX case that could be mounted to a VESA-bracket. The MITXPC MX500 fit the bill. It's not a gorgeous case, but it's the biggest VESA mountable case I could find that was inexpensive.
I decided to go a little overkill on the memory and system drive, opting for 16GB and a 256GB PCIE M2 SSD. Realistically, a 128GB SSD/8GB of DDR4 would do the trick. But I'd rather spend a little more and have some breathing room.
I knew I wanted Coffee Lake since it was by far the best value, and I had loved the ease and speed of my 8700k build. For that build I used an ASRock Extreme 4, and it was very, very easy to configure. So going ASRock was a no-brainer for me, which pushed me to the Z370M-ITX/ac board.
I swapped out the Intel wifi chip that came with the board with a Broadcom BCM94352Z NGFF Dual Band 802.11ac 867M Wifi chip, made by Lenovo (FRU 04X6020). There are hundreds of these on eBay shipping from China. Takes a while to get here, but they're only $20 and work great. Swapping this out took a little finesse -- you need to remove the Wifi modules, replace the M2 card, reattach antennas, and reattach Wifi module.
The stock fan on the Intel CPUs is too tall for the case I chose. A fan of Noctua, the NH-L9i was an easy choice. I paired it with a couple 40mm PWM fans set up to exhaust to help cool the case. I would have done an intake-exhaust setup across the case, but the fans are too wide to mount on the other side of the case. Shrug. For now it seems fine. The HSF blows down, pushing out hot air, which these fans help exhaust. I'll put some 10mm wide intake fans on the other side of the case if I can find some PWMs.
The most complicated part of the build was the CPU choice. I needed it to be low power (65w or less) and have working integrated graphics. For what I needed it for, the i3-8100 was plenty. Four cores, 3.6 GHz, UHD 630 graphics. So I ordered this first, without much of a thought. Several others have built i7-8700ks and got 100% functional integrated graphics, so I figured the i3, with the same graphics SKU, would work fine.
The build was easy. (More details below.) However, I could not get graphics acceleration to work. The GPU was recognized using Kaby Lake device ID, it was given full memory, etc. But no acceleration. I tried everything under the sun to get acceleration to work. No luck. I then re-tested by 8700k's integrated graphics to confirm acceleration. Worked like a charm. What gives? I searched other builds on this site, reddit, etc. and found that nearly all Coffee Lake builds were either 8700k builds or used an external GPU.
If you dig into the docs on the Coffee Lake GPUs, you'll find that the i5-8400 and up have device ID 3E92. Slower chips have 3E91. People had success with the 3E92 8700k integrated graphics, as did I. My hypothesis then was that the 3E92 GPUs would work, but the 3E91s would not.
I decided to order an i5-8400 -- which has device ID 3E92 -- to see if this would fix my problem.
I popped it in, booted the configuration I already had setup, and bam -- success! Full acceleration.
The end result is an $800, blazing fast, tiny 6-core build that hides behind my TV and can put the Mac Pros to shame!
Making the Build Work
The default BIOS settings are almost perfect to get started. All the ACPI/USB/CPU/Chipset settings can basically be left aone.
I used my Mac Mini to create a fresh install of High Sierra 13.1 on an external HD. I just selected the external on the install menu and followed the prompts as usual. I then downloaded the latest Clover, put a basic config.plist (the attached will work), installed FakeSMC, and booted into the drive. It worked first try! I then used SuperDuper to clone the drive to my 960 EVO and then installed Clover locally and copied over all of my kexts. Native boot worked and I was off and running to get my live system set up.
I also did a USB build using Unibeast when testing the broken graphics. That worked fine too. Pick your poison.
The config.plist used is in the attached zip. Here are the essentials.
ACPI: HDAS -> HDEF, HECI -> IMEI, GFX0 -> IGPU (the patches pre-programmed into Clover Configurator work fine
Boot: dart=0, -disablegfxfirmware
Devices: IntelGFX=0x59128086, Audio=1
Graphics: Inject Intel, ig-platform-id=0x59120000
Kernel and Kext Patches: Wifi patch
SMBIOS: iMac 18,3
See the attached. I used:
RehabMan's FakeSMC kexts
IntelMausiEthernet for Ethernet
Lilu.kext + AppleALC + CodecCommander for sound
USBInjectAll + XHCI-200 series injector in /L/E to get USB to work on initial boot
Rehabman's FakePCIID + FakePCIID_Broadcom_Wifi kexts
RehabMan's Broadcom Kexts (BcrmFirmwareRepo, BcrmPatchRAM2)
I followed Rehabman's directions to create an SSDT to inject only the USB ports on the motherboard. Works great.
I created a power management SSDT using a PR on PikerAlpha's ssdtPRGen.sh script. This gets me full working power management.
Intel graphics work fine.
I use AppleALC. Even though this is an HTPC, I did not try HDMI Audio (it should work fine). I actually prefer to use the sound with a cable because I can use my HTPC keyboard to adjust the volume without touching my receiver. Personal preference.
Ethernet works easily with IntelMausiEthernet. Wifi and Bluetooth work with the installed chip and patches.
LILU + AppleALC + RehabMan's fork of CodecCommander work perfectly with no editing. I don't actually sleep because I use this as a server, but it does work.
SSDT injects the correct ports and I have no problems.
Idles in the low to mid 30s and never goes over 50C in Geekbench. When doing backups to an attached USB hard drive on it, it sits in the 40s. Haven't tried "torturing" it, and don't plan to. Intel Power Gadget hasn't had it hit over 55w, so the 144w power brick/160W Pico PSU should be absolutely plenty.
This is one of the favorite builds I've ever done. Besides the missteps with integrated graphics, this was a very easy build and it works great. I love that it mounts to my TV, is super fast, and runs cool.
Around the holidays I will probably put a 4gb internal HDD in it to streamline network backups. May pose some thermal challenges, but we'll see!