EliteMacx86

Administrator
Staff member
Joined
Jul 22, 2018
Motherboard
Supermicro X11SPA-T
CPU
Intel Xeon W-3275 28 Core
Graphics
2xAMD RX 580 8GB
OS X/macOS
11.0.x
Bootloader
  1. OpenCore
Mac
  1. MacBook Pro
Mobile Phone
  1. Android
  2. iOS
GIGABYTE Z590 VISION G - i5-10400F - Sapphire AMD RX 590 - OpenCore

GIGABYTE Z590 Hackintosh Guide featuring Intel Core i5-10400F and AMD GPU using OpenCore. This guide can be used as a reference for any Z590 Motherboard chipset with very few changes.


Components



GIGABYTE Z590 VISION G LGA 1200 Motherboard with HDMI and Type-C Display

Already Owned

Intel Core i5-10400F 10th Gen Comet Lake Desktop Processor 12MB Cache 2.9 GHz

Corsair Vengeance RGB DDR4 3200MHz 8GB RAM (2x16GB) ()

ADATA - 250GB PCIe NVMe - M.2 Internal SSD (MZ-V6E250BW)

Fractal Design Define 7XL (CC-9011078-WW)

LG 32" Full HD IPS Monitor with HDMI, and Display Port (LG 22MP58VQ-P)

EVGA 600 BQ, 80+ BRONZE 600W Power Supply 110-BQ-0600-K1

Dell KM636 Wireless Keyboard & Mouse Combo



Comments



The Build
As the new 500 series Motherboard are out, so i decided to upgrade the existing system. The idea of this build is to use Type-C Display with no additional hardware. The idea of this build is compact, paired with an i5 10400F running @ 2.9GHz stock speed, having a AMD RX 590 8GB from Sapphire, good power supply with 600W, normal power consumption for normal users.

Already have a build with GIGABYTE Z490 VISION G and same amount of PCIe slots were needed so the ultimate choice was Z590 VISION G. It's a ATX motherboard offering support for 10th and 11th Gen. CPUs. The motherboard offers built-in Type-C Display. A solid audio codec (Realtek ALC4080), 2.5Gb/s LAN, PCIe 4.0 support for faster data transfer rate. Along with all these, the motherboard supports various features. The reason to go for GIGABYTE motherboard is because GIGABYTE motherboards are the best selling motherboard and it supports a lot of unique features. One of them is Dual BIOS (UEFI).

Summary



What's works?
  • Audio
  • Graphics
  • Ethernet
  • HDMI
  • Power Management
  • iMessage
  • FaceTime
  • iCloud
  • USB 2.0, 3.0, 3.1 and USB Type-C Ports

Not working

Everything works like a charm.

Bootable Media Creation


To create Bootable USB for macOS Big Sur, follow the steps below.

1. Download macOS Big Sur from App Store.
2. Plug USB to your system.
3. Open Disk Utility and erase the USB Flash Drive with following parameters
4. Close Disk Utility.
5. Open Terminal and type:
Code:
sudo /Applications/Install\ macOS\ Big\ Sur.app/Contents/Resources/createinstallmedia --volume /Volumes/USB
6. Enter your password
7. Press (Y) to confirm and then press enter key and it will start to erase the disk and will create macOS Bootable USB.

Once the process completes, close the terminal. The USB Flash Drive will be renamed as Install macOS Big Sur

Note :
  • At this point, the bootable USB can be only used to boot Mac only. In order to boot the computer using the USB, follow the steps below.
Preparing OpenCore Bootloader


To prepare OpenCore boot loader, you need to download OpenCore.
Download the Release folder followed by the release version.
When extracting, you'll get 4 folders which has been listed below.

DirectoriesDescription
DocsContains documentation, change log, a sample config.plist, and ACPI Samples for OpenCore.
IA32Contains OpenCore EFI, 32-bit OpenCore Boot Loader.
UtilitiesContains several utilities.
X64Contains OpenCore EFI, 64-bit OpenCore Boot Loader.

1. Copy X64 to your working directory and follow the steps below

Adding Required Drivers
Drivers are mandatory which allows several important function and is required to boot the system.

