Skip to content

Commit

Permalink
Adds foundation for macOS 15, confirmed working.
Browse files Browse the repository at this point in the history
  • Loading branch information
royalgraphx committed Jun 11, 2024
1 parent a8c73c1 commit ab9555c
Show file tree
Hide file tree
Showing 43 changed files with 542 additions and 74 deletions.
Binary file modified Assets/Header.psd
Binary file not shown.
13 changes: 7 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,12 @@
<img width="650" height="200" src="./Assets/HeaderGallery.png">
</p>

<h3 align="center">macOS Sequoia 15.0 Beta 1</h3>
<p align="center">
<img src="./showcase/HacProKVM15Beta.png">
<img src="./showcase/HacProKVM15BetaAlt.png">
</p>

<h3 align="center">macOS Sonoma 14.5</h3>
<p align="center">
<img src="./showcase/HacProKVM145.png">
Expand Down Expand Up @@ -93,14 +99,9 @@
<img src="./showcase/ProMacMojave.png">
</p>

<h3 align="center">Mac OS X High Sierra 10.13.6 + NVIDIA GPU</h3>
<p align="center">
<img src="./showcase/HacProKVM10136.png">
</p>

<h3 align="center">Mac OS X High Sierra 10.13.6</h3>
<p align="center">
<img src="./showcase/ProMacHighSierra.png">
<img src="./showcase/HacProKVM10136.png">
</p>

<h3 align="center">Mac OS X Sierra 10.12</h3>
Expand Down
2 changes: 1 addition & 1 deletion docs/_includes/footer_custom.html
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
DarwinKVM Docs Version 2.0.0~prerelease</br>
Copyright &copy; 2024 RoyalGraphX. Distributed by a <a href="https://github.com/royalgraphx/DarwinKVM/blob/main/LICENSE">BSD 3-Clause License</a>.</br>
Last Modified: Sun, 9 Jun 2024 9:38:40 CDT
Last Modified: Tues, 11 Jun 2024 4:38:40 CDT
82 changes: 41 additions & 41 deletions docs/_infocenter/02-GPUSupport/01-AMD.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ Not much to say, this card has native support OOB.

| Card | Initial Support | Latest Support | Notes |
| --- | --- | --- | --- |
| RX 6600 | Monterey (12) | Sonoma (14) | Does not require any kexts to work |
| RX 6600 XT | Monterey (12) | Sonoma (14) | Does not require any kexts to work |
| RX 6650 XT | Monterey (12) | Sonoma (14) | Needs device-id spoof to 0x73ff, <br> NRX negates this though. |
| RX 6600 | Monterey (12) | Sequoia (15) | Does not require any kexts to work |
| RX 6600 XT | Monterey (12) | Sequoia (15) | Does not require any kexts to work |
| RX 6650 XT | Monterey (12) | Sequoia (15) | Needs device-id spoof to 0x73ff, <br> NRX negates this though. |

# Navi 22

Expand All @@ -26,10 +26,10 @@ NootRX is required for these GPUs to function, they have no native macOS support

| Card | Initial Support | Latest Support | Notes |
| --- | --- | --- | --- |
| RX 6700 | Monterey (12) | Sonoma (14) | |
| RX 6700 XT | Monterey (12) | Sonoma (14) | |
| RX 6750 XT | Monterey (12) | Sonoma (14) | |
| RX 6750 GRE | Monterey (12) | Sonoma (14) | |
| RX 6700 | Monterey (12) | Sequoia (15) | |
| RX 6700 XT | Monterey (12) | Sequoia (15) | |
| RX 6750 XT | Monterey (12) | Sequoia (15) | |
| RX 6750 GRE | Monterey (12) | Sequoia (15) | |

# Navi 21

Expand All @@ -38,11 +38,11 @@ NootRX is recommended for these GPUs.

