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-idofPciRoot(0x0)/Pci(0x1F,0x3)must be set to0B000000as 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 themacserialbinary included in GenSMBIOS would not work. To fix this I compiled a newmacserialbinary using the source files found in the 0.6.5 release of OpenCore withgcc -std=c99 macserial.c macserial.h -o macserialand placed this new binary in theScriptsdirectory 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
EFIdirectory 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
EFIpartition using MountEFI. - Removed
USBInjectAll.kext. - Removed
SSDT-EC-USBX-DESKTOP.amland added Schmock'sSSDT-EC-USBX.aml. - (This isn't to do with USB, but added Schmock's
SSDT-SBUS-MCHC.amlas Papadiche had it too.) - Added Papadiche's
USBMap.kext. - Added
USBWakeFixup.kext. - Opened
config.plistin ProperTree, and clickedFile > OC snapshotto inject the kexts. - Also changed
Kernel > Quirks > XhciPortLimittoFalsein theconfig.plist. - Rebooted.
- Mounted the
EFIpartition using MountEFI. - Opened
config.plistin ProperTree and:- Changed
Misc > Debug > AppleDebugtoFalse. - Removed
-vfromboot-argsinNVRAM > Add > 7C436110-AB2A-4BBB-A880-FE41995C9F82.
- Changed
- Rebooted.
- Opened
config.plistin ProperTree and:- Changed
Misc > Security > BootProtecttoBootstrap. - Was told to change
UEFI > Quirks > RequestBootVarRoutingtoTruebut it already was.
- Changed
- Rebooted.
- Backed up the
Hackintoshdrive using Carbon Copy Cloner.- Mounted the
EFIpartitions ofHackintoshand the back up drive using MountEFI. - Copied the
EFIfolder fromHackintoshover to the back up drive. - Booted into the back up drive to check if it was functional.
- Booted back into the
Hackintoshdrive 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.efiand noting down all of the partitions that corresponded to the each operating system. - Couldn't mount Linux EFI using MountEFI so ended up using
distutilas recommended here:- Used
distutil listto list all connected disks. - Linux was
disk2and theEFIwas partition1so 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
EFIagain and edited theconfig.plist:- Added a new entries in
MISC > Entrieswith the correctPathandNameand settingEnabledtoTrue(one entry for Linux, one entry for Windows). - For some reason, the
Windowsentry did not work in the OpenCore menu (it appeared but would not boot, although the originalWindowswas still present and did boot). The newLinuxentry boots perfectly (but the oldUBUNTUstill doesn't work).
- Added a new entries in
Followed the Dortania OpenCanopy guide and set MISC > Boot > PickerVariant to Default.