Skip to content

Commit

Permalink
Update README.md, About, Requirements, and Setting Expectations pages.
Browse files Browse the repository at this point in the history
  • Loading branch information
royalgraphx committed Sep 18, 2024
1 parent 8820d3c commit c4283d9
Show file tree
Hide file tree
Showing 6 changed files with 16 additions and 8 deletions.
6 changes: 2 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -231,14 +231,12 @@
<p align="center">
<img width="50%" height="50%" src="./Assets/discord-logo-white.png">
</p>
<h4 align="center">If you run into any issues, you can join the <a href="https://discord.gg/ryQFC8Vk7b">DarwinKVM</a> Discord server! Feel free to ping the <span style="color: #d48dff;">@Helpers</span> role within a help channel for support. <a href="https://github.com/royalgraphx/Hexley">Hexley</a> provides our discord users with a multitude of commands to assist anyone who may need specific actions performed. Such features that Hexley offers aim to speed up the process with command such as:</h4>
<h4 align="center">If you run into any issues, you can join the <a href="https://discord.gg/ryQFC8Vk7b">DarwinKVM</a> Discord server! Feel free to ping the <span style="color: #d48dff;">@Helpers</span> role within a help channel for support. Hexley provides our discord users with a multitude of commands to assist anyone who may need specific actions performed. Such features that Hexley offers aim to speed up the process with command such as:</h4>

<h6 align="center">/genplatinfo - Generates PlatformInfo for a given Mac model</h6>
<h6 align="center">/checkcoverage - Allows to get a serial numbers Coverage status</h6>
<h6 align="center">/pci - Find PCI devices by vendor ID and device ID.</h6>
<h6 align="center">/usb - Find USB devices by vendor ID and device ID.</h6>
<h6 align="center">/encodehex - Converts device ID to little-endian hex value.</h6>
<h6 align="center">/decodehex - Decodes little-endian hex values into 0x0000 Format.</h6>
<h6 align="center">/decodebase64 - Decodes Base64 to text.</h6>
<h6 align="center">/link - Quickly link a URL for someone.</h6>
<h6 align="center">/time - Displays the time of a given user.</h6>

Expand Down
2 changes: 1 addition & 1 deletion docs/_sass/color_schemes/custom.scss
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
//@import "./color_schemes/dark";

$link-color: $hexley-red;
$link-color: $blueish-300;

#site-nav {
/* Other CSS properties */
Expand Down
2 changes: 1 addition & 1 deletion docs/_sass/custom/setup.scss
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ $reddish-300: #eb2a2a;
$blueish-000: #253746;
$blueish-100: #1E2A37;
$blueish-200: #18222C;
$blueish-300: #7cbae3;
$blueish-300: #72c7ff;
$different-blue-100: #6DA6D2;
$different-blue-200: #519CCB;
$different-blue-300: #368AC2;
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/01-WelcomeArea/01-About.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ nav_order: 2

<h2 align="center">What is this for?</h2>

<h5 align="center">This repository and its contents are to be an advanced guide for anyone looking to create powerful macOS Virtual Machines that can handle being daily driven, used for powerful applications, and those who want to get the maximum possible performance out of their systems for hosting a macOS guest. The guide covers configuring a variety of QEMU machines for (one day) the entire Mac OS X / macOS version list but it's main focus will always be supporting the latest macOS release until its eventual x86_64 death, whenever that is.</h5>
<h5 align="center">This repository and its contents are to be an advanced guide for anyone looking to create powerful macOS Virtual Machines that can handle being daily driven, used for powerful applications, and those who want to get the maximum possible performance out of their systems for hosting a macOS guest. The guide covers configuring a variety of QEMU machines for the entire Mac OS X / macOS Major Release versions list but it's main focus will always be supporting the latest macOS release until its eventual x86_64 death, whenever that is.</h5>

<h2 align="center">Who is this for?</h2>