| Card | Initial Support | Latest Support | Notes |
| --- | --- | --- | --- |
| RX 6800 | Big Sur (11) | Sonoma (14) | |
| RX 6800 XT | Big Sur (11) | Sonoma (14) | |
| RX 6900 XT | Big Sur (11) | Sonoma (14) | |
| RX 6900 XTXH | Big Sur (11) | Sonoma (14) | |
| RX 6950 XT | Big Sur (11) | Sonoma (14) | Needs device-id spoof to 0x73bf, <br> NRX negates this though. |
| RX 6800 | Big Sur (11) | Sequoia (15) | |
| RX 6800 XT | Big Sur (11) | Sequoia (15) | |
| RX 6900 XT | Big Sur (11) | Sequoia (15) | |
| RX 6900 XTXH | Big Sur (11) | Sequoia (15) | |
| RX 6950 XT | Big Sur (11) | Sequoia (15) | Needs device-id spoof to 0x73bf, <br> NRX negates this though. |

# Navi 10

Expand All @@ -52,14 +52,14 @@ WhateverGreen is required for these GPUs.

| Card | Initial Support | Latest Support | Notes |
| --- | --- | --- | --- |
| RX 5500 | Catalina (10.15.1) | Sonoma (14) | Add agdpmod=pikera boot flag. |
| RX 5500 XT | Catalina (10.15.1) | Sonoma (14) | Add agdpmod=pikera boot flag. |
| RX 5600 | Catalina (10.15.1) | Sonoma (14) | Add agdpmod=pikera boot flag. |
| RX 5600 XT | Catalina (10.15.1) | Sonoma (14) | Add agdpmod=pikera boot flag. |
| RX 5700 | Catalina (10.15.1) | Sonoma (14) | Add agdpmod=pikera boot flag. |
| RX 5700 XT | Catalina (10.15.1) | Sonoma (14) | Add agdpmod=pikera boot flag. |
| Radeon Pro W5500 | Catalina (10.15.1) | Sonoma (14) | Add agdpmod=pikera boot flag. |
| Radeon Pro W5700 | Catalina (10.15.1) | Sonoma (14) | Add agdpmod=pikera boot flag. |
| RX 5500 | Catalina (10.15.1) | Sequoia (15) | Add agdpmod=pikera boot flag. |
| RX 5500 XT | Catalina (10.15.1) | Sequoia (15) | Add agdpmod=pikera boot flag. |
| RX 5600 | Catalina (10.15.1) | Sequoia (15) | Add agdpmod=pikera boot flag. |
| RX 5600 XT | Catalina (10.15.1) | Sequoia (15) | Add agdpmod=pikera boot flag. |
| RX 5700 | Catalina (10.15.1) | Sequoia (15) | Add agdpmod=pikera boot flag. |
| RX 5700 XT | Catalina (10.15.1) | Sequoia (15) | Add agdpmod=pikera boot flag. |
| Radeon Pro W5500 | Catalina (10.15.1) | Sequoia (15) | Add agdpmod=pikera boot flag. |
| Radeon Pro W5700 | Catalina (10.15.1) | Sequoia (15) | Add agdpmod=pikera boot flag. |

# Vega 20

Expand All @@ -68,7 +68,7 @@ All Vega based dedicated GPUs are natively supported in macOS with Vega 20 GPUs

| Card | Initial Support | Latest Support | Notes |
| --- | --- | --- | --- |
| Radeon VII | Mojave (10.14.5) | Sonoma (14) | |
| Radeon VII | Mojave (10.14.5) | Sequoia (15) | |

# Vega 10

Expand All @@ -77,10 +77,10 @@ Vega 10 GPUs are natively supported in macOS. In this case, they do work on the

| Card | Initial Support | Latest Support | Notes |
| --- | --- | --- | --- |
| Vega 56 | High Sierra (10.13) | Sonoma (14) | |
| Vega 64 | High Sierra (10.13) | Sonoma (14) | |
| Radeon Pro: Vega Frontier Edition | High Sierra (10.13) | Sonoma (14) | |
| Radeon Pro WX 9100 | High Sierra (10.13) | Sonoma (14) | |
| Vega 56 | High Sierra (10.13) | Sequoia (15) | |
| Vega 64 | High Sierra (10.13) | Sequoia (15) | |
| Radeon Pro: Vega Frontier Edition | High Sierra (10.13) | Sequoia (15) | |
| Radeon Pro WX 9100 | High Sierra (10.13) | Sequoia (15) | |