Driver NameRequiredNotes
OpenRuntime.efiYES
  • Runtime driver including several other drivers merged such as ApfsDriverLoader.
  • OpenRuntime.efi is a replacement for AptioMemoryFix.efi driver.
OpenHfsPlus.efiYES
  • Provides reading of HFS+ Volumes/drives in OpenCore Boot Picker.
OpenCanopy.efiOptional
  • Provides GUI functionality for OpenCore Boot screen.
  • This driver is required if you need GUI or theme for OpenCore.
AudioDxe.efiOptional
  • Provides Boot Chime support.
  • Only required if you want to use Boot Chime


2. From the EFI/OC directory, just keep the above drivers and delete rest of the drivers.

Notes :
  • All the drivers can be found at: X64/EFI/OC/Drivers

Adding Required Kexts
In order to boot into the installation, you need to add the necessary kexts. Follow the steps below to place the necessary kexts.

Kext NameRequiredNotes
LiluYES
  • Provides arbitrary patching.
VirtualSMCYES
  • Emulates Apple hardware. VirtualSMC is a successor of FakeSMC.
  • This kext requires "Lilu.kext" to function.
WhateverGreenYES
  • Provides GPU patching on macOS.
  • This kext requires "Lilu.kext" to function.
NVMeFixYES
  • Provides NVMe Power Management.
  • This kext requires "Lilu.kext" to function.
USBInjectAllYES
  • Enables USB ports for mapping USB ports further.
  • It's advised to map the USB ports during the post-install for a better USB speed, improved sleep/wake and hotplug.
FakePCIIDYES
  • Enables Intel Family onboard Ethernet Controller.
  • Only use if you have this Intel Ethernet chipset in particular.
FakePCIID_Intel_I225-VYES
  • Enables Qualcomm Atheros Killer Family onboard Ethernet Controller.
  • Only use if you have the Atheros Ethernet chipset in particular.


1. Download the above kexts.
2. Extract the kexts from the RELEASE folder.
3. Copy the kexts to: /EFI/OC/Kexts

Notes
:
  • Do not download the project files. The pre-built binaries/downloads are available in the README.md section. Make sure you read it carefully.
  • Download the latest version for better support.
  • Use the kext from RELEASE folder and RELEASE.zip file.
  • Do not place unnecessary kexts here. It might prevent booting the installer.
  • Only use basic kexts which is required to boot off the installer. You can install the rest required kexts at the time of post-installation.
  • The VirtualSMC package includes Battery and Sensors plugins (SMCBatteryManager.kext, SMCDellSensors.kext, SMCLightSensor.kext, SMCProcessor.kext, and SMCSuperIO.kext). You do not need these kexts for booting the installer.

Creating OpenCore config.plist


To create config.plist, follow the steps below.
Copy sample.plist from Docs to your working directory and rename it to config.plist. The only changes to the config.plist has been described below. The rest will remain completely untouched.

ACPI>Add


This section is for adding the DSDT and SSDT files for your system. The following changes are needed.

SSDT NameNotes
SSDT-AWAC
  • This SSDT serves 300 series RTC patch.
  • This SSDT is required for all 400 series Motherboards.
SSDT-EC-USBX
  • This SSDT is required for proper USB Power.
  • This SSDT fixes EC and USB Power.
SSDT-PLUG
  • This SSDT enables Power Management function.
  • This SSDT is required for a proper CPU and GPU Power Management.

ACPI>Patch


This section is used for device renames such as USB, Graphics and Audio. The following changes are needed.

Table Signature*FindReplaceCommentEnabledNotes
DSDT5045475047465830Rename PEGP to GFX0 (Graphics)YES
  • Renames PEGP to GFX0 for a better power management.
  • This rename is required for implementing discrete GPU Power Management.
DSDT48454349494D4549Rename HECI to IMEI (PAVP)*YES
  • Renames HECI to IMEI for PAVP services.
  • This rename is required for implementing PAVP services.
  • This rename fixes iTunes/App Store Content Access problems and also enables Content playback.
DSDT4D45495F494D4549Rename MEI to IMEI (PAVP)*YES
  • Renames MEI to IMEI for PAVP services.
  • This rename is required for implementing PAVP services.
  • This rename fixes iTunes/App Store Content Access problems and also enables Content playback.

