Skip to content

royalgraphx/DarwinKVM

Repository files navigation

An Advanced Guide for running macOS within QEMU/KVM

EFI guides, GPU Passthrough guides, Display Overrides for incompatible monitors, Custom Memory Mapping, Custom USB Mapping, Fake Core Count for incompatible CPU Topology, Host CPU Overclocking, Host Network Bridge for VM visibility, AMD GPU Zero-RPM Disable and custom sPPT Fan Curve, as well as many more advanced tutorials ready to further perfect your macOS experience!

This is the git repo, follow the guide here!

PATIENCE! This is NOT a Pre-Built EFI! You are responsible for creating it!

macOS Sonoma 14.4 Beta

macOS Sonoma 14.3

macOS Sonoma 14.2.1 (Credits: @heliokroger)

macOS Sonoma 14.1

macOS Sonoma 14.1 (Credits: @Haxi0)

macOS Sonoma 14.0

macOS Ventura 13.5.1

macOS Ventura 13.5 + NVIDIA GPU (Credits: @Zormeister)

macOS Ventura 13.5 (Credits: @Rowlul)

macOS Ventura 13.4


Need Help?


If you run into any issues, you can join the DarwinKVM Discord server! Feel free to ping the @Helpers 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:

/genplatinfo - Generates PlatformInfo for a given Mac model
/pci - Find PCI devices by vendor ID and device ID.
/usb - Find USB devices by vendor ID and device ID.
/encodehex - Converts device ID to little-endian hex value.
/decodehex - Decodes little-endian hex values into 0x0000 Format.
/decodebase64 - Decodes Base64 to text.
/link - Quickly link a URL for someone.
/time - Displays the time of a given user.

Contributing to the Documentation

If you have any changes or improvements you'd like to contribute for review and merge, to update misinformation or outdated information, as well as maybe even adding whole new pages, you can follow the general outline below to get a local copy of the documentation running.

Instructions written for macOS hosts but is adoptable to other OS's.

  1. Install/Update brew

  2. Install/Update ruby

    • Once brew is installed, you can run brew install ruby in your terminal.
    • If using ZSH (any recent versions of macOS) Be sure to read the post install text as it suggest you should run the following command to export to PATH:
      • echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.zshrc
      • Restart Terminal for changes to apply.
  3. Install/Update gem and bundler

    • Run gem update in your terminal window.
    • Run gem install bundler in your terminal window.
  4. Fork DarwinKVM, git clone your fork, navigate to Docs directory.

    • git clone --recursive git@github.com:yourusername/DarwinKVM.git
    • cd DarwinKVM/docs
  5. Installing Docs dependencies, and running the server.

    • Run bundle install in your terminal window.
    • Running bundle exec jekyll serve will build and run a live copy of the DarwinKVM docs on port 4000 by default.
    • To change the port, you can specify the IP address and port to run on, allowing local mobile devices to also connect and preview DKVM Docs.
      • bundle exec jekyll serve --host YOUR_IP_ADDRESS --port PORT

You'll now be able to see the changes you make update live so you can work quickly and preview the final look of your Markdown files easily. Once you are done making your changes you can then proceed to submit a Pull Request for review, and eventual merge to Main.

A big thanks to all contributors and future contributors! ꩓