# Polaris 10 and 20

Expand All @@ -89,22 +89,22 @@ For Polaris, basically every model is supported. The only brands you should avoi

| Card | Initial Support | Latest Support | Notes |
| --- | --- | --- | --- |
| RX 460 | Sierra (10.12) | Sonoma (14) | |
| RX 470 | Sierra (10.12) | Sonoma (14) | |
| RX 470D | Sierra (10.12) | Sonoma (14) | |
| RX 480 | Sierra (10.12) | Sonoma (14) | |
| RX 550 | Sierra (10.12) | Sonoma (14) | |
| RX 560 | Sierra (10.12) | Sonoma (14) | |
| RX 560X | Sierra (10.12) | Sonoma (14) | |
| RX 570 | Sierra (10.12) | Sonoma (14) | |
| RX 570X | Sierra (10.12) | Sonoma (14) | |
| RX 580 | Sierra (10.12) | Sonoma (14) | |
| RX 580X | Sierra (10.12) | Sonoma (14) | |
| RX 590 | Sierra (10.12) | Sonoma (14) | |
| Radeon Pro: E9550 | Sierra (10.12) | Sonoma (14) | |
| Radeon Pro: WX 4100 | Sierra (10.12) | Sonoma (14) | |
| Radeon Pro: WX 5100 | Sierra (10.12) | Sonoma (14) | |
| Radeon Pro: WX 7100 | Sierra (10.12) | Sonoma (14) | |
| RX 460 | Sierra (10.12) | Sequoia (15) | |
| RX 470 | Sierra (10.12) | Sequoia (15) | |
| RX 470D | Sierra (10.12) | Sequoia (15) | |
| RX 480 | Sierra (10.12) | Sequoia (15) | |
| RX 550 | Sierra (10.12) | Sequoia (15) | |
| RX 560 | Sierra (10.12) | Sequoia (15) | |
| RX 560X | Sierra (10.12) | Sequoia (15) | |
| RX 570 | Sierra (10.12) | Sequoia (15) | |
| RX 570X | Sierra (10.12) | Sequoia (15) | |
| RX 580 | Sierra (10.12) | Sequoia (15) | |
| RX 580X | Sierra (10.12) | Sequoia (15) | |
| RX 590 | Sierra (10.12) | Sequoia (15) | |
| Radeon Pro: E9550 | Sierra (10.12) | Sequoia (15) | |
| Radeon Pro: WX 4100 | Sierra (10.12) | Sequoia (15) | |
| Radeon Pro: WX 5100 | Sierra (10.12) | Sequoia (15) | |
| Radeon Pro: WX 7100 | Sierra (10.12) | Sequoia (15) | |

## Lexa core based GPUs

Expand Down
5 changes: 3 additions & 2 deletions docs/_infocenter/08-sGPUpt/04-Finish.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ nav_order: 4
</p>

<h2 align="center">For further customization, please refer to the Write Ups!</h2>
<h4 align="center">Enjoy a screenshot of Sonoma with GPU Accel. Don't forget to add the bootflag!</h4>

<a href="https://raw.githubusercontent.com/royalgraphx/DarwinKVM/main/docs/assets/macOSSonomaGPUAccel.png"><img src="../../../assets/macOSSonomaGPUAccel.png" alt=""></a>
<h4 align="center">Enjoy a screenshot of Sequoia.</h4>

<a href="https://raw.githubusercontent.com/royalgraphx/DarwinKVM/main/docs/showcase/HacProKVM15Beta.png"><img src="../../../showcase/HacProKVM15Beta.png" alt=""></a>
32 changes: 32 additions & 0 deletions docs/_installguides/00-Sequoia/00-Introduction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
layout: default
title: Introduction
parent: Sequoia
nav_order: 1
---

<h2 align="center">Sequoia Configuration Guide</h2>
<h3 align="center">Download the following tools required for modifications.</h3>