Booter>Quirks


This section allows to apply certain Booter quirks. The following changes are needed.

QuirksValueNotes
AvoidRunTimeDefragYES
  • Fixes certain UEFI runtime services such as date time, NVRAM, power control, etc.
  • Apart from Apple and VMware, this quirk is required by rest of the firmwares.
  • It's recommended to "enable" this quirk.
DevirtualiseMmioYES
  • Remove runtime attribute from select MMIO regions.
  • This option reduces stolen memory footprint from the memory map by removing runtime bit for known memory regions.
EnableSafeModeSlideYES
  • Patch bootloader to have KASLR enabled in safe mode.
  • This quirk requires ProvideCustomSlide to be enabled.
  • This quirk can be helpful if you're unable to boot into safe mode.
ProvideCustomSlideYES
  • Provide custom KASLR slide on low memory.
  • This option forces macOS to use a pseudo random value among the available ones.
RebuildAppleMemoryMapYES
  • Generates Memory Map which is compatible with macOS.
  • Since several types of firmware come with incorrect memory protection tables, this quirk often comes paired with SyncRuntimePermissions.
SyncRuntimePermissionsYES
  • Update memory permissions for runtime environment.
  • The need for this quirk is indicated by early boot failures. Only firmware released after 2017 is typically affected.
ProvideMaxSlide0
  • Provide maximum KASLR slide when higher ones are unavailable.

Note:
  • The values which have been not discussed above, that will remain disabled.

DeviceProperties


This section is used for adding device properties. This includes PCI Devices information such as Graphics, Audio, WiFi, Ethernet and other controllers. The following changes are needed.

DevicesKeyValueTypeNotes
  • PciRoot(0x0)/Pci(0x1B,0x2)/Pci(0x0,0x0)
device-id
  • F2150000
DATA
  • Sets Device ID for Ethernet.
F2150000
  • Recommended for Intel i225-V 2.5GBe Ethernet chip.


Kernel>Add


This section is for adding and blocking kexts. This also defines the order of the kexts and the architecture of each kext. The following changes are needed.

ArchBundlePath*ExecutablePathPlistPathEnabledNotes
AnyLilu.kext**Contents/MacOS/LiluContents/Info.plistYES
  • Provides arbitrary patching.
AnyVirtualSMC.kext**Contents/MacOS/VirtualSMCContents/Info.plistYES
  • Emulates Apple hardware.
  • VirtualSMC is a successor of FakeSMC.
  • This kext requires Lilu.kext to function.
AnyWhateverGreen.kext**Contents/MacOS/WhateverGreenContents/Info.plistYES
  • Provides GPU patching on macOS.
  • This kext requires Lilu.kext to function.
AnyAppleALC.kext**Contents/MacOS/AppleALCContents/Info.plistYES
  • Enables onboard/built-in Audio.
  • This kext requires Lilu.kext to function.
AnyUSBInjectAll.kextContents/MacOS/USBInjectAllContents/Info.plistYES
  • Enables USB ports.
  • It's advised to map the USB ports during the post-install for a better USB speed, improved and sleep/wake.
AnyXHCI-unsupported.kextContents/Info.plistYES
  • Enables Unsupported USB ports.
AnyFakePCIID.kextContents/MacOS/FakePCIIDContents/Info.plistYES
  • Required for FakePCIID_Intel_I225-V.kext
AnyFakePCIID_Intel_I225-V.kextContents/Info.plistYES
  • Enables Intel i225-V Ethernet Chip

Notes:
  • All the plugins must load after loading it's dependencies otherwise the kext will no longer function even when loaded in OS X/macOS.
  • The mandatory kexts must be loaded in sorted order as shown in the above table.
  • *Indicates BundlePath i.e. Name of the Kext
  • **Indicates mandatory kexts.
  • All the added kexts must exists in the EFI/OC/Kexts directory.
  • The options which have been not discussed above, that will remain untouched.

Kernel>Scheme
This section allows settings related to Kernel. The following changes are needed.

