mirror of https://github.com/kholia/OSX-KVM.git
OSX-KVM - May 2021 Batch Update
Changes: - Fix CPUFAMILY_INTEL_PENRYN patch to support Big Sur 11.3 [thenickdude] - AMD GPU passthrough notes
This commit is contained in:
parent
ca219f57e5
commit
a1cd556d3a
|
@ -9,3 +9,5 @@ mac_hdd_ng.img
|
|||
*.smd
|
||||
*.dmg
|
||||
OVMF_VARS-1024x768.fd
|
||||
OVMF_VARS*.fd
|
||||
OpenCore-Catalina/EFI/OC/Resources/
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -442,7 +442,7 @@
|
|||
/////wAAAP///wA=
|
||||
</data>
|
||||
<key>MaxKernel</key>
|
||||
<string>20.99.99</string>
|
||||
<string>20.3.99</string>
|
||||
<key>MinKernel</key>
|
||||
<string>17.0.0</string>
|
||||
<key>Replace</key>
|
||||
|
@ -455,6 +455,43 @@
|
|||
<key>Skip</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Arch</key>
|
||||
<string>Any</string>
|
||||
<key>Base</key>
|
||||
<string></string>
|
||||
<key>Comment</key>
|
||||
<string>algrey - thenickdude - cpuid_set_cpufamily - force CPUFAMILY_INTEL_PENRYN (Big Sur 11.3 and newer)</string>
|
||||
<key>Count</key>
|
||||
<integer>1</integer>
|
||||
<key>Enabled</key>
|
||||
<true/>
|
||||
<key>Find</key>
|
||||
<data>
|
||||
MdKzAYA9AAAAAAZ1
|
||||
</data>
|
||||
<key>Identifier</key>
|
||||
<string>kernel</string>
|
||||
<key>Limit</key>
|
||||
<integer>0</integer>
|
||||
<key>Mask</key>
|
||||
<data>
|
||||
////////AAAAAP//
|
||||
</data>
|
||||
<key>MaxKernel</key>
|
||||
<string>20.99.99</string>
|
||||
<key>MinKernel</key>
|
||||
<string>20.4.0</string>
|
||||
<key>Replace</key>
|
||||
<data>
|
||||
urxP6nizAJCQkJDr
|
||||
</data>
|
||||
<key>ReplaceMask</key>
|
||||
<data>
|
||||
</data>
|
||||
<key>Skip</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Quirks</key>
|
||||
<dict>
|
||||
|
|
|
@ -1,886 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>ACPI</key>
|
||||
<dict>
|
||||
<key>Add</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>Comment</key>
|
||||
<string>add DTGP method</string>
|
||||
<key>Enabled</key>
|
||||
<true/>
|
||||
<key>Path</key>
|
||||
<string>SSDT-DTGP.aml</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Comment</key>
|
||||
<string>Fake EC and USBX Power</string>
|
||||
<key>Enabled</key>
|
||||
<true/>
|
||||
<key>Path</key>
|
||||
<string>SSDT-EC.aml</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Comment</key>
|
||||
<string>USB 2.0 Injection</string>
|
||||
<key>Enabled</key>
|
||||
<true/>
|
||||
<key>Path</key>
|
||||
<string>SSDT-EHCI.aml</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Comment</key>
|
||||
<string>CPU AGPM Plugin=1</string>
|
||||
<key>Enabled</key>
|
||||
<true/>
|
||||
<key>Path</key>
|
||||
<string>SSDT-PLUG.aml</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Delete</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>All</key>
|
||||
<false/>
|
||||
<key>Comment</key>
|
||||
<string>Delete CpuPm</string>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>OemTableId</key>
|
||||
<data>Q3B1UG0AAAA=</data>
|
||||
<key>TableLength</key>
|
||||
<integer>0</integer>
|
||||
<key>TableSignature</key>
|
||||
<data>U1NEVA==</data>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>All</key>
|
||||
<false/>
|
||||
<key>Comment</key>
|
||||
<string>Delete Cpu0Ist</string>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>OemTableId</key>
|
||||
<data>Q3B1MElzdAA=</data>
|
||||
<key>TableLength</key>
|
||||
<integer>0</integer>
|
||||
<key>TableSignature</key>
|
||||
<data>U1NEVA==</data>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Patch</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>Comment</key>
|
||||
<string>_Q11 to XQ11</string>
|
||||
<key>Count</key>
|
||||
<integer>1</integer>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>Find</key>
|
||||
<data>X1ExMQ==</data>
|
||||
<key>Limit</key>
|
||||
<integer>0</integer>
|
||||
<key>Mask</key>
|
||||
<data></data>
|
||||
<key>OemTableId</key>
|
||||
<data></data>
|
||||
<key>Replace</key>
|
||||
<data>WFExMQ==</data>
|
||||
<key>ReplaceMask</key>
|
||||
<data></data>
|
||||
<key>Skip</key>
|
||||
<integer>0</integer>
|
||||
<key>TableLength</key>
|
||||
<integer>0</integer>
|
||||
<key>TableSignature</key>
|
||||
<data></data>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Comment</key>
|
||||
<string>_Q12 to XQ12</string>
|
||||
<key>Count</key>
|
||||
<integer>1</integer>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>Find</key>
|
||||
<data>X1ExMg==</data>
|
||||
<key>Limit</key>
|
||||
<integer>0</integer>
|
||||
<key>Mask</key>
|
||||
<data></data>
|
||||
<key>OemTableId</key>
|
||||
<data></data>
|
||||
<key>Replace</key>
|
||||
<data>WFExMg==</data>
|
||||
<key>ReplaceMask</key>
|
||||
<data></data>
|
||||
<key>Skip</key>
|
||||
<integer>0</integer>
|
||||
<key>TableLength</key>
|
||||
<integer>0</integer>
|
||||
<key>TableSignature</key>
|
||||
<data></data>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Quirks</key>
|
||||
<dict>
|
||||
<key>FadtEnableReset</key>
|
||||
<false/>
|
||||
<key>NormalizeHeaders</key>
|
||||
<false/>
|
||||
<key>RebaseRegions</key>
|
||||
<false/>
|
||||
<key>ResetHwSig</key>
|
||||
<false/>
|
||||
<key>ResetLogoStatus</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>Booter</key>
|
||||
<dict>
|
||||
<key>MmioWhitelist</key>
|
||||
<array/>
|
||||
<key>Quirks</key>
|
||||
<dict>
|
||||
<key>AvoidRuntimeDefrag</key>
|
||||
<true/>
|
||||
<key>DevirtualiseMmio</key>
|
||||
<false/>
|
||||
<key>DisableSingleUser</key>
|
||||
<false/>
|
||||
<key>DisableVariableWrite</key>
|
||||
<false/>
|
||||
<key>DiscardHibernateMap</key>
|
||||
<false/>
|
||||
<key>EnableSafeModeSlide</key>
|
||||
<true/>
|
||||
<key>EnableWriteUnprotector</key>
|
||||
<true/>
|
||||
<key>ForceExitBootServices</key>
|
||||
<false/>
|
||||
<key>ProtectMemoryRegions</key>
|
||||
<false/>
|
||||
<key>ProtectSecureBoot</key>
|
||||
<false/>
|
||||
<key>ProtectUefiServices</key>
|
||||
<false/>
|
||||
<key>ProvideCustomSlide</key>
|
||||
<true/>
|
||||
<key>ProvideMaxSlide</key>
|
||||
<integer>0</integer>
|
||||
<key>RebuildAppleMemoryMap</key>
|
||||
<false/>
|
||||
<key>SetupVirtualMap</key>
|
||||
<false/>
|
||||
<key>SignalAppleOS</key>
|
||||
<false/>
|
||||
<key>SyncRuntimePermissions</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>DeviceProperties</key>
|
||||
<dict>
|
||||
<key>Add</key>
|
||||
<dict>
|
||||
<key>PciRoot(0x1)/Pci(0x1F,0x0)</key>
|
||||
<dict>
|
||||
<key>compatible</key>
|
||||
<string>pci8086,2916</string>
|
||||
<key>device-id</key>
|
||||
<data>
|
||||
FikA
|
||||
</data>
|
||||
<key>name</key>
|
||||
<string>pci8086,2916</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>Delete</key>
|
||||
<dict>
|
||||
<key>PciRoot(0x0)/Pci(0x1b,0x0)</key>
|
||||
<array>
|
||||
<string>MaximumBootBeepVolume</string>
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>Kernel</key>
|
||||
<dict>
|
||||
<key>Add</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>BundlePath</key>
|
||||
<string>mXHCD.kext</string>
|
||||
<key>Comment</key>
|
||||
<string>Hello There</string>
|
||||
<key>Enabled</key>
|
||||
<true/>
|
||||
<key>ExecutablePath</key>
|
||||
<string>Contents/MacOS/mXHCD</string>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
<string></string>
|
||||
<key>PlistPath</key>
|
||||
<string>Contents/Info.plist</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>BundlePath</key>
|
||||
<string>Lilu.kext</string>
|
||||
<key>Comment</key>
|
||||
<string>Patch engine</string>
|
||||
<key>Enabled</key>
|
||||
<true/>
|
||||
<key>ExecutablePath</key>
|
||||
<string>Contents/MacOS/Lilu</string>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
<string></string>
|
||||
<key>PlistPath</key>
|
||||
<string>Contents/Info.plist</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>BundlePath</key>
|
||||
<string>VirtualSMC.kext</string>
|
||||
<key>Comment</key>
|
||||
<string>SMC emulator</string>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>ExecutablePath</key>
|
||||
<string>Contents/MacOS/VirtualSMC</string>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
<string></string>
|
||||
<key>PlistPath</key>
|
||||
<string>Contents/Info.plist</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>BundlePath</key>
|
||||
<string>WhateverGreen.kext</string>
|
||||
<key>Comment</key>
|
||||
<string>Video patches</string>
|
||||
<key>Enabled</key>
|
||||
<true/>
|
||||
<key>ExecutablePath</key>
|
||||
<string>Contents/MacOS/WhateverGreen</string>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
<string></string>
|
||||
<key>PlistPath</key>
|
||||
<string>Contents/Info.plist</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>BundlePath</key>
|
||||
<string>AppleALC.kext</string>
|
||||
<key>Comment</key>
|
||||
<string>Audio patches</string>
|
||||
<key>Enabled</key>
|
||||
<true/>
|
||||
<key>ExecutablePath</key>
|
||||
<string>Contents/MacOS/AppleALC</string>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
<string></string>
|
||||
<key>PlistPath</key>
|
||||
<string>Contents/Info.plist</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>BundlePath</key>
|
||||
<string>AGPMInjector.kext</string>
|
||||
<key>Comment</key>
|
||||
<string></string>
|
||||
<key>Enabled</key>
|
||||
<true/>
|
||||
<key>ExecutablePath</key>
|
||||
<string></string>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
<string></string>
|
||||
<key>PlistPath</key>
|
||||
<string>Contents/Info.plist</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>BundlePath</key>
|
||||
<string>USBPorts.kext</string>
|
||||
<key>Comment</key>
|
||||
<string></string>
|
||||
<key>Enabled</key>
|
||||
<true/>
|
||||
<key>ExecutablePath</key>
|
||||
<string></string>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
<string></string>
|
||||
<key>PlistPath</key>
|
||||
<string>Contents/Info.plist</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>BundlePath</key>
|
||||
<string>MCEReporterDisabler.kext</string>
|
||||
<key>Comment</key>
|
||||
<string></string>
|
||||
<key>Enabled</key>
|
||||
<true/>
|
||||
<key>ExecutablePath</key>
|
||||
<string></string>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
<string></string>
|
||||
<key>PlistPath</key>
|
||||
<string>Contents/Info.plist</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Block</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>Comment</key>
|
||||
<string></string>
|
||||
<key>Enabled</key>
|
||||
<false/>
|
||||
<key>Identifier</key>
|
||||
<string>com.apple.driver.AppleTyMCEDriver</string>
|
||||
<key>MaxKernel</key>
|
||||
<string></string>
|
||||
<key>MinKernel</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Emulate</key>
|
||||
<dict>
|
||||
<key>Cpuid1Data</key>
|
||||
<data>VwYFAAAAAAAAAAAAAAAAAA==</data>
|
||||
<key>Cpuid1Mask</key>
|
||||
<data>/////wAAAAAAAAAAAAAAAA==</data>
|
||||
</dict>
|
||||
<key>Patch</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>Base</key>
|
||||
<string></string>
|
||||
<key>Comment</key>
|
||||
<string>algrey - cpuid_set_generic_info - disable check to allow leaf7</string>
|
||||
<key>Count</key>
|
||||
<integer>1</integer>
|
||||
<key>Enabled</key>
|
||||
<true/>
|
||||
<key>Find</key>
|
||||
<data>ADoPgg==</data>
|
||||
<key>Identifier</key>
|
||||
<string>kernel</string>
|
||||
<key>Limit</key>
|
||||
<integer>0</integer>
|
||||
<key>Mask</key>
|
||||
<data></data>
|
||||
<key>MaxKernel</key>
|
||||
<string>19.99.99</string>
|
||||
<key>MinKernel</key>
|
||||
<string>17.0.0</string>
|
||||
<key>Replace</key>
|
||||
<data>AAAPgg==</data>
|
||||
<key>ReplaceMask</key>
|
||||
<data></data>
|
||||
<key>Skip</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Base</key>
|
||||
<string>_cpu_topology_sort</string>
|
||||
<key>Comment</key>
|
||||
<string>algrey - cpu_topology_sort -disable _x86_validate_topology</string>
|
||||
<key>Count</key>
|
||||
<integer>1</integer>
|
||||
<key>Enabled</key>
|
||||
<true/>
|
||||
<key>Find</key>
|
||||
<data>6AAA//8=</data>
|
||||
<key>Identifier</key>
|
||||
<string>kernel</string>
|
||||
<key>Limit</key>
|
||||
<integer>0</integer>
|
||||
<key>Mask</key>
|
||||
<data>/wAA//8=</data>
|
||||
<key>MaxKernel</key>
|
||||
<string>19.99.99</string>
|
||||
<key>MinKernel</key>
|
||||
<string>17.0.0</string>
|
||||
<key>Replace</key>
|
||||
<data>Dx9EAAA=</data>
|
||||
<key>ReplaceMask</key>
|
||||
<data></data>
|
||||
<key>Skip</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Base</key>
|
||||
<string></string>
|
||||
<key>Comment</key>
|
||||
<string>algrey - cpuid_set_cpufamily - force CPUFAMILY_INTEL_PENRYN</string>
|
||||
<key>Count</key>
|
||||
<integer>1</integer>
|
||||
<key>Enabled</key>
|
||||
<true/>
|
||||
<key>Find</key>
|
||||
<data>MduAPQAAAAAGdQA=</data>
|
||||
<key>Identifier</key>
|
||||
<string>kernel</string>
|
||||
<key>Limit</key>
|
||||
<integer>0</integer>
|
||||
<key>Mask</key>
|
||||
<data>/////wAAAP///wA=</data>
|
||||
<key>MaxKernel</key>
|
||||
<string>19.99.99</string>
|
||||
<key>MinKernel</key>
|
||||
<string>17.0.0</string>
|
||||
<key>Replace</key>
|
||||
<data>u7xP6njpXQAAAJA=</data>
|
||||
<key>ReplaceMask</key>
|
||||
<data></data>
|
||||
<key>Skip</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Base</key>
|
||||
<string></string>
|
||||
<key>Comment</key>
|
||||
<string>algrey - - skip cpuid_cores_per_package test -10.15</string>
|
||||
<key>Count</key>
|
||||
<integer>0</integer>
|
||||
<key>Enabled</key>
|
||||
<true/>
|
||||
<key>Find</key>
|
||||
<data>gz0AAAAAAA8AAAAAAItdvA==</data>
|
||||
<key>Identifier</key>
|
||||
<string>kernel</string>
|
||||
<key>Limit</key>
|
||||
<integer>0</integer>
|
||||
<key>Mask</key>
|
||||
<data>//8AAAD///8AAAAA/////w==</data>
|
||||
<key>MaxKernel</key>
|
||||
<string>19.99.99</string>
|
||||
<key>MinKernel</key>
|
||||
<string>19.0.0</string>
|
||||
<key>Replace</key>
|
||||
<data>AAAAAAAAAQAAAAAAAAAAAA==</data>
|
||||
<key>ReplaceMask</key>
|
||||
<data>AAAAAAAADwAAAAAAAAAAAA==</data>
|
||||
<key>Skip</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Base</key>
|
||||
<string></string>
|
||||
<key>Comment</key>
|
||||
<string>algrey - - skip cpuid_cores_per_package test</string>
|
||||
<key>Count</key>
|
||||
<integer>0</integer>
|
||||
<key>Enabled</key>
|
||||
<true/>
|
||||
<key>Find</key>
|
||||
<data>gz0AAAAAAHQAi128</data>
|
||||
<key>Identifier</key>
|
||||
<string>kernel</string>
|
||||
<key>Limit</key>
|
||||
<integer>0</integer>
|
||||
<key>Mask</key>
|
||||
<data>//8AAAD///8A////</data>
|
||||
<key>MaxKernel</key>
|
||||
<string>18.99.99</string>
|
||||
<key>MinKernel</key>
|
||||
<string>17.0.0</string>
|
||||
<key>Replace</key>
|
||||
<data>AAAAAAAAAQAAAAAA</data>
|
||||
<key>ReplaceMask</key>
|
||||
<data>AAAAAAAADwAAAAAA</data>
|
||||
<key>Skip</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Quirks</key>
|
||||
<dict>
|
||||
<key>AppleCpuPmCfgLock</key>
|
||||
<false/>
|
||||
<key>AppleXcpmCfgLock</key>
|
||||
<false/>
|
||||
<key>AppleXcpmExtraMsrs</key>
|
||||
<false/>
|
||||
<key>AppleXcpmForceBoost</key>
|
||||
<false/>
|
||||
<key>CustomSMBIOSGuid</key>
|
||||
<false/>
|
||||
<key>DisableIoMapper</key>
|
||||
<false/>
|
||||
<key>DisableRtcChecksum</key>
|
||||
<false/>
|
||||
<key>DummyPowerManagement</key>
|
||||
<true/>
|
||||
<key>ExternalDiskIcons</key>
|
||||
<false/>
|
||||
<key>IncreasePciBarSize</key>
|
||||
<false/>
|
||||
<key>LapicKernelPanic</key>
|
||||
<false/>
|
||||
<key>PanicNoKextDump</key>
|
||||
<false/>
|
||||
<key>PowerTimeoutKernelPanic</key>
|
||||
<false/>
|
||||
<key>ThirdPartyDrives</key>
|
||||
<false/>
|
||||
<key>XhciPortLimit</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>Misc</key>
|
||||
<dict>
|
||||
<key>BlessOverride</key>
|
||||
<array/>
|
||||
<key>Boot</key>
|
||||
<dict>
|
||||
<key>ConsoleAttributes</key>
|
||||
<integer>0</integer>
|
||||
<key>HibernateMode</key>
|
||||
<string>Auto</string>
|
||||
<key>HideAuxiliary</key>
|
||||
<false/>
|
||||
<key>PickerAttributes</key>
|
||||
<integer>1</integer>
|
||||
<key>PickerAudioAssist</key>
|
||||
<false/>
|
||||
<key>PickerMode</key>
|
||||
<string>External</string>
|
||||
<key>PollAppleHotKeys</key>
|
||||
<true/>
|
||||
<key>ShowPicker</key>
|
||||
<true/>
|
||||
<key>TakeoffDelay</key>
|
||||
<integer>0</integer>
|
||||
<key>Timeout</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>Debug</key>
|
||||
<dict>
|
||||
<key>AppleDebug</key>
|
||||
<false/>
|
||||
<key>ApplePanic</key>
|
||||
<false/>
|
||||
<key>DisableWatchDog</key>
|
||||
<false/>
|
||||
<key>DisplayDelay</key>
|
||||
<integer>0</integer>
|
||||
<key>DisplayLevel</key>
|
||||
<integer>2147483650</integer>
|
||||
<key>SysReport</key>
|
||||
<false/>
|
||||
<key>Target</key>
|
||||
<integer>3</integer>
|
||||
</dict>
|
||||
<key>Entries</key>
|
||||
<array/>
|
||||
<key>Security</key>
|
||||
<dict>
|
||||
<key>AllowNvramReset</key>
|
||||
<true/>
|
||||
<key>AllowSetDefault</key>
|
||||
<false/>
|
||||
<key>AuthRestart</key>
|
||||
<false/>
|
||||
<key>BootProtect</key>
|
||||
<string>None</string>
|
||||
<key>ExposeSensitiveData</key>
|
||||
<integer>6</integer>
|
||||
<key>HaltLevel</key>
|
||||
<integer>2147483648</integer>
|
||||
<key>ScanPolicy</key>
|
||||
<integer>0</integer>
|
||||
<key>Vault</key>
|
||||
<string>Optional</string>
|
||||
</dict>
|
||||
<key>Tools</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>Arguments</key>
|
||||
<string></string>
|
||||
<key>Auxiliary</key>
|
||||
<false/>
|
||||
<key>Comment</key>
|
||||
<string>Not signed for security reasons</string>
|
||||
<key>Enabled</key>
|
||||
<true/>
|
||||
<key>Name</key>
|
||||
<string>UEFI Shell</string>
|
||||
<key>Path</key>
|
||||
<string>OpenShell.efi</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Arguments</key>
|
||||
<string>Shutdown</string>
|
||||
<key>Auxiliary</key>
|
||||
<true/>
|
||||
<key>Comment</key>
|
||||
<string>Perform shutdown</string>
|
||||
<key>Enabled</key>
|
||||
<true/>
|
||||
<key>Name</key>
|
||||
<string>Shutdown</string>
|
||||
<key>Path</key>
|
||||
<string>ResetSystem.efi</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<key>NVRAM</key>
|
||||
<dict>
|
||||
<key>Add</key>
|
||||
<dict>
|
||||
<key>4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14</key>
|
||||
<dict>
|
||||
<key>DefaultBackgroundColor</key>
|
||||
<data>AAAAAA==</data>
|
||||
<key>UIScale</key>
|
||||
<data>AQ==</data>
|
||||
</dict>
|
||||
<key>4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102</key>
|
||||
<dict>
|
||||
<key>rtc-blacklist</key>
|
||||
<data></data>
|
||||
</dict>
|
||||
<key>7C436110-AB2A-4BBB-A880-FE41995C9F82</key>
|
||||
<dict>
|
||||
<key>SystemAudioVolume</key>
|
||||
<data>Rg==</data>
|
||||
<key>boot-args</key>
|
||||
<string>-v keepsyms=1</string>
|
||||
<key>run-efi-updater</key>
|
||||
<string>No</string>
|
||||
<key>csr-active-config</key>
|
||||
<data>AAAAAA==</data>
|
||||
<key>prev-lang:kbd</key>
|
||||
<data>ZW4tVVM6MA==</data>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>Delete</key>
|
||||
<dict>
|
||||
<key>4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14</key>
|
||||
<array>
|
||||
<string>UIScale</string>
|
||||
<string>DefaultBackgroundColor</string>
|
||||
</array>
|
||||
<key>4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102</key>
|
||||
<array>
|
||||
<string>rtc-blacklist</string>
|
||||
</array>
|
||||
<key>7C436110-AB2A-4BBB-A880-FE41995C9F82</key>
|
||||
<array>
|
||||
<string>boot-args</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>LegacyEnable</key>
|
||||
<false/>
|
||||
<key>LegacyOverwrite</key>
|
||||
<false/>
|
||||
<key>LegacySchema</key>
|
||||
<dict>
|
||||
<key>7C436110-AB2A-4BBB-A880-FE41995C9F82</key>
|
||||
<array>
|
||||
<string>EFILoginHiDPI</string>
|
||||
<string>EFIBluetoothDelay</string>
|
||||
<string>LocationServicesEnabled</string>
|
||||
<string>SystemAudioVolume</string>
|
||||
<string>SystemAudioVolumeDB</string>
|
||||
<string>SystemAudioVolumeSaved</string>
|
||||
<string>bluetoothActiveControllerInfo</string>
|
||||
<string>bluetoothInternalControllerInfo</string>
|
||||
<string>flagstate</string>
|
||||
<string>fmm-computer-name</string>
|
||||
<string>nvda_drv</string>
|
||||
<string>prev-lang:kbd</string>
|
||||
</array>
|
||||
<key>8BE4DF61-93CA-11D2-AA0D-00E098032B8C</key>
|
||||
<array>
|
||||
<string>Boot0080</string>
|
||||
<string>Boot0081</string>
|
||||
<string>Boot0082</string>
|
||||
<string>BootNext</string>
|
||||
<string>BootOrder</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>WriteFlash</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>PlatformInfo</key>
|
||||
<dict>
|
||||
<key>Automatic</key>
|
||||
<true/>
|
||||
<key>Generic</key>
|
||||
<dict>
|
||||
<key>AdviseWindows</key>
|
||||
<false/>
|
||||
<key>MLB</key>
|
||||
<string>C02717306J9JG361M</string>
|
||||
<key>ROM</key>
|
||||
<data>
|
||||
m7zhIYfl
|
||||
</data>
|
||||
<key>SpoofVendor</key>
|
||||
<true/>
|
||||
<key>SystemProductName</key>
|
||||
<string>iMacPro1,1</string>
|
||||
<key>SystemSerialNumber</key>
|
||||
<string>C02TM2ZBHX87</string>
|
||||
<key>SystemUUID</key>
|
||||
<string>007076A6-F2A2-4461-BBE5-BAD019F8025A</string>
|
||||
</dict>
|
||||
<key>UpdateDataHub</key>
|
||||
<true/>
|
||||
<key>UpdateNVRAM</key>
|
||||
<true/>
|
||||
<key>UpdateSMBIOS</key>
|
||||
<true/>
|
||||
<key>UpdateSMBIOSMode</key>
|
||||
<string>Create</string>
|
||||
</dict>
|
||||
<key>UEFI</key>
|
||||
<dict>
|
||||
<key>APFS</key>
|
||||
<dict>
|
||||
<key>EnableJumpstart</key>
|
||||
<true/>
|
||||
<key>GlobalConnect</key>
|
||||
<false/>
|
||||
<key>HideVerbose</key>
|
||||
<true/>
|
||||
<key>JumpstartHotPlug</key>
|
||||
<false/>
|
||||
<key>MinDate</key>
|
||||
<integer>-1</integer>
|
||||
<key>MinVersion</key>
|
||||
<integer>-1</integer>
|
||||
</dict>
|
||||
<key>Audio</key>
|
||||
<dict>
|
||||
<key>AudioCodec</key>
|
||||
<integer>0</integer>
|
||||
<key>AudioDevice</key>
|
||||
<string>PciRoot(0x1)/Pci(0x1,0x0)/Pci(0x0,0x1)</string>
|
||||
<key>AudioOut</key>
|
||||
<integer>0</integer>
|
||||
<key>AudioSupport</key>
|
||||
<false/>
|
||||
<key>MinimumVolume</key>
|
||||
<integer>20</integer>
|
||||
<key>PlayChime</key>
|
||||
<false/>
|
||||
<key>VolumeAmplifier</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>ConnectDrivers</key>
|
||||
<true/>
|
||||
<key>Drivers</key>
|
||||
<array>
|
||||
<string>OpenRuntime.efi</string>
|
||||
<string>VBoxHfs.efi</string>
|
||||
<string>OpenCanopy.efi</string>
|
||||
</array>
|
||||
<key>Input</key>
|
||||
<dict>
|
||||
<key>KeyFiltering</key>
|
||||
<false/>
|
||||
<key>KeyForgetThreshold</key>
|
||||
<integer>5</integer>
|
||||
<key>KeyMergeThreshold</key>
|
||||
<integer>2</integer>
|
||||
<key>KeySupport</key>
|
||||
<true/>
|
||||
<key>KeySupportMode</key>
|
||||
<string>Auto</string>
|
||||
<key>KeySwap</key>
|
||||
<false/>
|
||||
<key>PointerSupport</key>
|
||||
<false/>
|
||||
<key>PointerSupportMode</key>
|
||||
<string>ASUS</string>
|
||||
<key>TimerResolution</key>
|
||||
<integer>50000</integer>
|
||||
</dict>
|
||||
<key>Output</key>
|
||||
<dict>
|
||||
<key>ClearScreenOnModeSwitch</key>
|
||||
<false/>
|
||||
<key>ConsoleMode</key>
|
||||
<string></string>
|
||||
<key>DirectGopRendering</key>
|
||||
<false/>
|
||||
<key>IgnoreTextInGraphics</key>
|
||||
<false/>
|
||||
<key>ProvideConsoleGop</key>
|
||||
<true/>
|
||||
<key>ReconnectOnResChange</key>
|
||||
<false/>
|
||||
<key>ReplaceTabWithSpace</key>
|
||||
<false/>
|
||||
<key>Resolution</key>
|
||||
<string>1920x1080@32</string>
|
||||
<key>SanitiseClearScreen</key>
|
||||
<false/>
|
||||
<key>TextRenderer</key>
|
||||
<string>BuiltinGraphics</string>
|
||||
</dict>
|
||||
<key>ProtocolOverrides</key>
|
||||
<dict>
|
||||
<key>AppleAudio</key>
|
||||
<false/>
|
||||
<key>AppleBootPolicy</key>
|
||||
<false/>
|
||||
<key>AppleDebugLog</key>
|
||||
<false/>
|
||||
<key>AppleEvent</key>
|
||||
<false/>
|
||||
<key>AppleImageConversion</key>
|
||||
<false/>
|
||||
<key>AppleKeyMap</key>
|
||||
<false/>
|
||||
<key>AppleRtcRam</key>
|
||||
<false/>
|
||||
<key>AppleSmcIo</key>
|
||||
<false/>
|
||||
<key>AppleUserInterfaceTheme</key>
|
||||
<false/>
|
||||
<key>DataHub</key>
|
||||
<false/>
|
||||
<key>DeviceProperties</key>
|
||||
<false/>
|
||||
<key>FirmwareVolume</key>
|
||||
<false/>
|
||||
<key>HashServices</key>
|
||||
<false/>
|
||||
<key>OSInfo</key>
|
||||
<false/>
|
||||
<key>UnicodeCollation</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>Quirks</key>
|
||||
<dict>
|
||||
<key>DeduplicateBootOrder</key>
|
||||
<true/>
|
||||
<key>ExitBootServicesDelay</key>
|
||||
<integer>0</integer>
|
||||
<key>IgnoreInvalidFlexRatio</key>
|
||||
<false/>
|
||||
<key>ReleaseUsbOwnership</key>
|
||||
<false/>
|
||||
<key>RequestBootVarRouting</key>
|
||||
<true/>
|
||||
<key>TscSyncTimeout</key>
|
||||
<integer>0</integer>
|
||||
<key>UnblockFsConnect</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
|
@ -442,7 +442,7 @@
|
|||
/////wAAAP///wA=
|
||||
</data>
|
||||
<key>MaxKernel</key>
|
||||
<string>20.99.99</string>
|
||||
<string>20.3.99</string>
|
||||
<key>MinKernel</key>
|
||||
<string>17.0.0</string>
|
||||
<key>Replace</key>
|
||||
|
@ -455,6 +455,43 @@
|
|||
<key>Skip</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Arch</key>
|
||||
<string>Any</string>
|
||||
<key>Base</key>
|
||||
<string></string>
|
||||
<key>Comment</key>
|
||||
<string>algrey - thenickdude - cpuid_set_cpufamily - force CPUFAMILY_INTEL_PENRYN (Big Sur 11.3 and newer)</string>
|
||||
<key>Count</key>
|
||||
<integer>1</integer>
|
||||
<key>Enabled</key>
|
||||
<true/>
|
||||
<key>Find</key>
|
||||
<data>
|
||||
MdKzAYA9AAAAAAZ1
|
||||
</data>
|
||||
<key>Identifier</key>
|
||||
<string>kernel</string>
|
||||
<key>Limit</key>
|
||||
<integer>0</integer>
|
||||
<key>Mask</key>
|
||||
<data>
|
||||
////////AAAAAP//
|
||||
</data>
|
||||
<key>MaxKernel</key>
|
||||
<string>20.99.99</string>
|
||||
<key>MinKernel</key>
|
||||
<string>20.4.0</string>
|
||||
<key>Replace</key>
|
||||
<data>
|
||||
urxP6nizAJCQkJDr
|
||||
</data>
|
||||
<key>ReplaceMask</key>
|
||||
<data>
|
||||
</data>
|
||||
<key>Skip</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Quirks</key>
|
||||
<dict>
|
||||
|
|
12
README.md
12
README.md
|
@ -83,6 +83,12 @@ Phenom II X3 720 does not. Ryzen processors work just fine.
|
|||
|
||||
This step may need to be adapted for your Linux distribution.
|
||||
|
||||
* Add user to the `kvm` group (might be needed).
|
||||
|
||||
```
|
||||
sudo usermod -aG kvm $(whoami)
|
||||
```
|
||||
|
||||
* Clone this repository on your QEMU system. Files from this repository are
|
||||
used in the following steps.
|
||||
|
||||
|
@ -211,13 +217,15 @@ work, patience, and a bit of luck (perhaps?).
|
|||
|
||||
This has been enough for me so far.
|
||||
|
||||
Note: You may need to [enable the `rc.local` functionality manually on modern Ubuntu versions](https://linuxmedium.com/how-to-enable-etc-rc-local-with-systemd-on-ubuntu-20-04/).
|
||||
Note: You may need to enable the `rc.local` functionality manually on modern
|
||||
Ubuntu versions. Check out the [notes](notes.md) included in this repository
|
||||
for details.
|
||||
|
||||
* To passthrough GPUs and other devices, see [these notes](notes.md).
|
||||
|
||||
* Need a different resolution? Check out the [notes](notes.md) included in this repository.
|
||||
|
||||
* To generate your own SMBIOS, use [GenSMBIOS](https://github.com/corpnewt/GenSMBIOS).
|
||||
* Trouble with iMessage? Check out the [notes](notes.md) included in this repository.
|
||||
|
||||
|
||||
### Is This Legal?
|
||||
|
|
|
@ -23,7 +23,7 @@ CPU_SOCKETS="1"
|
|||
CPU_CORES="2"
|
||||
CPU_THREADS="4"
|
||||
|
||||
REPO_PATH="./"
|
||||
REPO_PATH="."
|
||||
OVMF_DIR="."
|
||||
|
||||
# Note: This script assumes that you are doing CPU + GPU passthrough. This
|
||||
|
@ -35,23 +35,29 @@ OVMF_DIR="."
|
|||
|
||||
# shellcheck disable=SC2054
|
||||
args=(
|
||||
-enable-kvm -m "$ALLOCATED_RAM" -cpu host,vendor=GenuineIntel,kvm=on,vmware-cpuid-freq=on,+invtsc,+hypervisor
|
||||
-machine pc-q35-2.9
|
||||
-smp "$CPU_THREADS",cores="$CPU_CORES",sockets="$CPU_SOCKETS"
|
||||
-vga none
|
||||
-device pcie-root-port,bus=pcie.0,multifunction=on,port=1,chassis=1,id=port.1
|
||||
-device vfio-pci,host=01:00.0,bus=port.1,multifunction=on
|
||||
-device vfio-pci,host=01:00.1,bus=port.1
|
||||
-enable-kvm -m "$ALLOCATED_RAM" -cpu Penryn,kvm=on,vendor=GenuineIntel,+invtsc,vmware-cpuid-freq=on,"$MY_OPTIONS"
|
||||
-machine q35
|
||||
-usb -device usb-kbd -device usb-tablet
|
||||
-smp "$CPU_THREADS",cores="$CPU_CORES",sockets="$CPU_SOCKETS"
|
||||
-device usb-ehci,id=ehci
|
||||
-vga none
|
||||
-device vfio-pci,host=01:00.0,multifunction=on
|
||||
-device vfio-pci,host=01:00.1
|
||||
-device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc"
|
||||
-drive if=pflash,format=raw,readonly,file="$REPO_PATH/$OVMF_DIR/OVMF_CODE.fd"
|
||||
-drive if=pflash,format=raw,file="$REPO_PATH/$OVMF_DIR/OVMF_VARS-1024x768.fd"
|
||||
-smbios type=2
|
||||
-drive id=MacHDD,if=none,file=./mac_hdd_ng.img
|
||||
-device ide-drive,bus=sata.2,drive=MacHDD
|
||||
-drive id=OpenCoreBoot,if=none,snapshot=on,format=qcow2,file="$REPO_PATH/OpenCore-Catalina/OpenCore-Passthrough.qcow2"
|
||||
-device ide-hd,bus=sata.3,drive=OpenCoreBoot
|
||||
-netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device vmxnet3,netdev=net0,id=net0,mac=52:54:00:c9:18:27
|
||||
-device ich9-intel-hda -device hda-duplex
|
||||
-device ich9-ahci,id=sata
|
||||
-drive id=OpenCoreBoot,if=none,snapshot=on,format=qcow2,file="$REPO_PATH/OpenCore-Catalina/OpenCore-nopicker.qcow2"
|
||||
# -drive id=OpenCoreBoot,if=none,snapshot=on,format=qcow2,file="$REPO_PATH/OpenCore-Catalina/OpenCore.qcow2"
|
||||
-device ide-hd,bus=sata.2,drive=OpenCoreBoot
|
||||
-device ide-hd,bus=sata.3,drive=InstallMedia
|
||||
-drive id=InstallMedia,if=none,file="$REPO_PATH/BaseSystem.img",format=raw
|
||||
-drive id=MacHDD,if=none,file="$REPO_PATH/mac_hdd_ng.img",format=qcow2
|
||||
-device ide-hd,bus=sata.4,drive=MacHDD
|
||||
# -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device vmxnet3,netdev=net0,id=net0,mac=52:54:00:c9:18:27
|
||||
-netdev user,id=net0 -device vmxnet3,netdev=net0,id=net0,mac=52:54:00:c9:18:27
|
||||
-monitor stdio
|
||||
-display none
|
||||
)
|
||||
|
|
211
notes.md
211
notes.md
|
@ -48,89 +48,126 @@ option easily.
|
|||
### GPU passthrough notes
|
||||
|
||||
These steps will need to be adapted for your particular setup. A host machine
|
||||
with IOMMU support is required. Consult the Arch Wiki article linked to at the
|
||||
bottom of this file for exact requirements and other details.
|
||||
with IOMMU support is required. Consult [this Arch Wiki article](https://wiki.archlinux.org/title/PCI_passthrough_via_OVMF)
|
||||
for general-purpose guidance and details.
|
||||
|
||||
I am running Ubuntu 17.04 on Intel i5-6500 + ASUS Z170-AR motherboard + NVIDIA
|
||||
1050 Ti.
|
||||
I am running Ubuntu 20.04.2 LTS on Intel i5-6500 + ASUS Z170-AR motherboard +
|
||||
AMD RX 570 GPU (May 2021).
|
||||
|
||||
Tip: Use https://github.com/Benjamin-Dobell/nvidia-update to install nVidia
|
||||
drivers on macOS.
|
||||
|
||||
* Enable IOMMU support on the host machine.
|
||||
|
||||
Append the given line to `GRUB_CMDLINE_LINUX_DEFAULT` in `/etc/default/grub`.
|
||||
|
||||
##### Intel Systems
|
||||
|
||||
`iommu=pt intel_iommu=on rd.driver.pre=vfio-pci video=vesafb:off,efifb:off`
|
||||
|
||||
##### AMD Systems
|
||||
|
||||
`iommu=pt amd_iommu=on rd.driver.pre=vfio-pci video=vesafb:off,efifb:off`
|
||||
|
||||
* Uninstall NVIDIA drivers from the host machine and blacklist the required modules.
|
||||
* Blacklist the required kernel modules.
|
||||
|
||||
```
|
||||
$ cat /etc/modprobe.d/blacklist.conf
|
||||
... <existing stuff>
|
||||
|
||||
blacklist amdgpu
|
||||
blacklist radeon
|
||||
blacklist nouveau
|
||||
blacklist nvidia
|
||||
```
|
||||
|
||||
* Enable the required kernel modules.
|
||||
* Find details of the PCIe devices to passthrough.
|
||||
|
||||
```
|
||||
# echo "vfio" >> /etc/modules
|
||||
# echo "vfio_iommu_type1" >> /etc/modules
|
||||
# echo "vfio_pci" >> /etc/modules
|
||||
# echo "vfio_virqfd" >> /etc/modules
|
||||
$ lspci -nnk | grep AMD
|
||||
01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] [1002:67df] (rev ef)
|
||||
01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590] [1002:aaf0]
|
||||
```
|
||||
|
||||
* Isolate the passthrough PCIe devices with vfio-pci, with the help of `lspci
|
||||
-nnk` command. Adapt these commands to suit your hardware setup.
|
||||
* Enable IOMMU support and configure VFIO.
|
||||
|
||||
Append the given line to `GRUB_CMDLINE_LINUX_DEFAULT` in `/etc/default/grub`.
|
||||
|
||||
##### Intel CPU Systems
|
||||
|
||||
`iommu=pt intel_iommu=on vfio-pci.ids=1002:67df,1002:aaf0 kvm.ignore_msrs=1 video=vesafb:off,efifb:off`
|
||||
|
||||
##### AMD CPU Systems
|
||||
|
||||
`iommu=pt amd_iommu=on <remaining-line-from-above...>`
|
||||
|
||||
* Tweak module configuration a bit according to the following output (thanks to Mathias Hueber).
|
||||
|
||||
```
|
||||
$ lspci -nn
|
||||
...
|
||||
01:00.0 ... NVIDIA Corporation [GeForce GTX 1050 Ti] [10de:1c82]
|
||||
01:00.1 Audio device: NVIDIA Corporation Device [10de:0fb9]
|
||||
03:00.0 USB controller: ASMedia ASM1142 USB 3.1 Host Controller [1b21:1242]
|
||||
$ cat /etc/modprobe.d/vfio.conf
|
||||
options vfio-pci ids=1002:67df,1002:aaf0 disable_vga=1
|
||||
softdep radeon pre: vfio-pci
|
||||
softdep amdgpu pre: vfio-pci
|
||||
softdep nouveau pre: vfio-pci
|
||||
softdep drm pre: vfio-pci
|
||||
```
|
||||
|
||||
```
|
||||
# echo "options vfio-pci ids=10de:1c82,10de:0fb9 disable_vga=1" > /etc/modprobe.d/vfio.conf
|
||||
```
|
||||
|
||||
* Update initramfs, GRUB and then reboot.
|
||||
* Update GRUB, initramfs, and then reboot.
|
||||
|
||||
```
|
||||
$ sudo update-grub2
|
||||
$ sudo update-initramfs -k all -u
|
||||
```
|
||||
|
||||
* Verify that the IOMMU is enabled, and vfio_pci is working as expected.
|
||||
Consult Arch Wiki again for help on this. (Often running `lspci -vvv` and
|
||||
verifying that the expected devices are using `vfio-pci` as their `Kernel driver in use` is sufficient)
|
||||
* In the BIOS setup, set the `Primary Display` to `IGFX` (onboard graphics).
|
||||
|
||||
* On the macOS VM, install a NVIDIA Web Driver version which is appropriate for
|
||||
the macOS version. Consult http://www.macvidcards.com/drivers.html for more
|
||||
information.
|
||||
* Verify that the IOMMU is enabled, and `vfio-pci` is working as expected.
|
||||
Verify that the expected devices are using `vfio-pci` as their kernel driver
|
||||
|
||||
For example, macOS 10.12.5 requires version `378.05.05.15f01` whereas macOS
|
||||
10.12.6 requires version `378.05.05.25f01`.
|
||||
```
|
||||
$ dmesg | grep -i iommu
|
||||
[ 0.076879] DMAR: IOMMU enabled
|
||||
[ 0.183732] DMAR-IR: IOAPIC id 2 under DRHD base 0xfed91000 IOMMU 1
|
||||
[ 0.330654] iommu: Default domain type: Passthrough (set via kernel command line)
|
||||
[ 0.489615] pci 0000:00:00.0: Adding to iommu group 0
|
||||
[ 0.489627] pci 0000:00:01.0: Adding to iommu group 1
|
||||
[ 0.489634] pci 0000:00:02.0: Adding to iommu group 2
|
||||
[ 0.489643] pci 0000:00:14.0: Adding to iommu group 3
|
||||
```
|
||||
|
||||
* Updating SMBIOS for the macOS to `iMac14,2` might be required. I did not do
|
||||
so myself.
|
||||
```
|
||||
$ dmesg | grep vfio
|
||||
[ 0.526198] vfio-pci 0000:01:00.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=io+mem
|
||||
[ 0.543768] vfio_pci: add [1002:67df[ffffffff:ffffffff]] class 0x000000/00000000
|
||||
[ 0.563765] vfio_pci: add [1002:aaf0[ffffffff:ffffffff]] class 0x000000/00000000
|
||||
[ 3.384597] vfio-pci 0000:01:00.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=io+mem
|
||||
```
|
||||
|
||||
```
|
||||
$ lspci -nkk -d 1002:67df
|
||||
01:00.0 0300: 1002:67df (rev ef)
|
||||
Subsystem: 1da2:e366
|
||||
Kernel driver in use: vfio-pci
|
||||
Kernel modules: amdgpu
|
||||
```
|
||||
|
||||
```
|
||||
$ ./scripts/list_iommu_groups.sh
|
||||
IOMMU Group 0:
|
||||
00:00.0 Host bridge [0600]: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers [8086:191f] (rev 07)
|
||||
IOMMU Group 1:
|
||||
00:01.0 PCI bridge [0604]: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) [8086:1901] (rev 07)
|
||||
01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] [1002:67df] (rev ff)
|
||||
01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590] [1002:aaf0] (rev ff)
|
||||
```
|
||||
|
||||
* Fix permisions for the `/dev/vfio/1` device (modify as needed):
|
||||
|
||||
```
|
||||
sudo cp vfio-kvm.rules /etc/udev/rules.d/vfio-kvm.rules
|
||||
|
||||
sudo udevadm control --reload
|
||||
sudo udevadm trigger
|
||||
```
|
||||
|
||||
* Open `/etc/security/limits.conf` file and add the following lines:
|
||||
|
||||
```
|
||||
@kvm soft memlock unlimited
|
||||
@kvm hard memlock unlimited
|
||||
```
|
||||
|
||||
Thanks to `Heiko Sieger` for this solution.
|
||||
|
||||
* Confirm the contents of `boot-passthrough.sh` and run it to boot macOS with
|
||||
GPU passthrough.
|
||||
|
||||
* To reuse the keyboard and mouse devices from the host, setup "Automatic
|
||||
login" in System Preferences in macOS and configure Synergy software.
|
||||
|
||||
Note: Many AMD GPU devices (e.g. AMD RX 480 & RX 580) should be natively
|
||||
supported in macOS High Sierra.
|
||||
|
||||
|
||||
### USB passthrough notes
|
||||
|
||||
|
@ -140,14 +177,13 @@ These steps will need to be adapted for your particular setup.
|
|||
-nnk` command.
|
||||
|
||||
```
|
||||
$ lspci -nn
|
||||
$ lspci -nnk
|
||||
...
|
||||
01:00.0 ... NVIDIA Corporation [GeForce GTX 1050 Ti] [10de:1c82]
|
||||
01:00.1 Audio device: NVIDIA Corporation Device [10de:0fb9]
|
||||
03:00.0 USB controller: ASMedia ASM1142 USB 3.1 Host Controller [1b21:1242]
|
||||
```
|
||||
|
||||
Add `1b21:1242` to `/etc/modprobe.d/vfio.conf` file in the required format.
|
||||
Add `1b21:1242` to `GRUB_CMDLINE_LINUX_DEFAULT` in `/etc/default/grub` file
|
||||
in the required format. See `GPU passthrough notes` (above) for details.
|
||||
|
||||
* Update initramfs, and then reboot.
|
||||
|
||||
|
@ -195,18 +231,6 @@ These steps will need to be adapted for your particular setup.
|
|||
* The included `.synergy.conf` will need to be adapted according to your setup.
|
||||
|
||||
|
||||
### Accelerated Graphics
|
||||
|
||||
See `UEFI/README.md` for GPU passthrough notes.
|
||||
|
||||
Note: There is no working QXL driver for macOS so far.
|
||||
|
||||
Links:
|
||||
|
||||
- https://www.kraxel.org/blog/2019/09/display-devices-in-qemu/
|
||||
- https://www.kraxel.org/blog/2019/06/macos-qemu-guest/
|
||||
|
||||
|
||||
### Virtual Sound Device
|
||||
|
||||
*Warning: The OpenCore distribution that comes with OSX-KVM already has
|
||||
|
@ -596,3 +620,54 @@ The `-smp line` should read something like the following:
|
|||
```
|
||||
-smp "$CPU_TOTAL",cores="$CPU_CORES",sockets="$CPU_SOCKETS",threads="$CPU_THREADS",maxcpus="$CPU_TOTAL"
|
||||
```
|
||||
|
||||
|
||||
### Trouble with iMessage?
|
||||
|
||||
Check out [this Dortania article on this topic](https://dortania.github.io/OpenCore-Post-Install/universal/iservices.html#using-gensmbios).
|
||||
|
||||
|
||||
### Enable rc.local functionality on moden Ubuntu versions
|
||||
|
||||
Create `/etc/rc.local` file with the following content, if it doesn't exist:
|
||||
|
||||
```
|
||||
#!/bin/bash
|
||||
|
||||
echo "Hello! :)"
|
||||
|
||||
exit 0
|
||||
```
|
||||
|
||||
Make this file executable, if required:
|
||||
|
||||
```
|
||||
sudo chmod +x /etc/rc.local
|
||||
```
|
||||
|
||||
Create `/etc/systemd/system/rc-local.service` with the following content, if
|
||||
it doesn't exist:
|
||||
|
||||
```
|
||||
[Unit]
|
||||
Description=enable /etc/rc.local
|
||||
ConditionPathExists=/etc/rc.local
|
||||
|
||||
[Service]
|
||||
ExecStart=/etc/rc.local start
|
||||
TimeoutSec=0
|
||||
StandardOutput=tty
|
||||
RemainAfterExit=yes
|
||||
SysVStartPriority=99
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
Enable `rc.local` systemd service:
|
||||
|
||||
```
|
||||
sudo systemctl enable rc-local
|
||||
```
|
||||
|
||||
These notes are borrowed from various multiple internet resources.
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Source: https://wiki.archlinux.org/title/PCI_passthrough_via_OVMF
|
||||
|
||||
shopt -s nullglob
|
||||
for g in `find /sys/kernel/iommu_groups/* -maxdepth 0 -type d | sort -V`; do
|
||||
echo "IOMMU Group ${g##*/}:"
|
||||
for d in $g/devices/*; do
|
||||
echo -e "\t$(lspci -nns ${d##*/})"
|
||||
done;
|
||||
done;
|
|
@ -0,0 +1 @@
|
|||
SUBSYSTEM=="vfio", OWNER="root", GROUP="kvm"
|
Loading…
Reference in New Issue