OSX on an Asus H370-Plus/CSM

OSX on an Asus H370-Plus/CSM

Theory:  Modern motherboards featuring a UEFI bios (odd that it is called a BIOS when it is not) are well suited to running OSX.  In popular parlance this is a Hackintosh.

Here are some steps to getting OSX installed on an Asus H370-Plus/CSM motherboard with an Intel I5-8600 CPU.  There is more theory discussion than “click click done” as some of the items merit an understanding of why you do them.  If you are looking for a hack and slash “just show me how” then you can find identical write ups on the forums at https://www.tonymacx86.com and https://www.insanelymac.com

Components

Asus H370-PLUS/CSM
Corsair Vengeance LPX 16GB (2x8GB) DDR4 DRAM 3000MHz C15 Desktop Memory
Intel i5-8600 Desktop Processor 6 Core up to 4.3GHz Turbo LGA1151 300 Series
(I don’t overclock and saved a bit avoiding the “K”)
Noctua NH-L12S 70mm Low-Profile CPU Cooler with Quiet 120mm PWM Fan
LG 27UD58-B 27-Inch 4K UHD IPS Monitor

To this I added a SATA III drive, PSU, case and Nvidia GTX 950 that I had on hand (soon to be replaced with an M2 and a Radeon 570).

Comments

For reasons of size and having two M.2 slots, I went with the Asus H370-PLUS/CSM. I did this despite the board having little in the way of “it was easy” reviews.  Though I don’t need the mATX form factor, I am building a duplicate for a friend that needs to transport it to and from his observatory, so size was an issue and two M2s were needed as he needs to boot into macOS and Windows.

I love the board, but, boy it was a chore.

UEFI BIOS

Use “Delete” to enter you UEFI setup.
Load Optimized Defaults
Disable VT-d
Disable Secure Boot Mode
Set OS TypeOther
Turn off internal Serial port
Turn off Network stack for boot
Set XHCI Handoff to Enabled
Enable HD Audo
Don’t enable decode over 4G
Set dGPU as priority for boot
Set internal GPU to enable
Set DMVT pre-alloc to 64MB
Set USB legacy to enabled
Activate XMP profile 1 f your Ram has it
Set ERP to enable

Installation Preparation

A normal attempt at an install here will fail out of the gate as there will be no USB when booted on your install USB, so a slight variation is in order.

Make your install USB per the standard UniBeast instructions, but after the USB drive is made:
Mount the EFI partition on the USB drive
Navigate to /EFI/CLOVER/drivers64UEFI/ and delete AptioMemoryFix-64.efi
Replace it with OsxAptioFix3Drv-64.efi (all kexts and drivers used are included in a zip file attached to this post, but you are encouraged to search for and download the latest version).
Add USBInjectAll.kext to /EFI/CLOVER/kexts/Other.

Put the kexts and files attached to this post on the USB. Also add a copy of KextBeast, MultiBeast for High Sierra and the latest Clover installer package along with Clover Configurator.

Installation
Boot on the USB and use Disk Utility to erase your target drive, making a new partition named High Sierra with a GUID partition table. Close Disk Utility and launch the High Sierra installer.

It “may” freeze with two minutes to remaining, this is due to the inability of the system to restart. Let it finish, then power off the system manually and then restart. When clover returns, select the Install option on the HighSierra disk.

When it finishes, it may freeze again trying to restart. Let if finish then restart manually. This time boot off of the USB to get a clover boot loader, but select macOS on High Sierra as the boot.

Your first boot will be a bit rough, but you should have USB. At this point you need a boot loader on your hard drive, but MultiBeast’s Clover is a bit dated and will cause issues. Instead, open the clover install package on your USB and select the following options (in Clover 4769):
Change install location to High Sierra
Click Customize
Select the following:
Clover for UEFI booting only
Install Clover in the ESP
Install RC Scripts on target volume
UEFI Drivers:
DataHubDxe-64
FSinject-64
SMCHelper-64
VBoxHfs-64
EmuVariableUefi-64
OsxAptioFix3Drv-64
After making those selections, click install.

