macOS on Proxmox w/ Radeon RX 580 Dooku

So having a dedicated macOS machine to do Time Machine, iMazing, Security Spy, PhotoSync and Printopia sucks so I’ve been using ESXi with macOS running on it. Having grown tired of VMware’s HCL I decided to try Proxmox. Luckily I got to stand on the shoulders of giants to get me started. First Nicholas Sherlock’s great guide here. Unfortunately I got stuck with a GPU that would work unless I plugged in a monitor AFTER the machine had booted. I wanted the GPU to do H.264/H.265 work for SecuritySpy. This sucked, as for a server, rebooting would require manual intervention. Nick proposed it might be the AMD reset bug (thanks gnif). Oddly that made it worse. Hours of dicking-around finally found TomFaulkner’s notes and The Passthrough Post’s post. Nick also had this in his posts, but I didn’t find that until later. The answer for me looks like:

video=efifb:off

After that, as Nick pointed out a headless HDMI display dongle. Amazon delivered overnight and I am up and running. Complete grub.conf:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Proxmox Virtual Environment"
GRUB_CMDLINE_LINUX_DEFAULT="vfio_pci.ids=1002:67df,1002:aaf0 video=efifb:off console=tty0 console=ttyS0,115200n8 quiet intel_iommu=on iommu=pt default_hugepagesz=1G hugepagesz=1G hugepages=128"
GRUB_CMDLINE_LINUX=""

# Disable os-prober, it might add menu entries for each guest
#GRUB_DISABLE_OS_PROBER=true

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Disable generation of recovery mode menu entries
GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

Complete qemu config flie:

agent: 1
args: -device isa-applesmc,osk="APPLESTUFF" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -cpu host,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc -smp 32,sockets=2,cores=8,threads=2
balloon: 0
bios: ovmf
boot: order=virtio0;net0
cores: 16
cpu: Penryn
efidisk0: local-lvm:vm-100-disk-1,size=4M
hostpci0: 0000:18:00,pcie=1,romfile=vbios.bin
hostpci1: 0000:00:11,pcie=1
hostpci2: 0000:00:14,pcie=1
hugepages: 1024
machine: q35
memory: 131072
name: macOS-Big-Sur
net0: vmxnet3=BA:AD:DE:AD:BE:EF,bridge=vmbr1
numa: 1
onboot: 1
ostype: other
parent: GPUworkingNoContentCaching
scsihw: virtio-scsi-pci
smbios1: uuid=
sockets: 2
vga: vmware
virtio0: local-lvm:vm-100-disk-0,cache=writeback,size=128G
vmgenid: 

Still have some more work to do, but at least I can reboot!

Leave a Reply

Your email address will not be published. Required fields are marked *