Contribute
Register

erik's "Tiny But Mighty" HTPC: ASRock Z370M-ITX/ac - i5-8400 - UHD 630 Graphics - High Sierra

Status
Not open for further replies.
Hi, All. and many thanks to Eric for all your hard work.
I've just built a server based on your build, and it now works brilliantly.

I too had problems with my broadcom board, which showed up WiFi fine, but had no sign of Bluetooth, either under Bluetooth or USB in system profiler

I wondered if it was the usb port not getting power.
The USB SSDT provided by eric in his first post (SSDT-UIAC - re-downloaded today, so latest version) didn't bring the Bluetooth up.
Then i found this on RehabMan's USB SSDT post
https://www.tonymacx86.com/threads/guide-creating-a-custom-ssdt-for-usbinjectall-kext.211311/page-2
post 18.

Am i right in thinking that the SSDT-UIAC only does anything if usbinjectall.kext is running?

I added RehabMan's latest usbinjectall to EFI/Clover/Kexts/Other, and the Bluetooth appeared immediately and works.

I believe this is right. My understanding is that The rehab text allows all ports and the ssdt then tells the system which specific ports to enable.

You’ll see that after loading the ssdt the non injected ports don’t show up.

Anyone with Bluetooth issues—id try to grab my latest ssdt and keep injector kext and then verify in reg output that only used ports are enabled.

If there’s a more proper way please share!
 
Erik, where can we download your latest SSDT? Right now, Bluetooth is useless for me. I've gone back to a dreaded USB scroll mouse. :(
 
erik's "Tiny But Mighty" High Sierra Coffee Lake Build:
i5-8400- Asrock Z370m-ITX/AC - Intel UHD 630 - 16GB RAM



Components

Intel Core i5-8400 Coffee Lake 6-Core 2.8 GHz (4.0 GHz Turbo)
https://www.newegg.com/Product/Product.aspx?Item=N82E16819117824

ASRock Z370 Extreme4 motherboard
https://www.newegg.com/Product/Product.aspx?Item=N82E16813157795

16GB (2 x 8GB) G.SKILL Ripjaws V Series DDR4-2666 SDRAM
https://www.amazon.com/dp/B01D8U29QQ/?tag=tonymacx86com-20

250GB Samsung 960 EVO M.2 250GB VNMe PCI-Express 3.0 x4 SSD
https://www.newegg.com/Product/Product.aspx?Item=N82E16820147593&cm_re=256_GB_EVO-_-20-147-593-_-Product

Noctua Low-Profile Quiet CPU Cooler for Intel 115x Based Retail Cooling NH-L9I
https://www.amazon.com/gp/product/B009VCAJ7W/?tag=tonymacx86com-20

2x Noctua NF-A4x20 PWM premium-quality quiet 40mm fan
https://www.amazon.com/gp/product/B071W93333/?tag=tonymacx86com-20

MITXPC MX500 Industrial Fanless Mini-ITX Case (VESA mountable)
https://www.amazon.com/gp/product/B01B575EMA/?tag=tonymacx86com-20

Mini-Box picoPSU-160-XT High Power 24 Pin Mini-ITX Power Supply
https://www.amazon.com/gp/product/B005TWE6B8/?tag=tonymacx86com-20

Mini-Box 12A/144W AC to DC Switching Power Supply 110-240vAC to 12vDC PicoPSU Compatible
https://www.amazon.com/gp/product/B007XVD452/?tag=tonymacx86com-20

Broadcom BCM94352Z NGFF Dual Band 802.11ac 867M Wifi BT 4.0 Lenovo FRU 04X6020
https://www.ebay.com/itm/Broadcom-BCM94352Z-NGFF-Dual-Band-802-11ac-867M-Wifi-BT-4-0-Lenovo-FRU-04X6020/191855727748?ssPageName=STRK:MEBIDX:IT&_trksid=p2060353.m2749.l2649


Comments

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, ******, 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

BIOS

The default BIOS settings are almost perfect to get started. All the ACPI/USB/CPU/Chipset settings can basically be left aone.

The Installation

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.

Config.plist

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

Kexts

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)


SSDTs

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.

Graphics

Intel graphics work fine.

Sound

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.

Networking

Ethernet works easily with IntelMausiEthernet. Wifi and Bluetooth work with the installed chip and patches.

Audio/Sleep

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.

USB

SSDT injects the correct ports and I have no problems.

