This is a log to keep track of my hackintosh config as it is built.
- Coffee Lake i9 9900K
- Asus Maximus XI
- Realtek ALC S1220A
PCI card has 3 antennas. The BT/WiFi card only has 2 antenna connections due to its small size (for laptops). Works fine, but a desktop-style card with 3 antenna connections (iMac) could have been used.
According to this reddit post, the BCM94352Z NGFF 802.11ac Dual Band Wireless WIFI Card Module for Lenovo could have worked in the Intel wifi card slot.
Monterey 12.0.1
Version: 0.7.4
- Guide: https://dortania.github.io/OpenCore-Install-Guide/
- Get your installation media
cd /Applications/Install\ macOS\ Monterey.app/Contents/Resources sudo ./createinstallmedia --volume /Volumes/USB --nointeraction --downloadassets
- MountEFI: https://github.com/corpnewt/MountEFI
- Setup the OC folder required files:
- Drivers:
HfsPlus.efi
for viewing HFS volumes (macOS installers) https://github.com/acidanthera/OcBinaryData/blob/master/Drivers/HfsPlus.efiOpenCanopy.efi
for graphical boot imagesOpenRuntime.efi
to get info for Linux dual boot
- Kexts:
- AppleALC (audio) https://github.com/acidanthera/AppleALC/releases
- Lilu (patches other things) https://github.com/acidanthera/Lilu/releases
- NVMeFix (storage) https://github.com/acidanthera/NVMeFix/releases
- VirtualSMC (hardware monitoring) https://github.com/acidanthera/VirtualSMC/releases
- SMCProcessor
- SMCSuperIO
- WhateverGreen (graphics) https://github.com/acidanthera/WhateverGreen/releases
- USBMap https://github.com/corpnewt/USBMap
- Drivers:
- ProperTree https://github.com/corpnewt/ProperTree
- OpenCore Configurator (when you need a GUI)
- Open
config.plist
in Propertree - Clean Snapshot (Cmd+Shift+R), select
OC
folder - Remove
#WARNING
entries - Coffee Lake specific edits: https://dortania.github.io/OpenCore-Install-Guide/config.plist/coffee-lake.html#starting-point
Rebuilt USBMap.kext during post-install with the following config:
USB Location | Port Name | Type |
---|---|---|
Case top left (USB header) | HS04/SS08 | 3 |
Case top right (USB header) | HS03/SS07 | 3 |
Rear left top | HS05 | 0 |
Rear left bottom | HS06 | 0 |
Rear mid top | SS03 | 3 |
Rear mid bottom | SS04 | 9 |
Rear right top to bottom | SS05/HS01, SS06/HS02, SS01, SS02 | 3 |
Internal Broadcom card | HS07 | 2 |
NOTE: This section is out of date.
SSDT procedures are lengthy and a bit confusing. After doing it, here is my personal summary:
- If you want to do it manually, make an Ubuntu USB installer to generate your DSDT, otherwise, just use/edit the files already available as they appear to have the correct values required
- Only .aml files should be put into the ACPI folder inside the OC\EFI
- Determine which .aml files you'll need based on the primary guide
- A previously configured
SSDT-UIAC.aml
was required to get Bluetooth to work
NOTE: This section is out of date.
- BIOS updated to 1401
- Reset BIOS by using clear CMOS button on back
- Advanced Mode (F7)
- Load optimized defaults
- Extreme Tweaker\AI Overclock Tuner: Manual
- Extreme Tweaker\CPU Core Ratio: AI Optimized
- Extreme Tweaker\AI Features\Cooler Efficiency Customize: User Specify
- Extreme Tweaker\AI Features\Cooler Score: 175
- Platform Misc\PCI Express Native Power Management: Enable
- Platform Misc\Native ASPM: Enable
- CPU\Intel VMX: Enable
- Advanced\System Agent\VT-d: Enable
- Advanced\Onboard\Intel LAN Controller: Disable
- Advanced\Onboard\LED in working state: All On
- Advanced\Onboard\LED Q-Code: Auto
- Advanced\Onboard\LED in sleep state: Stealth
- Advanced\Onboard\Connectivity mode (Wi-Fi & Bluetooth): Disable
- Advanced\APM\Restore AC Power Loss: Last State
- Advanced\APM\Power on By PCI-E: Enable
- Advanced\PCI\SR-IOV: Enable
- Advanced\USB\XHCI Hand-off: Enable
- Boot\Fast Boot: Disable
- Boot\Wait For F1: Disable
- Boot\Setup Mode: EZ Mode
- Boot\Secure Boot\OS Type: Other OS
- Q-Fan\Set all fans to PWM
- Q-Fan\Optimize All
- Q-Fan\Verify all fans are set to PWM after optimizing
- Q-Fan\Disable unused fans
AI cooler score of 192 was calculated with the configured fans. The system crashes under load at values of 180+. Manually configuring a cooler score of 175 (38% overclocked) appears to be stable.
Dual booting Linux on a separate disk. This was tested using Zorin OS, which has an Ubuntu base which uses GRUB.
For the purposes of this documentation, the macOS OpenCore disk will be
/dev/sda
, and the Linux disk will be/dev/sdb
.
- Install macOS and OpenCore to
sda1
- Before installing Linux, copy/duplicate
/EFI/BOOT/BOOTx64.efi
because Linux will overwrite it with GRUB - Install Linux to
sda2
, selecting the option of installing the bootloader tosda2
(even though it won't) - Boot into Linux, checking if the EFI in
/boot/efi
is mounted to/dev/sda2
usinglsblk
; if not, edit/etc/fstab
so Linux mounts the appropriate drive for the Linux EFI in the future - Boot into macOS using the macOS USB installer
- We need to put all the bootloader files in the right location(s)
Remember, Linux overwrote the
BOOTx64.efi
file onsda1
. So, let's make sure we move that tosda2
in the appropriate folder(s) and put back the OpenCoreBOOTx64.efi
file so OpenCore/macOS boots. - Put the Linux GRUB
BOOTx64.efi
file back insdb1 /EFI/BOOT
and rename it toBOOTx64.efi.disabled
to prevent volumeNO NAME
from showing up in OpenCore during boot - Put the OpenCore
BOOTx64.efi
file back insda1 /EFI/BOOT
- Get the Linux boot disk
PciRoot
information- Enable
OpenShell.efi
in OpenCore - Boot into OpenShell, find the Linux EFI by checking for the
EFI/ubuntu
folderHint: Type
FS#:
to change to that disk,cd
to change directory, anddir
to view the files - Once in the Linux
FS#:
directory, typemap > map-table.txt
, thenexit
and boot back into macOS
- Enable
When booting into macOS after being in OpenShell, it sometimes hangs. Hard reset and it should boot into macOS. Once into macOS, clear kext cache by typing
sudo kextcache -i /
. This cleared up any boot delays/issues after being in OpenShell.
- Use OpenCore Configurator to add a boot entry in Misc for the Linux EFI
- Misc > Boot > Entries > Add
- Path: Paste in the
PciRoot
string from themap-table.txt
file of the disk containing the Linux bootloader - Add to the end of the path
/\EFI\ubuntu\grubx64.efi
This points to
/dev/sdb1/EFI/ubuntu/grubx64.efi
. - Name:
Linux
- Enabled: Yes
- Path: Paste in the
- Save the config.plist file
- Misc > Boot > Entries > Add
From here, you should be able to boot to Linux from OpenCore, having only 1 boot entry for Linux.
- USB HS04@14400000 error at boot
- Fix: Re-do USBMap.kext
- NVMe kext cache error at boot
- Fix: Run
sudo kextcache -i /
in macOS
- Fix: Run
- ProperTree has black window in Monterey
- Fix: Install Python, NOT the Universal installer. We need the Intel installer. Forgot where I got it. Generate the ProperTree app and use that.
- When installing Linux, you tell it to install the bootloader to
/dev/sdb
and it installs to/dev/sda
. If you happen to have a/dev/sdc1
it will mount that to/boot/efi
instead of/dev/sdb1
.- Fix: It's a hot mess. On the first Linux boot, I would check everything before leaving. Make sure the proper devices are mounted and mapped. Use
lsblk
and make surefstab
is up to date with the proper volumes IDs. Don't trust it.
- Fix: It's a hot mess. On the first Linux boot, I would check everything before leaving. Make sure the proper devices are mounted and mapped. Use