From 3e5f528dc5a1d2878e59c10d6babcd6d4e790290 Mon Sep 17 00:00:00 2001 From: Nicholas Sherlock Date: Sat, 10 Apr 2021 15:27:43 +1200 Subject: [PATCH] Add project readme --- README.md | 153 ++++-------------------------------------------------- 1 file changed, 11 insertions(+), 142 deletions(-) diff --git a/README.md b/README.md index 75e92b9..b89fa50 100644 --- a/README.md +++ b/README.md @@ -1,148 +1,17 @@ # KVM-Opencore -Opencore Configuration of KVM Hackintosh with tweaks. -We propose best practice for KVM users. +This is a fork of [Leoyzen's OpenCore image](https://github.com/leoyzen/KVM-Opencore) for QEMU/KVM, +which I've extended to add a build system for automatically buliding all of the required files from +sourcecode, and to keep up with the latest OpenCore changes. -# Status +It is currently tested to boot macOS Catalina and macOS Big Sur, but will likely also boot older +versions of macOS. -* OS: tested in Catalina 10.15.x -* Opencore: 0.5.6 - * NVRAM: native - * AppleHotKey: works - * FileVault: un-tested - * Boot-Audio: works with onboard audio passthrough - * OVMF: you can use latest version other than the old way(patched one). see issues. -* SMBIOS: iMacPro1,1 -* NIC: vmxnet3/e1000-82545em/passthrough -* CPU: - * Penryn: works, using patches to enable leaf7 support for better performance - * Intel Host-Passthrough: works, but with patches and remove topology line - * AMD Host-PassThrough: works, but with AMD-Vanilla patches -* GPU Passthrough: works - * HDMI/DP Audio: works - * Metal Support: works - * H264 Hardware Decoding: works - * H265 Hardware Decoding: works -* Handoff: works with specific Wifi/Bluetooth -* USB(Passthrough): works -* Power Manages - * Sleep: works, see details below. - * EC: faked one - * USB Power: works even with USB3 passthrough - * CPU AGPM: wo don't need CPU AGPM because hypervisor handled it well, this is for GPU AGPM - * GPU AGPM: works +Although the images offered here should work on all QEMU/KVM distributions, I specifically build +and test these for my Proxmox Hackintosh guide here: -# Usage -1. Download the repository and put the EFI under your EFI disk +https://www.nicksherlock.com/2020/06/installing-macos-big-sur-on-proxmox/ -# Manual -## Libvirt XML -See more in [libvirt.xml](https://github.com/Leoyzen/KVM-Opencore/blob/master/libvirt.xml). -## SMBios -Comparing with normal hackintosh setup, we have only limited choices here(because we don't have an iGPU). -* iMacPro1,1(Prefer) -* MacPro7,1 - -## CPU -### Models Selection -You have three options to choose: Penryn, Passthrough, Emulating Model. - -#### Penryn -Penryn is the safest choice in Hackintosh VM, it is classic, similar with virtualized enviroment, and Apple wrote native code to support it. -But we should do something to make it work more than that: - -1. You should passthrough some important cpuid features which don't included in Penryn Model, such as: - * invtsc: latest MacOS won't boot without it - * AVX: latest MacOS won't boot without it - * FMA: metal support needs this - * AVX2 - * BMI1 - * BMI2 - * kvm=on: QEMU use it to expose Hypervisor leaf node, which MacOS use it to determine the invtsc frequency from hypervisor node. - * ~~vmware-cpu-freq=on~~: no more need, QEMU enabled it by default. -2. Add patch(from AMD-Vanilla) to support leaf7 cpuid features support - * otherwise Apple won't use some important feature like AVX - * can be check with `sysctl -a|grep machdep.cpu.leaf7_features` to see whether AVX/AVX2 is included. - -#### Passthrough -#### Intel -If you are using most recent generation Intel CPU(newer than Penryn), then you can just passthrough your cpu type with `mode='host-passthrough'`. - -##### AMD -You can passthrough amd process too, but with [AMD-Vanilla patches](https://github.com/AMD-OSX/AMD_Vanilla) like bare metal hackintosh. - -### Other Notes about CPU -#### Irregular Topology -If you wanna assign an irregular topology (like 3-cores/6-threads or 5-cores/5-threads), you should fake a topology, otherwise you will get a kernel panic. -Details can be found [here](https://github.com/Leoyzen/KVM-Opencore/issues/1). -```xml - -8 - - - - - - - - - - - - - - - - - - - - - - -``` - -#### Unknown CPU Name -If you find unknown cpu model in you system info, you can change it by specify the ProcessorType in SMBios Section of config.plist. -Choices can be found in [here](https://github.com/acidanthera/EfiPkg/blob/master/Include/IndustryStandard/AppleSmBios.h). - -Example, if you have or emulate a skylake-server processor, you can use 0x0F01(Xeon-W): -``` -// <0F01> 08 cores Intel Xeon W Intel Xeon W -// <0F01> 10 cores Intel Xeon W Intel Xeon W -// <0F01> 14 cores Intel Xeon W Intel Xeon W -// <0F01> 18 cores Intel Xeon W Intel Xeon W -``` -Notes, the cores should be matched too, or you can fake some disable cores to match the topology. -Then you can specify 3841(0x0F01 in decimal) in ProcessorType section. - -## GPU -GPU passthrough is a good way to gain smooth experience in MacOS.If you do so, make sure you doing things right. -__You have to make sure you put the gfx and graphic audio in the same bus but different function, otherwise DP/HDMI audio, Metal Support, HW Accuration won't work__. -```xml - - - - -
- - -
- - - - -
- - -
- -``` -If you did it right, then there is no much differeces between VM and normal setup procedure, just adding Lilu/WEG/AppleALC then the Metal/H264/H265 HW/HDMI Audio will work well in most case. - -## USB -We use EHC/UHC from qemu now(XHCI(nec/qemu) can't be recognized by MacOS now). -USB port mapping(EHC) and USB Power injection(with fake EC ioreg) are already included in config.plist. - -# Known Problems/Help -see issues. \ No newline at end of file +Note that although the images in the Releases have filenames like OpenCore-v10.iso, these aren't +real ISOs, but rather raw hard disk images, and need to be booted as such. (They're just using .iso +extensions so they'll appear in Proxmox's disk image picker).