/DarwinKVM

An advanced guide to run Mac OS / OS X / macOS on QEMU/KVM with libvirtd/Virt-Manager. Includes various write-ups for deep customization.

Primary LanguageShellBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

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 Sequoia 15.0 Beta 1

macOS Sonoma 14.5

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

macOS Monterey 12.7.5

macOS Big Sur 11.7.10

macOS Big Sur 11.0.0 Developer Preview 1 (20A4299v)

Mac OS X 10.16 (AppleInternal GoldenGateSpike 20A2314a)

Mac OS X Catalina 10.15.7

Mac OS X Mojave 10.14.4

Mac OS X High Sierra 10.13.6

Mac OS X Sierra 10.12.5 (AppleInternal Phoenix 16F5049f)

Mac OS X Sierra 10.12

Mac OS X El Capitan 10.11.6

Mac OS X Yosemite 10.10

Mac OS X Mavericks 10.9.5

Mac OS X Mountain Lion 10.8.5

Mac OS X Lion 10.7.5

Mac OS X Snow Leopard 10.6.8 on x86_64

Mac OS X Server Snow Leopard 10.6.8 on x86_64

Mac OS X Snow Leopard Developer Preview 10A190 (10.6) on PowerPC

Mac OS X Leopard 10.5.8 on x86_64

Mac OS X Server Leopard 10.5 on x86_64

Mac OS X Leopard 10.5.4 on PowerPC

Mac OS X Tiger 10.4.11 on x86_64

Mac OS X Server Tiger 10.4.11 on x86_64

Mac OS X Tiger 10.4.7 on x86_64

Mac OS X Tiger 10.4.1 (8B1025, ADP2,1) on x86_64

Mac OS X Tiger 10.4.11 on PowerPC

Mac OS X Panther 10.3

Mac OS X Jaguar 10.2

Mac OS X Puma 10.1

Mac OS X Cheetah 10.0.3


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
/checkcoverage - Allows to get a serial numbers Coverage status
/pci - Find PCI devices by vendor ID and device ID.
/usb - Find USB devices by vendor ID and device ID.
/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 --incremental 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 --incremental

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! ꩓