Skip to content

Commit

Permalink
Tiger, Leopard on x86_64 Guides Completed, Sierra Phoenix AppleIntern…
Browse files Browse the repository at this point in the history
…al, Tiger 10.4.1 DTK Gallery Image.
  • Loading branch information
royalgraphx committed Jun 26, 2024
1 parent 5198b00 commit afcd026
Show file tree
Hide file tree
Showing 80 changed files with 1,249 additions and 125 deletions.
Binary file added Assets/GitHub_Logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Assets/GitHub_Logo_White.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
32 changes: 32 additions & 0 deletions Assets/Template-InstallGuide/00-Introduction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
layout: default
title: Introduction
parent: -----
nav_order: 1
---

<h2 align="center">----- 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 Assets/Template-InstallGuide/01-ACPI.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
layout: default
title: ACPI
parent: -----
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 Assets/Template-InstallGuide/02-Booter.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
layout: default
title: Booter
parent: -----
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 |
| ----- | ----- | -----. |
| ----- | ----- | -----. |
| ----- | ----- | -----. |
| ----- | ----- | -----. |
| ----- | ----- | -----. |

## You can now continue to the next <a href="../03-DeviceProperties">page</a>.
20 changes: 20 additions & 0 deletions Assets/Template-InstallGuide/03-DeviceProperties.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
layout: default
title: Device Properties
parent: -----
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>.
61 changes: 61 additions & 0 deletions Assets/Template-InstallGuide/04-Kernel.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
---
layout: default
title: Kernel
parent: -----
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.

| Key | Type | Value |
| Cpuid1Data | Data | <> |
| Cpuid1Mask | Data | <> |
| DummyPowerManagement | Boolean | False |

## 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 for both the Kernel and Kexts. I've gone ahead and incorporated CaseySJ's PCI Bus Enumeration fix on KVM.

## Quirks

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

| Quirk | Value | Description |
| ----- | ----- | ----- |
| ----- | ----- | -----. |
| ----- | ----- | -----. |
| ----- | ----- | -----. |
| ----- | ----- | -----. |

## 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>.
62 changes: 62 additions & 0 deletions Assets/Template-InstallGuide/05-Misc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
---
layout: default
title: Misc
parent: -----
nav_order: 6
---

# Misc

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

## BlessOverride

To be filled with plist string entries containing absolute UEFI paths to customised bootloaders such as \EFI\debian\grubx64.efi for the Debian bootloader. As our VM is strictly macOS only, we do nothing here, nor will we ever.

## Boot

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

| Key | Type | Value |
| ----- | ----- | ----- |
| PollAppleHotKeys | Boolean | True |

## Debug

Helpful for debugging OpenCore boot issues.
Don't skip over this section, we'll be changing the following:

| Key | Type | Value |
| ----- | ----- | ----- |
| AppleDebug | Boolean | True |
| ApplePanic | Boolean | True |
| DisableWatchDog | Boolean | True |
| Target | Number | 67 |

## Entries

Used for specifying irregular boot paths that can't be found naturally with OpenCore. We do nothing here, nor will we ever.

## Security

Security is pretty self-explanatory, <b>do not skip</b>. We'll be changing the following:

{: .warning }
Optional is a word, you must type it out. It IS case-sensitive.

| Key | Type | Value |
| ----- | ----- | ----- |
| AllowSetDefault | Boolean | True |
| ExposeSensitiveData | Number | 15 |
| ScanPolicy | Number | 0 |
| Vault | String | <span style="color:red">Optional</span> |

## Serial

Used for serial debugging (Leave everything as default).

## Tools

This section of the config is meant to expose the various Tools 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.

## You can now continue to the next <a href="../06-NVRAM">page</a>.
61 changes: 61 additions & 0 deletions Assets/Template-InstallGuide/06-NVRAM.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
---
layout: default
title: NVRAM
parent: -----
nav_order: 7
---

# NVRAM

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

## Add

{: .highlight }
7C436110-AB2A-4BBB-A880-FE41995C9F82

We can use this dictionary to modify boot-args. Use the chart below for various arguments that possibly be useful later in the future. For the Recovery and Installation, before the GPU passthrough, you don't need to modify this section.