OptionsValueNotes
FuzzyMatchYES
  • Enables checksum ignore with kernel cache instead of using latest cache available.
  • This setting allows matching the latest kernel cache with a suitable architecture when the kernel cache without suffix is unavailable, improving macOS 10.6 boot performance on several platforms.
KernelArchAuto
  • Determines Kernel Architecture.
KernelCacheAuto
  • Determines Kernel Cache.

Kernel>Quirks
This section allows to apply certain Kernel quirks. It provides settings related to Kernel and several other options related to BIOS/UEFI and USB ports. The following changes are needed.

QuirksValueNotes
AppleCpuPmCfgLockYES
  • Disables PKG_CST_CONFIG_CONTROL (0xE2) MSR modification in AppleIntelCPUPowerManage- ment.kext, commonly causing early kernel panic, when it is locked from writing.
  • Enable this quirk if you cannot disable CFG-Lock in BIOS/UEFI.
AppleXcpmCfgLockYES
  • Disables PKG_CST_CONFIG_CONTROL (0xE2) MSR modification in XNU kernel, commonly causing early kernel panic, when it is locked from writing (XCPM power management).
  • Enable this quirk if you cannot disable CFG-Lock in BIOS/UEFI.
CustomBIOSGuidNO
  • Performs GUID patching for UpdateSMBIOSMode Custom mode.
  • If you're having a Dell Motherboard, it's recommended to use CustomBIOSGuid quirk.
  • When using this option, you must set UpdateSMBIOSMode to Custom in PlatformInfo section.
DisableIoMapperYES
  • Disables IOMapper support in XNU (VT-d), which may conflict with the firmware implementation.
  • This option is a preferred alternative to deleting DMAR ACPI table and disabling VT-d in firmware preferences, which does not break VT-d support in other systems in case they need it.
  • Enable this quirk if you cannot disable VT-d in BIOS/UEFI.
LapicKernelPanicNO
  • Disables kernel panic on AP core lapic interrupt.
  • Equivalent to Clover's Kernel LAPIC.
  • If you're using an HP Motherboard, you'll need to enable this quirk.
PanicKNoextDumpYES
  • Prevent kernel from printing kext dump in the panic log preventing from observing panic details.
PowerTimeoutKernelPanicYES
  • Disables kernel panic on setPowerState timeout.
  • Fixes kernel panics related to power changes with Apple drivers in macOS Catalina, most notably with digital audio.
XhciPortLimitYES
  • Enables 15 port limit patch.
  • This quirk is a temporary solution and is advised to map your USB ports during post-installation.
DisableRtcChecksumNO
  • Prevents AppleRTC from writing to primary checksum (0x58-0x59). Required for users who receives safe mode or BIOS reset error after reboot/shutdown. Mainly required for ASUS Motherboards. Do NOT use this quirk is you don't have such encounters.
DisableLinkeditJettisonYES
  • Disables __LINKEDIT jettison code.
  • Provides more reliable performance without keepsyms=1
  • This quirk is required for macOS Big Sur.

Note:
  • The values which have been not discussed above, that will remain disabled.

NVRAM>Add


This section is for adding NVRAM properties, boot args and configuring SIP. The following changes are needed.


UUIDKeyValueTypeNotes
7C436110-AB2A-4BBB-A880-FE41995C9F82boot-args
  • -v
  • debug=0x100
  • keepsyms=1
STRING
  • Adds boot args which provides several functions.
-v
  • Enables verbose mode. Helpful to track the installation progress or when booting.
debug=0x100
  • This disables macOS's watchdog which helps prevents a reboot on a kernel panic.
keepsyms=1
  • This is a companion setting to debug=0x100 that tells the OS to also print the symbols on a kernel panic.
  • This can give some more helpful insight as to what's causing the panic itself.
csr-active-config
  • 00000000
DATA
  • Defines SIP type.
00000000
  • Enables SIP completely. (0x0)
  • It's advised to configure SIP via recovery using "csrutil."
  • For more information on SIP, check the SIP disabling guide.
prev-lang:kbden-US:0STRING
  • Sets Keyboard language.



PlatformInfo


This section allows to set SMBIOS. It's an important section and has various impact on your system. The following changes are needed.

Suggested SMBIOS

