Notes about the installation processes for Windows, Linux, and macOS on my new build.
- Case: NCASE M1 V5.0
- CPU: Intel i7 10700K
- GPU: Sapphire Radeon RX 5700 XT Pulse
- Memory: Corsair Vengeance LPX DDR4 3000MHz 32GB
- Motherboard: ASRock Z490 Phantom Gaming-ITX/TB3
- Audio card: Realtek ALC1220-VB
- WiFi/Bluetooth card: Broadcom BCM94360NG
- Ethernet card: Realtek RTL8125B-CG
- Storage:
- WD BLACK SN750 NVMe 1TB — macOS Big Sur
- WD BLACK SN750 NVMe 1TB (with heatsink) — Windows 10
- Kingston 500GB SSD — Ubuntu 20.04.1 LTS
- Kingston 2TB SSD — Shared internal storage
- Power Supply: Corsair SF600
- Audio
- Ethernet
- WiFi
- Bluetooth
- AirDrop
- iMessage
- iCloud
- Find My
- Sleep/wake
- Shutdown
- Restart
- Nothing that I am aware of
Created installation USB using this tool and installed with only one drive installed.
All but WiFi and bluetooth worked out of the box. Had to install this driver (suggested in this thread) for WiFi and Bluetooth to work.
Created installation USB by following this guide which uses Rufus. Unplugged Windows drive and plugged in Linux drive and installed as usual.
WiFi worked out of the box, ethernet didn't. Installed some updates and then neither worked. Installed this driver ("2.5G Ethernet LINUX driver r8125 for kernel up to 5.6" as suggested in the second answer here) and ethernet worked.
To get WiFi working again, installed bcmwl-kernel-source
from groovy
repos by following the first step in the first answer here. You need to download this file and install it via:
sudo dpkg -i bcmwl-kernel-source_6.30.223.271+bdcom-0ubuntu7_amd64.deb
Once this was installed, WiFi and bluetooth worked perfectly again.
Ended up doing most of this process on Ubuntu 20.04.1 instead of on my MacBook Pro. Followed the Dortania guide and used this YouTube video for an idea of what to do aswell.
- Followed the Dortania guide and used macrecovery.py to chose Catelina 10.15.7.
- The firmware drivers and kexts I chose are available in the EFI directory.
- I think I used a prebuilt SSDT-AWAC but created the rest myself using SSDTTime.
- Followed the Comet Lake Dortania guide to edit the
config.plist
. Used ProperTree to edit the plist and GenSMBIOS to generate the SMBIOS data.- In order for audio to work, the
layout-id
ofPciRoot(0x0)/Pci(0x1F,0x3)
must be set to0B000000
as mentioned here and here. - When trying to generate serials for
iMac20,1
(since the Comet Lake guide recommended it for i7-10700K and lower), I found that themacserial
binary included in GenSMBIOS would not work. To fix this I compiled a newmacserial
binary using the source files found in the 0.6.5 release of OpenCore withgcc -std=c99 macserial.c macserial.h -o macserial
and placed this new binary in theScripts
directory of GenSMBIOS.
- In order for audio to work, the
- Used the sanity checker and ended up changing a couple values but nothing major.
Followed Chris Schmock's settings almost exactly. I ended up updating my BIOS to 1.50 using the Windows easy installation process, as I was having troubles with booting into the USB (but it turned out I had put the EFI
directory in the wrong place, so the update was unnecesasry).
- Unplugged the Linux and Windows drives.
- Booted into the USB, chose
OPENCORE (external)
and formatted the drive to APFS with a GUID partition scheme. - Installed Catalina. When the computer restarted, I think the
EFI
directory had been deleted from the USB? I dragged it back over from Linux, booted back in and the installation continued.
Audio (the 3.5 mm rear jack and the USB Razer Blackshark V2 Pro both work perfectly), WiFi, Bluetooth, AirDrop, iMessage, Sleep/wake (seems to wake with one tap of space bar and one or two clicks. For good measure, disabled "wake for network access" and "power nap" in System Preferences > Energy Saver, and disabled "allow bluetooth devices to wake this computer" in System Preferences > Bluetooth > Advanced), Shutdown, Restart.
Ethernet (chip showed up in system report but wasn't working, fixed this later on).
Followed the advice outlined here (which was then referenced here and here):
Navigate to System Preferences > Network. Select Ethernet, click Advanced, click Hardware, and Select Configure : Manually with Speed : 1000baseT
Simply followed the Dortania guide again.
- Mounted the
EFI
partition using MountEFI. - Removed
USBInjectAll.kext
. - Removed
SSDT-EC-USBX-DESKTOP.aml
and added Schmock'sSSDT-EC-USBX.aml
. - (This isn't to do with USB, but added Schmock's
SSDT-SBUS-MCHC.aml
as Papadiche had it too.) - Added Papadiche's
USBMap.kext
. - Added
USBWakeFixup.kext
. - Opened
config.plist
in ProperTree, and clickedFile > OC snapshot
to inject the kexts. - Also changed
Kernel > Quirks > XhciPortLimit
toFalse
in theconfig.plist
. - Rebooted.
- Mounted the
EFI
partition using MountEFI. - Opened
config.plist
in ProperTree and:- Changed
Misc > Debug > AppleDebug
toFalse
. - Removed
-v
fromboot-args
inNVRAM > Add > 7C436110-AB2A-4BBB-A880-FE41995C9F82
.
- Changed
- Rebooted.
- Opened
config.plist
in ProperTree and:- Changed
Misc > Security > BootProtect
toBootstrap
. - Was told to change
UEFI > Quirks > RequestBootVarRouting
toTrue
but it already was.
- Changed
- Rebooted.
- Backed up the
Hackintosh
drive using Carbon Copy Cloner.- Mounted the
EFI
partitions ofHackintosh
and the back up drive using MountEFI. - Copied the
EFI
folder fromHackintosh
over to the back up drive. - Booted into the back up drive to check if it was functional.
- Booted back into the
Hackintosh
drive to continue with the update.
- Mounted the
- Updated as usual via System Preferences and all went smoothly.
The Windows boot option was automatically available and worked perfectly. Ubuntu seemed to be available too but was called NO NAME
and I could not boot into it. I logged into Ubuntu and used the disks settings application to rename the EFI
partition. This changed it from NO NAME
to UBUNTU
in the OpenCore boot menu. However, I still could not get this UBUNTU
option to work like the Windows
one was by default. So I followed this guide and (looked at this guide too).
- Booted into
OpenShell.efi
and noting down all of the partitions that corresponded to the each operating system. - Couldn't mount Linux EFI using MountEFI so ended up using
distutil
as recommended here:- Used
distutil list
to list all connected disks. - Linux was
disk2
and theEFI
was partition1
so I usedsudo distutil mount disk2s1
. - You can later unmount with
sudo distutil unmount disk2s1
.
- Used
- Ended up with these values:
FS0: Linux
PciRoot(0x0)/Pci(0x17,0x0)/Sata(0x0,0xFFFF,0x0)/HD(1,GPT,A1A31A26-6614-44CD-9E03-A145082203FD,0x800,0x100000)/\EFI\ubuntu\grubx64.efi
FS8: Windows
PciRoot(0x0)/Pci(0x1D,0x0)/Pci(0x0,0x0)/NVMe(0x1,B0-29-A6-44-8B-44-1B-00)/\EFI\Microsoft\Boot\bootmgfw.efi
- Mounted the Hackintosh
EFI
again and edited theconfig.plist
:- Added a new entries in
MISC > Entries
with the correctPath
andName
and settingEnabled
toTrue
(one entry for Linux, one entry for Windows). - For some reason, the
Windows
entry did not work in the OpenCore menu (it appeared but would not boot, although the originalWindows
was still present and did boot). The newLinux
entry boots perfectly (but the oldUBUNTU
still doesn't work).
- Added a new entries in
Followed the Dortania OpenCanopy guide and set MISC > Boot > PickerVariant
to Default
.