Hackintosh on Gigabyte GA-H97-D3H-CF with AMD RX 580 8GB via OpenCore
- Intel Core i7-4790
- Gigabyte GA-H97-D3H-CF
- 4×8GB Kingston DDR3 1600MHz
- XFX Radeon RX 580 GTS XXX Edition 8GB (May work on any other versions)
- Samsung 860 EVO 500GB (macOS)
- Fenvi FV-HB1200 WiFi BT PCIe Card (BCM94360CS2 Based)
- Dell P2418D QHD (Monitor)
- Working hardware
- BIOS version
>= F7
- Read OpenCore Desktop Guide
- OpenCore
= 0.6.9
- Save & Exit → Load Optimized Defaults [Yes]
- BIOS Features → Fast boot [Disabled]
- BIOS Features → VT-d [Enabled]
- BIOS Features → Windows 8 Features [Windows 8 WHQL]
- BIOS Features → CSM Support [Disabled]
- Peripherals → Initial Display Output [IGFX]
- Peripherals → XHCI Mode [Enabled]
- Peripherals → Intel Processor Graphics Memory Allocation [64M]
- Peripherals → XHCI Hand-off [Enabled]
- Peripherals → EHCI Hand-off [Enabled]
- Peripherals → Super IO Configuration → Serial Port A [Disabled]
- Must be disable it in order that macOS Sleep function will work properly.
CFG-Lock / MSR 0xE2
option is UNLOCKED.
- You must download all not bundled kexts and drivers from repositories by yourself.
You can use SSDT-EC.aml
and SSDT-PLUG.aml
files, but it probably better to create your own - SSDTs: The easy way
- HfsPlus.efi - Needed for seeing HFS volumes(ie. macOS Installers and Recovery partitions/images).
- OpenRuntime.efi - Must have to work with native NVRAM
- OpenCanopy.efi - For OpenCore's GUI
- VirtualSMC.kext - A advanced replacement of FakeSMC, almost like native mac SMC.
- SMCProcessor.kext - Used for monitoring CPU temperature.
- SMCSuperIO.kext - Used for monitoring fan speed.
- Lilu.kext - Dependency of
VirtualSMC.kext
andWhateverGreen.kext
- WhateverGreen.kext - Need for iGPU support
- AppleALC.kext - Getting audio to work as easy-peasy.
- IntelMausi.kext - Intel driver for Ethernet
- USBH97-D3H-CF.kext - Plist-only kext for USB port mapping
Please check Config Example\config.plist
for post-install config example.
Set iGPU/dGPU config
- If you are using dGPU (for example: AMD RX580), under
DeviceProperties
→PciRoot(0x0)/Pci(0x2,0x0)
:AAPL,ig-platform-id
=04001204
[Data] - iGPU is only used for compute tasksdevice-id
=12040000
[Data] - Fake in case you have an HD 4400
- If you are using just the iGPU, set
DeviceProperties
→PciRoot(0x0)/Pci(0x2,0x0)
:AAPL,ig-platform-id
=0300220D
[Data] - iGPU is used to drive a displaydevice-id
=12040000
[Data] - Fake in case you have an HD 4400
- Fix DRM for RX580, under
DeviceProperties
addPciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)
dictionary with: Not needed for Big Surshikigva
=80
[Number]
Set audio with AppleALC
- Set AppleALC, under
DeviceProperties
addPciRoot(0x0)/Pci(0x1B,0x0)
dictionary with:layout-id
=63000000
[Data]
Platfom information & USB
- Populated
PlatformInfo > Generic
section inconfig.plist
, can be easily done withGenSMBIOS
please follow OpenCore Desktop Guide. - Add the
USBH97-D3H-CF.kext
depends on the model you useiMac14,1 / iMac14,2 / iMac15,1 / iMacPro1,1
fromUSB Kexts
. (Also add it to your config, you can see an example onConfig Example
) - Big Sur if you are using any supported AMD dGPU my recommendation is using
iMacPro1,1
SMBIOS.
Misc -> Boot
- Set
PickerMode
asExternal
and add files from Setting up OpenCore's GUI
- Set
Misc -> Security
- Set
ScanPolicy
to983299
- for more information Scanpolicy Docs
- Set
NVRAM -> Add -> 7C436110-AB2A-4BBB-A880-FE41995C9F82 -> boot-args
:- Remove
-v
from your config.plist
- Remove
NVRAM -> Add -> D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14 -> UIScale
:- One-byte data defining boot.efi user interface scaling. Should be
01
for normal screens and02
for HiDPI screens. (When using Dell P2418D set it to02
)
- One-byte data defining boot.efi user interface scaling. Should be
DRM Compatibility on macOS Big Sur
Source: WhateverGreen documentation
defaults write com.apple.AppleGVA gvaForceAMDKE -boolean yes
forces AMD DRM decoder for streaming services (like Apple TV and iTunes movie streaming)defaults write com.apple.AppleGVA gvaForceAMDAVCDecode -boolean yes
forces AMD AVC accelerated decoderdefaults write com.apple.AppleGVA gvaForceAMDAVCEncode -boolean yes
forces AMD AVC accelerated encoderdefaults write com.apple.AppleGVA gvaForceAMDHEVCDecode -boolean yes
forces AMD HEVC accelerated decoderdefaults write com.apple.AppleGVA disableGVAEncryption -string YES
forces AMD HEVC accelerated decoderdefaults write com.apple.coremedia hardwareVideoDecoder -string force
forces hardware accelerated video decoder (for any resolution)
- First read - macOS and the 15 Port Limit
Due to these limits disabled interfaces are HS05, HS06, HS07, HS08 and HS13
. Those are the two usb2 ports near the PS/2 ports & two internal USB 2.0 headers. In addition, interface HS14
used by Fenvi FV-HB1200
for bluetooth and configured as internal. I'm using all 15 available ports due the limit but If you want to use other ports use this mapping table and schema to edit the Info.plist
file inside the USBH97-D3H-CF.kext
.
Name | UsbConnector | port |
---|---|---|
HS01 | 0 | 01000000 |
HS02 | 0 | 02000000 |
HS03 | 0 | 03000000 |
HS04 | 0 | 04000000 |
HS05 | 0 | 05000000 |
HS06 | 0 | 06000000 |
HS07 | 0 | 07000000 |
HS08 | 0 | 08000000 |
HS09 | 0 | 09000000 |
HS10 | 0 | 0A000000 |
HS11 | 0 | 0B000000 |
HS12 | 0 | 0C000000 |
HS13 | 0 | 0D000000 |
HS14 | 0 | 0E000000 |
SS01 | 3 | 10000000 |
SS02 | 3 | 11000000 |
SS03 | 3 | 12000000 |
SS04 | 3 | 13000000 |
SS05 | 3 | 14000000 |
SS06 | 3 | 15000000 |
For Internal USB ports like Bluetooth - use UsbConnector = 255
Use one-key-hidpi to Enable HiDPI on Dell monitor, and have a "Native" Scaled in System Preferences.
- Turn off System Integrity Protection(SIP):
- Restart & enter into Recovery.
- Choose Utilities > Terminal.
- Run
csrutil disable
- Restart & enter into macOS.
- Run one-key-hidpi script and set resolution config to
2560x1440 Display
- Reboot and check that everthing is working currectly.
- Turn on System Integrity Protection(SIP):
- Restart & enter into Recovery.
- Choose Utilities > Terminal.
- Run
csrutil enable
- Restart & enter into macOS.
- After reboot check everthing is working currectly and check SIP enabled by running
csrutil status
in Terminal.
Please follow this guide - Dual boot time sync fix
- None :)
Thanks to Andrii Korzh for his repsotory, knowledge sharing and permission.
Kexts
- AppleALC.kext -
AppleALC-1.6.0-RELEASE
- IntelMausi.kext -
IntelMausi-1.0.6-RELEASE
- Lilu.kext -
Lilu-1.5.3-RELEASE
- VirtualSMC.kext -
VirtualSMC-1.2.3-RELEASE
- WhateverGreen.kext -
WhateverGreen-1.4.9-RELEASE
Drivers
- HfsPlus.efi -
Feb 29, 2020