Thread in this forum: Hackintosh-forum.de.
EFI for my Hackintosh based on OpenCore
Hello.
Based on some sources in the internet
i was able to get my Hardware working with macOS. I want to share this with you and maybe we can optimize it together a bit more.
Attention: This EFI is uploaded without SMBIOS settings (serialnumber, etc.). After downloading the EFI you have to change it this way.
So let`s start:
-
EHCI/XHCI Hand-off
-
Above 4G decoding
- CSM
CPU: AMD Ryzen 9 3900X 3.8 GHz 12-Core
Motherboard: MEG MSI X570 Unify
Video Card: 8GB Sapphire RX 5700 XT Nitro+
Software
OpenCore: 0.6.3
MacOS Catalina: 11.0 Beta (20A5395g)
AMDRyzenCPUPowerManagement + SMCAMDProcessor - XNU kernel extension for power management and monitoring of AMD processors.
AppleALC - An open source kernel extension enabling native macOS HD audio for not officially supported codecs without any filesystem modifications.
HibernationFixup - An open source kernel extension providing a sync between RTC variables and NVRAM. In the config.plist the parameter "hbfx-disable-patch-pci" is set in the section NVRAM -> boot-args.
Lilu - An open source kernel extension bringing a platform for arbitrary kext, library, and program patching throughout the system for macOS.
LucyRTL8125Ethernet - A macOS driver for Realtek RTL8125 2.5GBit Ethernet Controllers.
NVMeFix - NVMeFix is a set of patches for the Apple NVMe storage driver, IONVMeFamily. Its goal is to improve compatibility with non-Apple SSDs. It may be used both on Apple and non-Apple computers.
USBPort - created with Hackintool (see section below "Mainboardlayout") - The Swiss army knife of vanilla Hackintoshing
VirtualSMC - Advanced Apple SMC emulator in the kernel. Requires Lilu for full functioning.
VoodooTSCSyncAMD - Kernel extension that synchronizes the processes between the AMD processors.
WhateverGreen - Lilu plugin providing patches to select GPUs on macOS. Requires Lilu 1.4.0 or newer.
Optional:
**IntelBluetoothFirmware - IntelBluetoothFirmware is a Kernel Extension that uploads Intel Wireless Bluetooth Firmware to provide native Bluetooth in macOS. On my side i replaced the M2 BT/WIFI Card.
[**RadeonBoost] <-> not needed any longer <-> (https://www.hackintosh-forum.de/forum/thread/47791-radeonboost-kext-benchmark-scores-wie-am-echten-mac-unter-windows/?pageNo=1) - GPU Performance Boost - not working with 10.15.5 yet.
**MacProMemoryNotificationDisabler - Lilu plugin for disabling the "more than maximum amount of memory" popup on MacPro7,1. I use SMBIOS iMacPro1,1 where it is not needed.
Before we begin: the renaming of the controllers have been done with an aml file (SSDT-XHC-customized.aml). That should be possible to be used on any X570 based Mainboard:
_SB.PCI0.BXBR.BYUP.BYD8.XHC0 -> XHCI
_SB.PCI0.BXBR.BYUP.BYD8.XHC1 -> XHC
_SB.PCI0.GP13.XHC0 -> XHC2
This is the aml file i have used:
Front:
View from the front to my Tower with the USB ports:
Back:
@@ XHC PRT1 USB 3.0. = C @@
@@ XHC PRT2 USB 3.0. = D @@
XHC PRT5 - internal USB Mystic Light (i deleted that from my usb kext, cause i don't need that. Optional.)
@@ XHC PRT6 USB 2.0 Hub = A,B @@
- XHC PRT7 USB 3.0 = C
- XHC PRT8 USB 3.0 = D
@@ XHCI PRT1 USB 3.0 (Rear I/O Panel 7) @@
@@ XHCI PRT2 USB 3.0 (Rear I/O Panel 8) @@
XHCI PRT4 USB internal (IOHostAdapter (PCIE x1 Broadcom or Intel AX200 card)
@@ XHCI PRT5 USB 2.0 (Rear I/O Panel 1) @@
@@ XHCI PRT6 USB 2.0 (Rear I/O Panel 2) @@
- XHCI PRT7 USB 3.0 (Rear I/O Panel 7)
- XHCI PRT8 USB 3.0 (Rear I/O Panel 8)
@@ XHC2 PRT1 USB 3.0 (Rear I/O Panel 3) @@
@@ XHC2 PRT2 USB 3.0 (Rear I/O Panel 4) @@
@@ XHC2 PRT3 USB 3.0 (Rear I/O Panel 6) @@
- XHC2 PRT5 USB 3.0 (Rear I/O Panel 3)
- XHC2 PRT6 USB 3.0 (Rear I/O Panel 4)
- XHC2 PRT7 USB 3.0 (Rear I/O Panel 6)
@@ purple = USB 2.0 @@
- red = USB 3.0
Without changing anything but the names of the XHC controllers, the list of available slots look like this on my side:
All USB 3 and USB 2 Slots marked green are usable. (Just the USB 3.2 Gen 2 Type-C is not marked green, cause i have no device that i can attach to it. So Hackintool cannot check if the port is used. But you can decide yourself if you want to disable a port or not.)
With disabled ports Hackintools USB sectio looks like this. (Again: This varies if you dont disable all the ports i did. It is not really needed as far as i know):
Audioplayback with SPDIF tested.
Audioinput not testet.
kext + config.plist
I am using Whatevergreeen and the boot-args:
agdpmod=pikera
config.plist
kext + config.plist
With the kext from Mieze the LAN adapter with 2.5 GBit it is working stable when its configured first time properly.
You have to set the speed in Hardwaresettings manually like the following. First you have to set the speed to 100baseT and accept everything. You will see the "Ethernet" on the left becomes green. Afterwards you can switch the speed to 1000baseT.
kext and config.plist
Worked OOB on my side when i was using the AX200 WIFI/BT card. But to be sure you should use the [IntelBluetoothFirmware](Releases · zxystd/IntelBluetoothFirmware · GitHub and add it to the config.plist and kext folder. This isn't done from me in this repo!
I took the SSDT-Plug.aml predefined from Aluveitie. If you want to create it from sratch, you can do so if you follow this link.
When you use the SSDT-PLUG.aml you see in ioregistryexplorer, that the powermanagement is working.
Without adding the following setting, my internal nvme SSD was shown as external device. It has been solved in this repo.
With this change, the master boot device (nvme slot) is told: you are internal.
! yellow = internal boot-device</div>
@@ purple = other internal devices</div> @@
-
WIFI (Intel AX200, maybe this will solve the problem). I have changed the M2 Wifi Card to a compatible device.
Credits: All developer and maintainer.
especially @Aluveitie