To get started, we'll use the default package manager dnf to install varaious packages/software including but not limited to Virt-Manager and QEMU itself.

Package Description
ovmf UEFI firmware for virtual machines. Without this package, you cannot use UEFI on QEMU.
libvirt Toolkit to interact with virtualization capabilities of Linux.
qemu-utils Additional utilities for QEMU.
dosfstools Utilities for managing FAT/32 file systems. This is used for formatting our images.
virt-manager GUI-based virtual machine manager for QEMU and remote VMMs.
bridge-utils Tools for configuring network bridges.
qemu-system-x86 QEMU system emulator and virtualizer, specifically for x86 architecture.
libvirt-daemon-config-network Libvirt configuration for networking features.

You can install all the necessary packages using dnf by running the following command:

sudo dnf install qemu-system-x86 libvirt libvirt-daemon-config-network bridge-utils virt-manager dosfstools    
For those interested in running macOS Mojave (10.14) or older

If you're interested in working with OS X / macOS releases prior to macOS Mojave (10.14), You will need to install the following package to use DarwinUDK's fork of OVMF in Virt-Manager and QEMU CLI. This build of OVMF was modified by the DarwinKVM team with -D LINUX_LOADER at compile time. Acidanthera's AUDK source code implements a new PE/COFF loader which can prevent the loading/execution of HfsPlusLegacy.efi which is required to create the MacPro5,1 configuration that DarwinKVM provides. This issue is not present in non-Acidanthera UEFI firmware, but we do use it here as the fork is based on AUDK, so this is a required step for the most vanilla configuration of Legacy OS X / macOS when it comes to properly loading via QEMU.

The flag sets the image protection policy. If a bit is set, the image will be protected by DxeCore if it is aligned. The code section becomes read-only, and the data section becomes non-executable (or non-bootable), leading to issues when trying to boot older OS X / macOS. The Policy required to allow legacy, non-aligned, non-signed Apple images such as HfsPlusLegacy.efi can be set in the DSC under Ovmf, but DarwinUDK simply compiles with the flag and provides you a precompiled package to install for ease of use on any Linux distribution.

To get started, cd to the extras folder at the root of DarwinKVM, and under the appropriate distribution folder to find the required package file under the DUDK-Firmware submodule.

cd extras/DUDK-Firmware/Fedora

You'll now be able to use rpm to install the DUDK-Firmware package.

sudo rpm -i DUDK-Firmware-1.0.0-2.fedora.rpm

You'll now be able to successfully import LegacyDarwinKVM.xml and use DUDK-Firmware in Virt-Manager! For those using CLI QEMU, you can find the firmware file at /usr/share/DarwinUDK/DUDK_CODE.fd and NVRAM at /usr/share/DarwinUDK/DUDK_VARS.fd

If you use any other package manager on Fedora Workstation, or similarly based distributions, and would like to contribute to this page, please request a PR review for accelerated addition. It's understandable that some people may already be on an existing installation for a while now, and use entirely different package managers.




DarwinKVM Logo
DarwinKVM Docs Version 3.0.0~prerelease
Copyright © 2023, 2024, 2025 RoyalGraphX
Copyright © 2025 Carnations Botanica
Distributed by a BSD 3-Clause License
Last Modified: Thu, 9 Apr 2025 15:45:02 CDT
Carnations Logo