Osx-kvm: Run macOS on QEMU/KVM
I've been running my macOS desktop in an ESXi VM for over a year now.  I came from a hackintosh, but got tired of the fragility of some upgrades.  Some notes on this setup:<p>- Apple supports macOS running inside of ESXi.  Officially, only on Apple host hardware (i.e. a Mac Pro, which is on the ESXi compatibility list).  Apple even ships a VMXNet3 network driver in macOS.<p>- For ESXi specifically, you have to patch the host to boot macOS on non-Apple hardware.  There's an explicit "am I running on Apple hardware?" check in there.  DrDonk's unlocker on GitHub is what you need.<p>- You can specify board-id, ROM/MLB, etc values via your .vmx file.  iMessage and everything work for me, but I'm also using identifiers from a real Mac Mini I retired a few years ago.  I expect this will still work okay with generated data if you follow hackintosh guides.<p>- I pass through a GPU and a USB controller card for input/output.  For USB, find an FL1100 chipset card, like the Inateck models, which works out of box on macOS, Windows, etc.  Recently I moved my boot drive to a passed-through NVMe for extra speed.  My other drives are ESXi virtual drives backed by storage elsewhere on my network.<p>- Most NVIDIA GPUs will need the NVIDIA Web Drivers to work.  Kepler generation cards are the last to work out of box, and the only to currently work out of box on Mojave.  If you don't need hefty performance, a GeForce GT 730 is a cheap card.  Apple and NVIDIA are still not getting along, so I expect this will only get worse.<p>- However, I've never been able to get an AMD card to initialize via passthrough.  The PCI device is seen, but the EFI strings or whatever else Apple is using to determine initialization paths are wrong.  I recently spent awhile trying to figure this out, going so far as to write my own SSDT tables for the device, but finally gave up.<p>- This particular guide is using Chameleon, which is considered an outdated bootloader.  Clover is far more flexible, and will work in VM setups that don't natively implement SMC like ESXi.  (For the longest time Clover would crash an ESXi VM, but this now works as of a month or two ago).<p>And finally, on the context of this whole thing--I switched from a real Mac Pro to a hackintosh years and years ago, when it became clear Apple didn't care about upgrading the hardware.  They still don't.  The last Mac Pro release was 2013 (the 2013 iPhone was a 5S!).  They've been promising things will improve "soon".  They're the world's most valuable company; if they actually cared, at the organizational DNA level, it would have happened by now.