-
-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adds foundation for macOS 15, confirmed working.
- Loading branch information
1 parent
a8c73c1
commit ab9555c
Showing
43 changed files
with
542 additions
and
74 deletions.
There are no files selected for viewing
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,3 @@ | ||
DarwinKVM Docs Version 2.0.0~prerelease</br> | ||
Copyright © 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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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>. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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>. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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>. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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>. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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>. |
Oops, something went wrong.