https://www.patreon.com/SchmockLord
Hello folks,
I have successfully installed MacOS Catalina 10.15.4 on my i9-10900k running on a Gigabyte Z490 Vision D.
You can find my EFI folder in this repository.
I also made a video on how I got macOS running on my build and how I build this rig: https://youtu.be/szOofRy7uBc
With macOS Sonoma, the Broadcom based Wifi cards don't work plug and play anymore. It is a very annoying process now, that you have to repeat after every macOS Update!
General Requirements for Broadcom Wifi in Sonoma:
IO80211FamilyLegacy.kext
, IOSkywalkFamily.kext
, AMFIPass.kext
. Also these Kexts in a very high priority after Lilu and VirtualSMC.com.apple.iokit.IOSkywalkFamily
-amfipassbeta
To be repeated for every macOS Update:
SecureBootModel = Disabled
and DmgLoading = Any
Disable SecureBoot
in BIOSSecureBootModel =
(your SecureBootModel according to here: https://dortania.github.io/OpenCore-Post-Install/universal/security/applesecureboot.html#securebootmodel) and DmgLoading = Any
Install the newest release from here: https://github.com/dortania/OpenCore-Legacy-Patcher/releases
Create an MacOS Catalina 10.15.6 USB-Installer Stick. Do this on a real Mac.
sudo /Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume
Mount the EFI-partition of the "Install macOS Catalina" disk.
Delete all folders and then copy my entire EFI folder to the root of the EFI-partition (make sure you copy the EFI Folder itself, not just the content of it)
Decide for yourself if you want to use: Rename the config of your choice to config.plist
. If you don't rename one and there is no config.plist
it won't work!
config_iMac20,2_iGPU_computing_only.plist
: iGPU for computing only. So you don't have display output to the onboard HDMI. Enable Internal Graphics in BIOS. AppleTV works. Amazon Prime/Netflix via Safari doesn't work, you need other browsers. Sidecar works.config_iMac20,2_iGPU_with display_output.plist
: iGPU setup for display output, so you will get display output to the onboard HDMI. Enable Internal Graphics in BIOS. AppleTV works. Amazon Prime/Netflix via Safari doesn't work, you need other browsers. Sidecar works.config_iMacPro1,1_requires AMD GPU.plist
: No iGPU. Disable Internal Graphics in BIOS. Requires discrete AMD GPU. AppleTV works. Amazon Prime/Netflix via Safari works. No Sidecar.If you get an error within the installation saying something like "this installation is damaged" you can try this workaround: Delete Installinfo.plist on the installer disk:
Once you have installed MacOS Catalina onto your hackintosh's drive you should repeat the same steps above of installing the EFI folder onto it's EFI-partition:
Now your hackintosh can boot without the USB install stick.
Then following the other sections below you might want to investigate a GUI boot menu, a boot chime, and other post install niceties. (See dortania post install cosmetics)
You should change two settings in config.plist:
In this section I want to show you how I setup my system so it sleeps and wakes just fine, but I don't tell you that you need exactly these settings to have a proper configuration.
In addition, I set the following settings in Hackintool. You can edit them by clicking on the value, but it has a very small "clickable" area:
Personally I don't use the Kext-based USB-configuration anymore. Instead, I use the USB-Port configuration via SSDT (SSDT-USB-Ports-Z490-VisionD.aml).
The benefit of the SSDT-based configuration is, that we don't need specific kexts for each SMBIOS (iMac20,2; iMacPro1,1 etc.) and it is the cleanest way of doing the USB-Port Mapping.
But because many of you have different BIOS versions, I set the kext-based USB configuration (USBMap_iMac202.kext and USBMap_iMacPro11.kext) as Default and disabled the SSDT-USB-Ports-Z490-VisionD.aml and the ACPI-Delete of the original USB-config.
Try what works best for yourself:
Either the Kext-based USB-config:
Disable the USBMap_iMac202.kext and USBMap_iMacPro11.kext and enable SSDT-USB-Ports-Z490-VisionD.aml and the ACPI-Delete of the original USB-config:
OR
the SSDT-based USB-config: Enable one of the the USBMap_iMac202.kext and USBMap_iMacPro11.kext (depends on what SMBIOS you use) and disable the SSDT-USB-Ports-Z490-VisionD.aml and the ACPI-Delete of the original USB-config.
In my SSDT you will see the comments for each port, some are enabled, some are disabled.
Per port you have two relevant methods:
GUPC describes the USB-port capabilities.
E.g. GUPC (One, 0x03) means this port is enabled (one) and is a USB3-Type A (0x03) The first variable means enabled/disabled (one or 0xFF/zero or 0x00), the second variable describes the port itself.
Port types:
GPLD-method describes the port location.
E.g. GPLD (One, 0x09) means this port is available on this board (one) and has the location HS09 (0x09).
HS11 would be (0x0B). SS ports start with 1. E.g. SS01 is 0x11, SS10 is 0x1A.
If you don't know the Hex-names of the ports, you can use Hackintool, e.g. Decimal 9 is also Hex 9 but 10 is A:
If you want to disable ports for macOS-only, you should wrap them like this:
If (_OSI ("Darwin"))
{
Return (GUPC (Zero, Zero))
}
Else
{
Return (GUPC (0xFF, 0x09))
}
_OSI ("Darwin") means "If the operating system is macOS (Darwin Kernel) do this..."
This way other OS like Windows or Linux would use the Else-case where this port is enabled (0xFF) and has is a type-C with switch (0x09).
You also need to Delete the original ACPI-table for the USB-Port Mapping: SSDT-7-xh_cmsd4.aml
If you want to use the iGPU to drive a display, use the iMac20,2-based config. There is no display output with the iMacPro1,1 because the iGPU is setup as computing unit only.
Note that the DisplayPort on the motherboard is no DP-out port. It is a DP-in port and it is only used to connect it to the DP-out of a graphics card to use the DisplayPort to Thunderbolt 3 feature, so you are able to have display output to the USBC/TB3 ports.
These are the device properties in the config_iMac20,2_iGPU_with_display output.plist
to configure the iGPU as display output:
<key>PciRoot(0x0)/Pci(0x2,0x0)</key>
<key>AAPL,ig-platform-id</key>
<data>BwCbPg==</data>
<key>device_type</key>
<string>VGA compatible controller</string>
<key>AAPL,slot-name</key>
<string>Internal@0,2,0</string>
<key>enable-hdmi20</key>
<data>AQAAAA==</data>
<key>framebuffer-con0-busid</key>
<data>AgAAAA==</data>
<key>framebuffer-con0-enable</key>
<data>AQAAAA==</data>
<key>framebuffer-con0-flags</key>
<data>xwMAAA==</data>
<key>framebuffer-con0-index</key>
<data>AgAAAA==</data>
<key>framebuffer-con0-pipe</key>
<data>CgAAAA==</data>
<key>framebuffer-con0-type</key>
<data>AAgAAA==</data>
<key>framebuffer-con1-busid</key>
<data>BAAAAA==</data>
<key>framebuffer-con1-enable</key>
<data>AQAAAA==</data>
<key>framebuffer-con1-flags</key>
<data>xwMAAA==</data>
<key>framebuffer-con1-index</key>
<data>AwAAAA==</data>
<key>framebuffer-con1-pipe</key>
<data>CAAAAA==</data>
<key>framebuffer-con1-type</key>
<data>AAgAAA==</data>
<key>framebuffer-con2-busid</key>
<data>AQAAAA==</data>
<key>framebuffer-con2-enable</key>
<data>AQAAAA==</data>
<key>framebuffer-con2-flags</key>
<data>xwMAAA==</data>
<key>framebuffer-con2-index</key>
<data>AQAAAA==</data>
<key>framebuffer-con2-pipe</key>
<data>CQAAAA==</data>
<key>framebuffer-con2-type</key>
<data>AAgAAA==</data>
<key>framebuffer-fbmem</key>
<data>AACQAA==</data>
<key>framebuffer-patch-enable</key>
<data>AQAAAA==</data>
<key>framebuffer-stolenmem</key>
<data>AAAwAQ==</data>
<key>framebuffer-unifiedmem</key>
<data>AAAAgA==</data>
<key>model</key>
<string>Intel UHD Graphics 630</string>
<key>hda-gfx</key>
<string>onboard-1</string>
And these are the device properties used in the config_iMac20,2_iGPU_computing_only.plist
to setup the iGPU as computing only:
<key>PciRoot(0x0)/Pci(0x2,0x0)</key>
<key>AAPL,ig-platform-id</key>
<data>AwDImw==</data>
<key>AAPL,slot-name</key>
<string>Internal@0,2,0</string>
<key>device-id</key>
<data>xZsAAA==</data>
<key>device_type</key>
<string>VGA compatible controller</string>
<key>model</key>
<string>Intel UHD Graphics 630 (Desktop)</string>
I needed this to get Audio working:
The layout-id and the device-id is injected via the device properties.
The audio device has the PCI-Address PciRoot(0x0)/Pci(0x1F,0x3).
<key>PciRoot(0x0)/Pci(0x1F,0x3)</key>
<dict>
<key>hda-gfx</key>
<string>onboard-1</string>
<key>layout-id</key>
<integer>7</integer>
</dict>
Simply add the newest IntelMausiEthernet.kext (mine is v2.5.1d1).
You need natively supported Wifi and Bluetooth to use Airdrop, Unlock with Apple Watch etc.
Replacing the onboard Intel-Wifi6 card doesn't work because the m.2 slot is a CNVi slot. Which means that it only supports CNVi-cards which are made by Intel. I have tried that already, trust me. You can either Insert a PCI-Express card like the MQUPIN fenvi T919 or buy a special adapter (google for "NGFF to m.2 B+M-Key adapter") to get an Apple-support m.2 card working in one of the m.2 Slots that are meant to be used for m.2 SSDs. Then you also need an adapter cable to get USB-power onto the m.2 adapter to get Bluetooth working.
I used the MQUPIN fenvi T919 Wireless/Bluetooth Card. It has the natively supported WiFi and Bluetooth chip BCM94360CD.
No further kexts needed (no AirportBrcmFixup.kext, BrcmBluetoothInjector.kext, BrcmFirmwareData.kext, BrcmPatchRAM3.kext, BT4LEContiunityFixup.kext).
You also have to disable the onboard Intel Bluetooth.
In your USB-configuration this is the port HS14. Either add "uia_exclude=HS14" to your Boot-arguments or generate a USBPorts.kext with Hackintool and remove HS14.
If it is still not working, download Bluetooth Explorer from Apple Developer (it is inside "Additional_Tools_for_Xcode_11.4.dmg").
Then start Bluetooth Explorer App, select Tools/HCI Controller Selector. Then you should be able to see your Bluetooth adapter e.g. Apple BRCM. Select it and press "Activate". If it is marked as "Active" it is working.
To get fully working Mac-like Thunderbolt 3 support, you need
Some devices might work without it, even hotplugging. Others won't. If you have issues with your TB3 device and don't want to flash your TB3 chip, you can try to disable SSDT-DTGP.aml and SSDT-TB3HP.aml. Then hotplug doesn't work, but the device might at least work when it is connected on boot.
Flashing a modified firmware will activate the Thunderbolt Bus. Without flashing the TB3-chip with a modified firmware, you might have issues with Hotplugging some TB3 devices. E.g. I couldn't get hotplug working on my TB3 eGPU case (Razer Core X). I could only get it working when it was connected while booting macOS.
Without flashing the TB3-chip on the motherboard your Thunderbolt section will always look like this:
I have also used the following combo. Works as good as the first one:
Default Keyboard Layout/Language setting was changed to EN-US in v1.5.
If you want to change this, just edit this setting in the config.plist:
- NVRAM
- Add
- 7C436110-AB2A-4BBB-A880-FE41995C9F82
- prev-lang:kbd | String | en-US:0
Valid Keyboard Values see here: AppleKeyboardLayouts.txt
Don't use Overclocking and XMP with macOS. Longterm I only experienced instability even with only XMP enabled and even if it was running with XMP fine in Windows. I just had a client where try to get macOS running for 3h. In the end it was a Kernel panic caused by XMP. Just saying.
Thanks for your support :) Your help was crucial for my build.
Best, Chris aka SchmockLord