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:
Dhiru Kholia 2021-05-12 12:55:20 +05:30 committed by Dhiru Kholia
parent ca219f57e5
commit a1cd556d3a
12 changed files with 262 additions and 971 deletions

2
.gitignore vendored
View File

@ -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.

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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?

View File

@ -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
View File

@ -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.

11
scripts/list_iommu_groups.sh Executable file
View File

@ -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;

1
vfio-kvm.rules Normal file
View File

@ -0,0 +1 @@
SUBSYSTEM=="vfio", OWNER="root", GROUP="kvm"