mirror of
https://github.com/thenickdude/KVM-Opencore.git
synced 2026-03-02 03:40:14 +00:00
Update Manual to support irregular cpu topology assignment
1. Add description of irregular cpu topology assignment 2. Include Lilu/WEG/AppleALC and enabled by default 3. Add VirtualSMC and remove apple smc device in xml 4. Add more description in manual
This commit is contained in:
82
README.md
82
README.md
@@ -1,5 +1,7 @@
|
||||
# KVM-Opencore
|
||||
Opencore Configuration of KVM Hackintosh with tweaks
|
||||
Opencore Configuration of KVM Hackintosh with tweaks.
|
||||
|
||||
We propose best practice for KVM users.
|
||||
|
||||
# Status
|
||||
|
||||
@@ -32,17 +34,21 @@ Opencore Configuration of KVM Hackintosh with tweaks
|
||||
|
||||
# Usage
|
||||
1. Download the repository and put the EFI under your EFI disk
|
||||
2. Download latest Lilu/WhatEverGreen/AppleALC and put them into kext folder, also add them to config.plist
|
||||
|
||||
# Tips
|
||||
# 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 only have limited choices here(because we don't have iGPU)
|
||||
Comparing with normal hackintosh setup, we have only limited choices here(because we don't have an iGPU).
|
||||
* iMacPro1,1(Prefer)
|
||||
* MacPro7,1
|
||||
|
||||
## CPU
|
||||
You have two options to choose: Penryn, Passthrough
|
||||
### Penryn
|
||||
Penryn is the safest choice in Hackintosh VM, it is classic, and Apple wrote native code to support it.
|
||||
### 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:
|
||||
@@ -55,19 +61,60 @@ But we should do something to make it work more than that:
|
||||
* 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 App won't use some important feature like AVX
|
||||
* 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.
|
||||
|
||||
__NOTES__: Topology/Hyper-Threading is working well with Penryn, but you can't not use odd num(like 3/5/7 and greater than 8) cores.
|
||||
|
||||
### Passthrough
|
||||
We can't use topology when using cpu passthrough, detail/discussion can be found in issues.
|
||||
So remove the line(`<topology sockets='1' cores='4' threads='2'/>`) from your libvirt xml.
|
||||
#### Passthrough
|
||||
#### Intel
|
||||
If you are using most recent generation Intel CPU(newer than Penryn), then you can just just passthrough you cpu type with `mode='host-passthrough'`.
|
||||
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 like bare metal hackintosh.
|
||||
##### 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
|
||||
<!-- Example cpu topology defination with 3-cores/6-threads -->
|
||||
<vcpu placement='static' current='6'>8</vcpu>
|
||||
<vcpus>
|
||||
<vcpu id='0' enabled='yes' hotpluggable='no' order='1'/>
|
||||
<vcpu id='1' enabled='yes' hotpluggable='yes' order='2'/>
|
||||
<vcpu id='2' enabled='yes' hotpluggable='yes' order='3'/>
|
||||
<vcpu id='3' enabled='yes' hotpluggable='yes' order='4'/>
|
||||
<vcpu id='4' enabled='yes' hotpluggable='yes' order='5'/>
|
||||
<vcpu id='5' enabled='yes' hotpluggable='yes' order='6'/>
|
||||
<!-- Fake two cores but disabled. -->
|
||||
<vcpu id='6' enabled='no' hotpluggable='yes'/>
|
||||
<vcpu id='7' enabled='no' hotpluggable='yes'/>
|
||||
</vcpus>
|
||||
<cputune>
|
||||
<vcpupin vcpu='0' cpuset='6'/>
|
||||
<vcpupin vcpu='1' cpuset='14'/>
|
||||
<vcpupin vcpu='2' cpuset='7'/>
|
||||
<vcpupin vcpu='3' cpuset='15'/>
|
||||
<vcpupin vcpu='4' cpuset='5'/>
|
||||
<vcpupin vcpu='5' cpuset='13'/>
|
||||
</cputune>
|
||||
<cpu mode='host-passthrough' check='none'>
|
||||
<topology sockets='1' cores='4' threads='2'/>
|
||||
</cpu>
|
||||
```
|
||||
|
||||
#### 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.
|
||||
@@ -94,7 +141,8 @@ __You have to make sure you put the gfx and graphic audio in the same bus but di
|
||||
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) already included.
|
||||
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.
|
||||
Reference in New Issue
Block a user