SMBIOSCPU
iMac 20,1Intel Comet Lake for i3 and i7
iMac 20,2Intel Comet Lake for i9

Using OpenCore Configurator, generate a SMBIOS under PlatformInfo section and configure the options as outlined below.

Platform Info>DatHub - Generic - PlatformNVRAM

DataHub


OptionValueNotes
Add this section in config.plistYESAdds DataHub field

Generic

OptionsValueNotes
Add this section in config.plistYESAdds Generic field
from SMBIOSYES
ProcessorType0
  • Sets SMBIOS Processor Type.
  • This will override your actual CPU type.
  • It's recommended to set this option to "0" to detect the original CPU by macOS instead of using SMBIOS CPU Type.
SystemMemoryStatusAuto
  • Indicates whether system memory is upgradable in PlatformFeature. This controls the visibility of the Memory tab in About This Mac.
Auto
  • Use the original PlatformFeature value.
  • It's recommended to set this option to "Auto."
Upgradable
  • Explicitly unset PT_FEATURE_HAS_SOLDERED_SYSTEM_MEMORY (0x2) in PlatformFeature.
Soldered
  • explicitly set PT_FEATURE_HAS_SOLDERED_SYSTEM_MEMORY (0x2) in PlatformFeature.
SpoofVendorYESSets SMBIOS vendor fields to Acidanthera

PlatformNVRAM

OptionValueNote
Add this section in config.plistYESAdds PlatformNVRAM field

For more information on Comet Lake config.plist, check the post linked below.

SMBIOS

OptionValueNote
Add this section in config.plistYESAdd SMBIOS field.


Installing OpenCore EFI


Now, as the EFI is completely prepared, it's time for the installation of OpenCore on the Bootable USB Flash Drive.

1. Mount the EFI partition of your Bootable USB Flash Drive.
2. Copy the EFI from your working directory to EFI partition of your Bootable USB Flash Drive.

Now you’ve successfully installed OpenCore, the required drivers, kexts and config.plist and the USB Flash drive is ready to boot off your computer.

UEFI Settings


The next step is to configure the BIOS. To access your BIOS/UEFI, press and hold Delete key on your Keyboard and then set the following.
  • Set Optimized Defaults.
  • Set X.M.P. Memory Profile to Profile 1.
  • Set Fast Boot to Disabled.
  • Set Windows 8/10 Features to Other OS.
  • Set Initial Display Output to IGFX.
  • Set Intel Platform Trust Technology (PTT) to Disabled.
  • Set Network Stack to Disabled.
  • Set XHCI Hand-Off to Enabled.
  • Set SATA Mode to AHCI.
  • Set VT-d option to Disabled.
  • Set Internal Graphics to Auto.
  • Save & Exit Setup.

Installation


The installation step is simple.
Plug your Bootable USB Flash Drive to the target system.
Turn on your system.
3. Boot to Boot Menu using F12
4. Select your USB Flash Drive with the UEFI prefix and press enter to boot.
5. When at OpenCore menu, select ResetNVRAM and boot from it.
6. Repeat step no. 5.
7. When at OpenCore menu, boot using Install macOS Big Sur. It will take couple of minutes to boot into installer screen. Once you reach the installer, select your preferred language and continue.
8. On top, click on Utilities and then select Disk Utility.
9. When at Disk Utility, click on View and select Show all Devices.
10. Select your target SSD. Do not select the partition
11. Click on Erase button and erase the drive with following parameters.

NameMacintosh HD
FormatAPFS
SchemeGUID Partition Map

12. Close Disk Utility.
13. Select Install macOS and continue with the options.
14. Select Macintosh HD and click on Install.

This will take couple of minutes and will restart at "Less than a minute is remaining". Upon completion, the system will automatically restart. The System will restart to complete the installation. Here it ends the first phase of the installation.

After installation, boot it using USB, but this time select Macintosh HD.
The first boot maybe slower as the caches are not build yet. Once the caches are built, it will boot normally.
When you're at the welcome screen, continue with the basics options such as Keyboard setup, Network, Computer Account and Privacy settings.

Now the installation is complete, but the drive isn't bootable yet. You need to complete the Post Installation

Post Installation