Place USBInjectAll.kext, AppleALC.kext, FakeSMC.kext, IntelMausiEthernet.kext, Lilu.kext, USBInjectAll.kext and WhateverGreen.kext on your desktop and use KextBeast to install them to /Library/Extensions/ folder. You can also add the FakeSMC_* sensors kexts I have included as I use them for monitoring.

Once finished, use Clover Configurator to mount your EFI.

When EFI is mounted, open your config.plist. Much of what follows are defaults, but verify.
ACPI: leave the default patches. Check AddDTGP, FixPIC, FixUSB, FixSBUS, FixLAN, FixShutdown, FixDisplay, FixHDA, FixDarwin7, FixADP1, FixRegions, FixRTC, DeleteUnused, FixTMR, AddPNLF, FixS3D, FixACST, FixWAK. Leave drop tables as default. Check Generate PStates and Generate CStates, add “SSDT-UIAC.aml” to “SortedOrder” (a file we will get to in a bit). All of these were the default on my Clover install.
Boot: I select Verbose
Boot Graphics: No Change
CPU: No Change
Devices: Defaults work, but add “1” under audio inject and check AFGLowPowerState and ResetHDA
Disable Drivers: No change
Gui: Select a theme if you have one you like
Graphics: No change…Nothing should be selected.
Kernel and Kext Patches: No change
Skip Rt Variables for now
SMBIOS: Select a system definition of iMac 18,2 (18,1 if you are trying to make this work for an iGPU). Under serial click “Generate New” until you get tired. Launch a Terminal – and run uuidgen. Copy and paste that into the SmUUID field. Copy the generated Board Serial, and go to the RtVariables screen and paste it into the MLB field. While there Set your ROM field to UseMacAddr0, set the BooterConfig field to 0x28, and the CsrActiveConfig field to 0x3E7. This will disable SIP.
System Parameters: No change

Save the config.plist.

Copy the attached SSDT-UIAC.aml to /EFI/ACPI/patched. This is a file that will hot patch against USBInjectAll.kext to limit the USB ports that are actually in use. It is compiled for the motherboard. You will still need the USBInjectAll.kext in /L/E/. With this you will be under the USB port limit and all ports will work at correct speeds.

Restart the computer and select F8 to bring up the boot selection menu and boot from the High Sierra drive, then when clover loads, boot from macOS on High Sierra.

Post Installation
Go through the normal setup, add and admin user. When you get to the desktop, you should have Internet and can download the NVIDIA web drivers. Select your sound output. At this point I clone the system, then install clover to the clone and copy my EFI files over so I can a “safe” point I can return to in the event that I break something.

Once it became stuck on boot indicating that the boot volume was “hibernated”. It should not try to hibernate, but regardless, I set it to not to with:
Code:
sudo pmset hibernatemode 0

What Works
USB 2 and 3 ports – all ports on the motherboard
Sound
Ethernet
dGPU
Sleep and Shutdown
Restart generally, but is cranky
App store etc
Updates from App Store
In short, everything

What isn’t right?
Shutdown and sleep are perfect. “Restart” sometimes cascades into a post boot screen. I avoid it and just use shutdown.

Theory
USB is addressed with USBInjectAll.kext and the SSDT-UIAC.aml file. Sound is via the inject setting in the config.plist and AppleALC.kext. Sleep and shutdown are handled via EmuVariableUefi-64 and OsxAptioFix3Drv-64 with the emulated nvram and RCscripts. Ethernet is flawless with IntelMausiEthernet.kext.

Thanks
Big thanks to Rehabman’s work.

Mojave
I run Mojave on my four real macs, but until there are NVIDIA web drivers, I am sticking to High Sierra for my Hackintosh. I will upgrade soon I hope.

Benchmark

Author: jervin

Leave a Reply

Your email address will not be published. Required fields are marked *