I recently purchased a NUC6i3 and was wondering if it was possible to install Mac OS on it. After a bit of fiddling I can say that Mac OS Catalina runs on it just fine with one caveat: there are no drivers for the built in wifi card (Intel Dual Band Wireless-AC 8260). That means you have to use the ethernet port or buy a USB wifi adapter.
One of my others goals though was to be able to remotely manage a box like this and have Mac OS run in a virtual machine. This makes maintenance much easier as you have snapshotting and backup capability.
For this build I wanted the following:
- Proxmox Virtual Environment 6.2-6 (as of this writing the latest version in the pvetest repository)
- Mac OS X Catalina
- OpenCore bootloader
- Intel HD Integrated Graphics Passthrough
The issue with the Intel passthrough is that all the guides seem to state you have to use a legacy bios. I wanted to get it to work with the latest OpenCore using an EFI partition.
A huge shoutout to Nick and his guide to get things started:
https://www.nicksherlock.com/2020/04/installing-macos-catalina-on-proxmox-with-opencore/
Do a base install of Proxmox. I use the USB method.
After installing edit /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on nomodeset nofb rd.driver.pre=vfio-pci video=efifb:off,vesafb:off simplefb=off modprobe.blacklist=i915 pcie_acs_override=downstream iommu=pt vfio-pci.ids=8086:1916"
Some of these probably aren't required but they worked for me. The intel_iommu is used to allow PCI passthrough.
After modification I ran update-grub
Next I edited /etc/modprobe.d/vfio.conf and added:
options vfio-pci ids=8086:1916
This loads the vfio-pci module and indicates that you want to passthrough the Intel integrated GPU.A lspci command should show:
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 520 (rev 07)
The ids corresponds to this device on the NUC6.
I also blacklisted the following:
blacklist snd_hda_intel
blacklist snd_hda_codec_hdmi
blacklist i915
I added these to /etc/modprobe.d/blacklist.conf
Afterwards I ran update-initramfs -u to make sure the changes took and rebooted. After rebooting you should have no display. This is because vfio-pci should now claim the device. After booting lspci -v shows:
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 520 (rev 07) (prog-if 00 [VGA controller])
Subsystem: Intel Corporation Skylake GT2 [HD Graphics 520]
Flags: bus master, fast devsel, latency 0, IRQ 134
Memory at de000000 (64-bit, non-prefetchable) [size=16M]
Memory at c0000000 (64-bit, prefetchable) [size=256M]
I/O ports at f000 [size=64]
[virtual] Expansion ROM at 000c0000 [disabled] [size=128K]
Capabilities: [40] Vendor Specific Information: Len=0c <?>
Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00
Capabilities: [ac] MSI: Enable+ Count=1/1 Maskable- 64bit-
Capabilities: [d0] Power Management version 2
Capabilities: [100] Process Address Space ID (PASID)
Capabilities: [200] Address Translation Service (ATS)
Capabilities: [300] Page Request Interface (PRI)
Kernel driver in use: vfio-pci
Kernel modules: i915
One thing I had to do was make sure I installed Mac OS X first without doing the passthrough. I then added the passthrough and things worked.
I was also able to keep the monitor defined in Proxmox and was able to see some bootloader images.