Now, configuring the Post Installation. There is not much to do for the postinstallation except configuring the boot from system drive. Everything rest is fully functional.

Boot from System Drive
This is one of the most important part as it allows to boot it using the system drive without any need of installation USB.

1. Mount the EFI Partition of your System drive and the Bootable USB. Both the EFI partition of your Hard Drive and USB Flash Drive will be mounted on your Desktop.
2. Assuming that you’ve mounted your EFI Partition, continue the following.
3. Open your EFI Partition of your Hard Drive.
4. Select EFI folder and then move to Trash.
5. Open your EFI Partition of your macOS Bootable USB.
6. Copy the EFI folder from your macOS Bootable USB to your EFI Partition of your Hard Drive.

By using this method, you’ll be easily able to install OpenCore Boot loader on your System Drive.
 
Last edited:

deedee

New member
Joined
Mar 18, 2021
Motherboard
GA-Z170X-UD3
CPU
i7-6700 3,4
Graphics
RX 580 4Go
OS X/macOS
11.0.x
Bootloader
  1. Clover (UEFI)
  2. OpenCore
Mac
  1. Mac mini
  2. MacBook Air
Mobile Phone
  1. iOS
bravo very impressive, and innovative! I would be curious to see your config.plist if that is possible.
well done once again
 
  • Like
Reactions: EliteMacx86

EliteMacx86

Administrator
Staff member
Joined
Jul 22, 2018
Motherboard
Supermicro X11SPA-T
CPU
Intel Xeon W-3275 28 Core
Graphics
2xAMD RX 580 8GB
OS X/macOS
11.0.x
Bootloader
  1. OpenCore
Mac
  1. MacBook Pro
Mobile Phone
  1. Android
  2. iOS
bravo very impressive, and innovative! I would be curious to see your config.plist if that is possible.
well done once again
Thanks. Please refer the guide for the changes in config.plist to adapt for Z590.
 

deedee

New member
Joined
Mar 18, 2021
Motherboard
GA-Z170X-UD3
CPU
i7-6700 3,4
Graphics
RX 580 4Go
OS X/macOS
11.0.x
Bootloader
  1. Clover (UEFI)
  2. OpenCore
Mac
  1. Mac mini
  2. MacBook Air
Mobile Phone
  1. iOS
Thanks. Please refer the guide for the changes in config.plist to adapt for Z590.
sure i will it's because i thought you would have need some more SSDT,

also i'm curious to see how ACPI>Patch is set when we watch it with a config.plis editor. it's just this part that i would like to read

i'm very happy to see that the sound is ok in USB 12, also that it doesnt need "alcide=x"
i thought that for the lan it should be more complicated, it's very cool that you managed it.
 

EliteMacx86

Administrator
Staff member
Joined
Jul 22, 2018
Motherboard
Supermicro X11SPA-T
CPU
Intel Xeon W-3275 28 Core
Graphics
2xAMD RX 580 8GB
OS X/macOS
11.0.x
Bootloader
  1. OpenCore
Mac
  1. MacBook Pro
Mobile Phone
  1. Android
  2. iOS
sure i will it's because i thought you would have need some more SSDT,
For Z590, you'll need 3 SSDTs only.
also i'm curious to see how ACPI>Patch is set when we watch it with a config.plis editor. it's just this part that i would like to read
You can use any .plist editor such as Proper Tree, Plist Editor Pro, Xcode and can also use OpenCore Configurator. Using OpenCore Configurator, you can just select it from drop down list.

Also, you should consider reading the guide linked below.
i'm very happy to see that the sound is ok in USB 12, also that it doesnt need "alcide=x"
i thought that for the lan it should be more complicated, it's very cool that you managed it.
Well, it's not needed anymore and the reason is alcid or layout ID is used to inject a proper layout to match AppleALC which further works in conjunction with AppleHDA, driving a semi native audio. However, with codecs like ALC4080 which is used in GIGABYTE Z590 VISION G, the Codec is not a built-in Audio but is connected to USB bus and it uses USB kexts to drive Audio which can be completely considered as native Audio.
 

Forum statistics

Threads
505
Messages
4,680
Members
4,265
Latest member
echozerimad1212