Flags, paths, and scripts may change without notice. Metal, macOS are trademarks of Apple Inc. Reims vGPU is an independent project and is not affiliated with, sponsored by, or endorsed by Apple Inc.
arm64 guest on Apple Silicon (HVF / vmapple)
Condensed from the driver README. This pathway boots an arm64 macOS 13 Ventura guest on QEMU’s
vmapplemachine under Hypervisor.framework, with the device attached asreims-vgpu-mmio. The working host backend today is Vulkan via MoltenVK; a direct Metal backend is planned but not yet implemented.
1. Build the vendored QEMU
Install macosvm from Homebrew, then build:
scripts/qemu-build/qemu-build.sh --target aarch64 --backend metal
2. Provision the guest
Provision from a UniversalMac IPSW with scripts/vmapple-provision/; the live bundle (disk, aux,
vm.json/ECID) lives under vm/guest/. Fully in-tree bring-up — no OSX-KVM step on this rail.
3. One-time guest config
- Enable Remote Login.
- Run
scripts/vmapple-guest-config/for no-sleep; optional auto-login. - Capture a golden snapshot with
scripts/vmapple-snapshot/orvm/boot-arm64.sh --snapshot.
4. Boot
vm/boot-arm64.sh --testing --device reims-vgpu-mmio # product
vm/boot-arm64.sh --testing --device apple-gfx-mmio # Apple ParavirtualizedGraphics A/B
scripts/screenshot-when-macos-host/screenshot-when-macos-host.sh /tmp/screen.png
Optional performance ceiling: the same guest under native Virtualization.framework via
macosvm --gui.
As on the x86 rail, every boot clones the golden snapshot and discards the clone on exit. Use
--testing for time-bounded runs and --interactive for open-ended GUI sessions. Wedged guests:
scripts/vmapple-shutdown, otherwise QMP quit + kill.