Expand Down
2 changes: 1 addition & 1 deletion docs/docs/01-WelcomeArea/02-Requirements.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ nav_order: 3
- <span style="color: #ffab52;">This is a must, don't bother if you're not getting GPU Acceleration, it's not worth it.</span>
- Eventually we will add support for those without supported GPU's, but highly experimental.
- [AMD GPU Support Table](../../infocenter/02-GPUSupport/01-AMD/) - Recommended for all, runs latest macOS and older OS X releases.
- [NVIDIA GPU Support Table](../../infocenter/02-GPUSupport/01-AMD/) - For Legacy OS X. <span style="color: #ffab52;">Highest Supported Version: High Sierra</span>
- [NVIDIA GPU Support Table](../../infocenter/02-GPUSupport/02-NVIDIA/) - For Legacy OS X. <span style="color: #ffab52;">Highest Supported Version: High Sierra</span>
- [Intel iGPU Support Table](../../infocenter/02-GPUSupport/03-Intel) - For Intel Laptops/Desktops with GVT-d/IOMMU/MUX Support

2. **A Host running a Linux Distribution.**
Expand Down
10 changes: 10 additions & 0 deletions docs/docs/01-WelcomeArea/03-SettingExpectations.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,16 @@ nav_order: 4
<h5 align="center">The major distinction is that this is not something you can use right away, as you must read a fair amount first. Virt-Manager, QEMU, GPU Passthrough, OpenCore, Kexts, config.plist, OVMF... these things already exist. They're all either software/files, guides, or concepts of Linux/macOS. We're putting all of these things together.</h5>
<br>

<h2 align="center">What are the differences between QEMU and other programs such as VirtualBox, VMWare, and Hyper-V?</h2>
<h5 align="center">If you are on a Windows host, you at the moment like others on other operating systems, have a choice when it comes to hosting virtual machines. The program you decide to use, has a Type. The idea of a Type 1 or Type 2 hypervisor, is simply the level of granular control you have over the guest. There is much debate on what defines a Type 1 hypervisor. Regardless of your opinion on what makes a Type 1 or 2 hypervisor specifically that, we are all unanimously in agreement that VirtualBox and VMWare Player/Workstation, are Type 2 hypervisors.</h5>

<h5 align="center">QEMU is a Type 1 hypervisor program. What this means for programs that are Type 2, is that you lack a very crucial feature: PCI Object/Device Passthrough. When you're creating virtual machines, we want to keep in mind that they are full machines. They have their own motherboard, their own CPU, their own RAM, their own disk drives, their own ethernet controller, their own USB Controllers. When you start a Machine in a program like VirtualBox, you are given a Machine that has its set of hardware. The most notable here is the Virtual Display. This is what you're seeing in the Window. A fake emulated display/screen, is connected to an emulated graphics card or device.</h5>

<h5 align="center">This is what is limiting everyone on Type 2. macOS, has never had kexts for your emulated graphics card. Programs like VMWare Workstation, have VMWare Tools that actually have drivers/kexts written by VMWare for OS X / macOS that adds support for their emulated graphics card, the "VMWare SVGA-II". This allows VMWare to provide what is called a "Basic Framebuffer". This is a step above No Acceleration. Unfortunately, that is as far as that can go, because you still lack Metal API support.</h5>

<h5 align="center">So here's where Linux and QEMU step in. On Linux, every device you have can potentially be PCI/PCIe based. Which means it appears in your systems IOMMU table. Devices in this table, can be given to Virtual Machines! This is thanks to many Linux Kernel Modules such as VFIO. This opens the world for us to create some incredibly powerful virtual machines, by giving them physical hardware! We can now take an emulated Virtual Machine, accelerate it with KVM (Kernel-Based Virtual Machine) so that it becomes Virtualization, and then we give it real physical devices! The most obvious is a real AMD dGPU. This immediately gives your Virtual Machine real full acceleration, it's genuinely a speck of dust away from native. Other non typical devices you wouldn't expect are USB Controllers! Yes, QEMU and many other programs have emulated USB Controllers, but they are unfortunately not USB Compliant, and lack the ability to transfer complex data, such as that from the Lighting to USB-C/USB cable from an iPhone for syncing!</h5>
<br>

<h2 align="center">Do I have to read everything then?</h2>
<h5 align="center">The Docs are broken up into nice sections for easily going through the process. In the next page you'll learn more about how to use the information here! It is not possible to say that you'll need to read all of them, as it will heavily depend on your harware but for the most part, the standardization of DarwinKVM allows for minimal post-setup.</h5>
<br>
Expand Down

0 comments on commit c4283d9

Please sign in to comment.