Alpha

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 vmapple machine under Hypervisor.framework, with the device attached as reims-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/ or vm/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.