### General Boot-Args

| boot-arg | Description |
| ----- | ----- |
| -v | This enables verbose mode, which shows all the behind-the-scenes text that scrolls by as you're booting instead of the Apple logo and progress bar. It's invaluable to any Hackintosher, as it gives you an inside look at the boot process, and can help you identify issues, problem kexts, etc. |
| keepsyms=1 | This is a companion setting to debug=0x100 that tells the OS to also print the symbols on a kernel panic. That can give some more helpful insight as to what's causing the panic itself. |
| debug=0x100 | This disables macOS's watchdog which helps prevents a reboot on a kernel panic. That way you can hopefully glean some useful info and follow the breadcrumbs to get past the issues. |

### GPU Related Boot-Args

{: .headsup }
The following boot-args are WhateverGreen boot args! They require the kext to be in use.

| boot-arg | Description |
| ----- | ----- |
| agdpmod=vit9696 | Disables board-id check, may be needed for when screen turns black after finishing booting. |
| agdpmod=pikera | Used for disabling board ID checks on some Navi GPUs (RX 5000 & 6000 series). Don't use if you use NootRX. |
| radpg=15 | Fixes initialization for HD 7730/7750/7770/R7 250/R7 250X |
| raddvi | Fixes DVI connector-type for 290X, 370, etc |
| radvesa | Forces GPU into VESA mode(no GPU acceleration), useful for troubleshooting. |
| igfxvesa | Forces Intel iGPU into VESA mode |

{: .headsup }
The following boot-args are Apple boot flags and will work without WEG.

| boot-arg | Description |
| ----- | ----- |
| nv_disable=1 | Forces GPU into VESA mode. |
| amd_no_dgpu_accel | Forces GPU into VESA mode. |

## Delete

Forcibly rewrites NVRAM variables, do note that Add will not overwrite values already present in NVRAM so values like boot-args should be left alone.

## LegacyOverwrite

For us, we can leave it to the default value of ``False``.

## LegacySchema

Used for assigning NVRAM variables, used with OpenVariableRuntimeDxe.efi. Only needed for systems without native NVRAM. The values under this can be deleted safely.

## You can now continue to the next <a href="../07-PlatformInfo">page</a>.
69 changes: 69 additions & 0 deletions Assets/Template-InstallGuide/07-PlatformInfo.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
---
layout: default
title: PlatformInfo
parent: -----
nav_order: 8
---

# Platform Info

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

## Automatic

Leave as default.

## CustomMemory

Can be ignored for now. Documentation in progress.

## Generic

At this point in the guide, you'll need to open a terminal and an instance of [GenSMBIOS](https://github.com/corpnewt/GenSMBIOS). Select option 1 for downloading MacSerial and Option 3 for generating SMBIOS. For this Cascade Lake example, we'll choose the MacPro7,1 SMBIOS.

This will give us output similar to the following:

```
#######################################################
# MacPro#,1 SMBIOS Info #
#######################################################
Type: MacPro#,1
Serial: 000000000000
Board Serial: 000000000000000000
SmUUID: 00000000-0000-0000-0000-000000000000
Apple ROM: 000000000000
Press [enter] to return...
```

{: .headsup }
Make sure that you are using an invalid serial number! When visiting the [Check Device Coverage](https://checkcoverage.apple.com/) page on Apple's website, your serial number should not report an exising Mac, and you should get an error message such as "Please enter a valid serial number".

To fill out the information on your config.plist, refer to the following chart to convert across.

| GenSMBIOS | config.plist |
| ----- | ----- |
| Board Serial | MLB |
| Apple ROM | ROM |
| Type | SystemProductName |
| Serial | SystemSerialNumber |
| SmUUID | SystemUUID |

## UpdateDataHub

Update Data Hub fields. We can leave this default.

## UpdateSMBIOS

Updates SMBIOS fields. We can leave this default.

## UpdateSMBIOSMode

Replace the tables with newly allocated EfiReservedMemoryType. We can leave this default.

## UseRawUuidEncoding

Use raw encoding for SMBIOS UUIDs. We can leave this default.

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

0 comments on commit afcd026

Please sign in to comment.