| Tool | Status | Description |
| ----- | ----- | ----- |
| [Python](https://www.python.org/downloads/) | Required | Needed as a dependency. |
| [ProperTree](https://github.com/corpnewt/ProperTree) | Required | Software that required Python, provides GUI and Tools for config.plist |
| [GenSMBIOS](https://github.com/corpnewt/GenSMBIOS) | Required | Must generate clean SMBIOS information for iServices |
| [DarwinOCPkg](https://github.com/royalgraphx/DarwinOCPkg/blob/main/Docs/Sample.plist) | Required | Need Docs/Sample.plist renamed to config.plist in OC folder. |

<h3 align="center">Be sure you meet the following requirements to begin configuring your OC.</h3>

**1. Valid Python Install**
- Required as a dependency for ProperTree.

**2. ProperTree:**
- This will allow you to use tools like "OC Clean Snapshot" which will scan your OC folder and add the various files to your config.plist automatically and in the correct order.

**3. GenSMBIOS**
- Required to generate a serial number, you cannot log into iServices until you properly generate SMBIOS information and use that on your config.plist

**4. [Sample.plist](https://github.com/royalgraphx/DarwinOCPkg/blob/main/Docs/Sample.plist)**
- Base that you change to config.plist, and begin to modify.

## You can now continue to the next <a href="../01-ACPI">page</a>.
28 changes: 28 additions & 0 deletions docs/_installguides/00-Sequoia/01-ACPI.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
layout: default
title: ACPI
parent: Sequoia
nav_order: 2
---

# ACPI

<a href="https://raw.githubusercontent.com/royalgraphx/DarwinKVM/main/docs/assets/OpenCoreACPIAdd.png"><img src="../../../assets/OpenCoreACPIAdd.png" alt=""></a>

## Add

This section of the config is meant to expose the various ACPI in your OC folder. This along with many of the other sections will be auto-filled by simply going to ``File -> OC Clean Snapshot`` and going to the OC folder in your OpenCore.img mount point.

## Delete

This blocks certain ACPI tables from loading, for us, we can ignore this.

## Patch

This section allows us to dynamically modify parts of the ACPI (DSDT, SSDT, etc.) via OpenCore. For us, our patches are handled by our SSDTs. This is a much cleaner solution as this will allow us to boot Windows and other OSes with OpenCore for dual or multi-boot configurations.

## Quirks

For settings relating to ACPI, leave everything here as default as we have no use for these quirks.

## You can now continue to the next <a href="../02-Booter">page</a>.
31 changes: 31 additions & 0 deletions docs/_installguides/00-Sequoia/02-Booter.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
layout: default
title: Booter
parent: Sequoia
nav_order: 3
---

# Booter

<a href="https://raw.githubusercontent.com/royalgraphx/DarwinKVM/main/docs/assets/OpenCoreBooterQuirks.png"><img src="../../../assets/OpenCoreBooterQuirks.png" alt=""></a>

## MmioWhitelist

This section is allowing spaces to be passthrough to macOS that are generally ignored, useful when paired with DevirtualiseMmio. We can ignore this for our Virtual Machine use cases generally.

## Patch

This contains general patches, for us, we can ignore this.

## Quirks

Don't skip over this section, we'll be changing the following:

| Quirk | Value | Description |
| ----- | ----- | ----- |
| EnableWriteUnprotector | False | Allows modifying some instructions in the firmware runtime, since we support Memory Attribute Tables (MATs) with the emulated Q35 chipset, hence we do not require it. |
| RebuildAppleMemoryMap | True | Rebuilds the UEFI memory map to be macOS-compatible. |
| SetupVirtualMap | False | Links some virtual addresses to the physical RAM to workaround firmware bugs, we do not require it. |
| SyncRuntimePermissions | True | Syncronizes the permissions of the UEFI runtime memory map after it has been rebuilt. |

## You can now continue to the next <a href="../03-DeviceProperties">page</a>.
20 changes: 20 additions & 0 deletions docs/_installguides/00-Sequoia/03-DeviceProperties.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
layout: default
title: Device Properties
parent: Sequoia
nav_order: 4
---

# Device Properties

<a href="https://raw.githubusercontent.com/royalgraphx/DarwinKVM/main/docs/assets/OpenCoreDeviceProperties.png"><img src="../../../assets/OpenCoreDeviceProperties.png" alt=""></a>

## Add

This allows you to add properties to various devices using its PciRoot address. For now, and in most cases we can ignore this. An example would be: overriding an ethernet controller to appear as built-in so that macOS allows iServices to work. On Virtual Machines, we only need to override/add properties to passed-through devices, like GPUs or audio controllers. For our initial setup, we will leave this section empty.

## Delete

This allows you to delete properties of various devices using its PciRoot address. For now, and in most cases we can ignore this.

## You can now continue to the next <a href="../04-Kernel">page</a>.
66 changes: 66 additions & 0 deletions docs/_installguides/00-Sequoia/04-Kernel.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
---
layout: default
title: Kernel
parent: Sequoia
nav_order: 5
---

# Kernel

<a href="https://raw.githubusercontent.com/royalgraphx/DarwinKVM/main/docs/assets/OpenCoreKernel.png"><img src="../../../assets/OpenCoreKernel.png" alt=""></a>

## Add

This section of the config is meant to expose the various Kexts in your OC folder. This along with many of the other sections will be auto-filled by simply going to ``File -> OC Clean Snapshot`` and going to the OC folder in your OpenCore.img mount point.

## Block

Blocks certain Kexts from loading. Not relevant for us.

## Emulate

Needed for spoofing unsupported CPUs like Pentiums and Celerons. We are already spoofing the CPU to CascadeLake in the XML, so we won't need this.

- Cpuid1Mask: Leave this blank
- Cpuid1Data: Leave this blank

## Force

Used for loading Kexts off system volume, only relevant for older operating systems where certain kexts are not present in the cache, i.e IONetworkingFamily in 10.6.

For us, we can ignore.

## Patch

Patches both the kernel and Kexts. I've gone ahead and incorporated CaseySJ's PCI Bus Enumeration fix on KVM.

{: .headsup }
As this is Beta software as of the writing of this guide, you must increase the MaxKernel to cover Sequoia's Darwin Kernel version so this patch properly loads. The example below sets the Max value to an absurd Darwin Kernel 29 value, which will cover Sequoia for sure.

| Key | Type | Value |
| ----- | ----- | ----- |
| MaxKernel | String | 29.99.99 |

## Quirks

Don't skip over this section, we'll be changing the following:

| Quirk | Value | Description |
| ----- | ----- | ----- |
| ForceSecureBootScheme | True | Forces a compatible scheme for Apple Secure Boot Image verification. |
| PanicNoKextDump | True | Disables dumping of the loaded kexts when a kernel panic occurs, greatly helps with reading the panic output and debugging. |
| PowerTimeoutKernelPanic | True | Helps fix kernel panics relating to power timeouts with Apple drivers in macOS Catalina and above, most notably with digital audio. |
| ProvideCurrentCpuInfo | True | Provides current CPU info to the kernel. On KVM and other hypervisors it provides precomputed MSR 35h values to avoid some kernel panics. |

## Scheme

Settings related to legacy booting, but we can change the following.

| Key | Type | Value | Description |
| ----- | ----- | ----- | | ----- |
| CustomKernel | Boolean | False | Loads a custom kernel, usually used for unsupported CPUs. Here we spoof the CPU with QEMU so we do not require this. |
| FuzzyMatch | Boolean | False | Improves Mac OS X 10.6 (Snow Leopard) booting times by utilizing a different algorithm, if you don't care about ancient macOS/Mac OS X versions, disable this. |
| KernelArch | String | x86_64 | Slightly improves boot performance by hardcoding that we're booting the kernel in AMD64 mode instead of x86. |
| KernelCache | String | Auto | Specifies the kernel cache type used, on modern macOS versions, this can be hardcoded to Prelinked to speed up boot times. |

## You can now continue to the next <a href="../05-Misc">page</a>.
Loading

0 comments on commit ab9555c

Please sign in to comment.