Power/Thermals

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.

Performance

Geekbench:
https://browser.geekbench.com/v4/cpu/compare/5170862?baseline=4928409

jLxQTk7.png



Conclusion

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.

Next Steps

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!
I've got my Z370M-iTX/ac Hack running fine, but I can not get it to go to sleep. The screen does, but the computer stays awake.
Does anyone have a fix?
Thanks
 
Erik, where can we download your latest SSDT? Right now, Bluetooth is useless for me. I've gone back to a dreaded USB scroll mouse. :(
I'm not erik, but I have an SSDT that works perfectly. Make sure you have USBInjectAll.kext in Other/kexts and put this in Clover/ACPI/patched

BTW, you don't need the raise port limit patch or any _excludes in Clover Configurator.
 

Attachments

  • SSDT-iTX.aml
    697 bytes · Views: 179
I'm not erik, but I have an SSDT that works perfectly. Make sure you have USBInjectAll.kext in Other/kexts and put this in Clover/ACPI/patched

BTW, you don't need the raise port limit patch or any _excludes in Clover Configurator.

Thanks for sharing your SSDT. Unfortunately I lose all of my USB ports when using that one. Any ideas on why that could be happening? I do have the latest usbinjectall. I get usb back when I remove your ssdt, so no harm done atleast :)

Cheers
 
Thanks for sharing your SSDT. Unfortunately I lose all of my USB ports when using that one. Any ideas on why that could be happening? I do have the latest usbinjectall. I get usb back when I remove your ssdt, so no harm done atleast :)

Cheers
What hardware do you have? And did you first add the raise port limit patch?
Also, my case has 2 USB3 ports on the front panel.
 
Awesome small build! I wish this board had Type-C and Thunderbolt 3 so we could go with an eGPU for FCPX rendering. Regardless, I love the 6 core in such a small form factor.. do you think a 8700k would be too much for that PSU and noctua cooler?
 
Hi, just a silly question. How to check whether graphics acceleration is enabled or not ?
 
What hardware do you have? And did you first add the raise port limit patch?
Also, my case has 2 USB3 ports on the front panel.

Updated my profile to reflect the hardware that I am using. Asrock Z370m-ITX/AC, i7 8700. My case has no USB connections except the ones on the back of the motherboard. Two of those are going through active extension cables from my bookshelf to my desk (pretty slick actually).

Not sure if I have the ports raised or not - I have the same config.plist as in Erik's post, and I can't find this in the clover configurator. I did find this entry in my config.plist though, which I guess implies that raising 15 to 26 is not disabled, meaning that I am raising 15 to 26?

Code:
<dict>
                <key>Comment</key>
                <string>change 15 port limit to 26 in XHCI kext (100-Series-10.12)</string>
                <key>Disabled</key>
                <false/>
                <key>Find</key>
                <data>
                g32MEA==
                </data>
                <key>InfoPlistPatch</key>
                <false/>
                <key>Name</key>
                <string>AppleUSBXHCIPCI</string>
                <key>Replace</key>
                <data>
                g32MGw==
                </data>
            </dict>
 
Updated my profile to reflect the hardware that I am using. Asrock Z370m-ITX/AC, i7 8700. My case has no USB connections except the ones on the back of the motherboard. Two of those are going through active extension cables from my bookshelf to my desk (pretty slick actually).

Not sure if I have the ports raised or not - I have the same config.plist as in Erik's post, and I can't find this in the clover configurator. I did find this entry in my config.plist though, which I guess implies that raising 15 to 26 is not disabled, meaning that I am raising 15 to 26?

Code:
<dict>
                <key>Comment</key>
                <string>change 15 port limit to 26 in XHCI kext (100-Series-10.12)</string>
                <key>Disabled</key>
                <false/>
                <key>Find</key>
                <data>
                g32MEA==
                </data>
                <key>InfoPlistPatch</key>
                <false/>
                <key>Name</key>
                <string>AppleUSBXHCIPCI</string>
                <key>Replace</key>
                <data>
                g32MGw==
                </data>
            </dict>
That looks right. Have you used IORegistryExplorer to show what ports you have? Without the SSDT you should see all 26 ports. When you boot with the SSDT in ACPI/patched, you should see less depending on whose SSDT you use. You can check your ports by watching IORegistryExplorer as you plug in USB2 and USB3 items.
 
Status
Not open for further replies.
Back
Top