Hi,
I have successfully set up a virtual machine with macOS 12.1 running in qemu.
I have heard of Intel's GVT-g and wanted to give it a shot. But now a panic thrown by WhateverGreen
proved to be a roadblock.
My attempt was to share the real gpu with the guest, no full passthrough.
apple crash report output:
panic(cpu 3 caller 0xffffff800c1f93ff): WhateverGreen igfx_pm: @ ForceWake timeout for domain (unk), expected 0x8
The offending line of code:
https://github.com/acidanthera/WhateverGreen/blob/master/WhateverGreen/kern_igfx_pm.cpp#L304
Full Panic report:
apple_panic.txt
Config plist of OC
config.plist.txt
link to full efi folder zip
https://drive.google.com/file/d/1nzCz11wrsMnElBFHCOeYKeFHo47eyC1U/view?usp=sharing
(26 MB)
My idea was to temporarily disable the ForceWake Workaround for Coffeelake CPUs / iGPUs
since the callstack in the panic report mentions "SafeWake" somewhere, and there is no option
to disable the ForceWake workaround to test.
https://github.com/acidanthera/WhateverGreen/blob/851f4b9110c971208b765a70bc5ff119340755ca/WhateverGreen/kern_igfx.cpp#L1031
I mean testing with 0 at the mentioned line, instead of 1.
Some more supplemental info about my hardware and VM... if necessary.
The host Hardware (lspci): Acer Aspire A515-52-5981, with Manjaro Linux 5.10.89
00:00.0 Host bridge: Intel Corporation Coffee Lake HOST and DRAM Controller (rev 0b)
00:02.0 VGA compatible controller: Intel Corporation WhiskeyLake-U GT2 [UHD Graphics 620]
00:08.0 System peripheral: Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th/8th Gen Core Processor Gaussian Mixture Model
00:12.0 Signal processing controller: Intel Corporation Cannon Point-LP Thermal Controller (rev 30)
00:14.0 USB controller: Intel Corporation Cannon Point-LP USB 3.1 xHCI Controller (rev 30)
00:14.2 RAM memory: Intel Corporation Cannon Point-LP Shared SRAM (rev 30)
00:14.3 Network controller: Intel Corporation Cannon Point-LP CNVi [Wireless-AC] (rev 30)
00:15.0 Serial bus controller [0c80]: Intel Corporation Cannon Point-LP Serial IO I2C Controller #0 (rev 30)
00:15.1 Serial bus controller [0c80]: Intel Corporation Cannon Point-LP Serial IO I2C Controller #1 (rev 30)
00:16.0 Communication controller: Intel Corporation Cannon Point-LP MEI Controller #1 (rev 30)
00:17.0 SATA controller: Intel Corporation Cannon Point-LP SATA Controller [AHCI Mode] (rev 30)
00:1d.0 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root Port #9 (rev f0)
00:1d.4 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root Port #13 (rev f0)
00:1f.0 ISA bridge: Intel Corporation Cannon Point-LP LPC Controller (rev 30)
00:1f.3 Audio device: Intel Corporation Cannon Point-LP High Definition Audio Controller (rev 30)
00:1f.4 SMBus: Intel Corporation Cannon Point-LP SMBus Controller (rev 30)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Cannon Point-LP SPI Controller (rev 30)
01:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTL8411B PCI Express Card Reader (rev 01)
01:00.1 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 12)
02:00.0 Non-Volatile memory controller: Sandisk Corp WD Blue SN500 / PC SN520 NVMe SSD (rev 01)
qemu launch script (adapted from docker-osx)
#!/bin/bash
exec qemu-system-x86_64 -m 4096 \
-cpu max,vendor=GenuineIntel,+invtsc,vmware-cpuid-freq=on,+ssse3,+sse4.2,+popcnt,+avx,+aes,+xsave,+xsaveopt,check \
-machine q35,accel=kvm:tcg \
-smp 4,cores=1 \
-device vfio-pci,sysfsdev=/sys/bus/mdev/devices/9085644c-8cf8-4df0-900e-0c1362deddea,bus=pcie.0,addr=0x2,driver=vfio-pci-nohotplug,display=on,ramfb=on \
-usb \
-device usb-kbd \
-device usb-tablet \
-device isa-applesmc,osk=ourhardworkbythesewordsguardedpleasedontsteal\(c\)AppleComputerInc \
-drive if=pflash,format=raw,readonly=on,file=/usr/share/edk2-ovmf/x64/OVMF_CODE.fd \
-drive if=pflash,format=raw,file=/home/xxx/Projekte/gpu_passthru/macOS_VARS.fd \
-smbios type=2 \
-audiodev pa,server=unix:/run/user/1000/pulse/native,id=hda \
-device ich9-intel-hda \
-device hda-duplex,audiodev=hda \
-device ich9-ahci,id=sata,bus=pcie.0,addr=0x7 \
-drive id=OpenCoreBoot,if=none,snapshot=on,format=qcow2,file=/mnt/CA8690DA8690C7F9/VM/Monterey/OpenCore.qcow2 \
-device ide-hd,bus=sata.2,drive=OpenCoreBoot \
-drive id=MacHDD,if=none,file=/mnt/CA8690DA8690C7F9/VM/Monterey/macos_hdd_monterey.img,format=qcow2 \
-device ide-hd,bus=sata.3,drive=MacHDD \
-netdev user,id=net0 \
-device vmxnet3,netdev=net0,id=net0,mac=52:54:00:09:49:17,bus=pcie.0,addr=0xA \
-monitor stdio \
-boot menu=on \
-display gtk,gl=on \
-vga none
qemu error messages:
QEMU 6.2.0 monitor - type 'help' for more information
(qemu) qemu-system-x86_64: -device vfio-pci,sysfsdev=/sys/bus/mdev/devices/9085644c-8cf8-4df0-900e-0c1362deddea,bus=pcie.0,addr=0x2,driver=vfio-pci-nohotplug,display=on,ramfb=on: IGD device 9085644c-8cf8-4df0-900e-0c1362deddea cannot support legacy mode due to existing devices at address 1f.0
qemu-system-x86_64: vfio_pci_write_config(9085644c-8cf8-4df0-900e-0c1362deddea, 0x4, 0x100407, 0x4) failed: Ung?ltige Adresse
qemu-system-x86_64: vfio_pci_write_config(9085644c-8cf8-4df0-900e-0c1362deddea, 0x4, 0x100407, 0x4) failed: Ung?ltige Adresse
qemu-system-x86_64: vfio_pci_write_config(9085644c-8cf8-4df0-900e-0c1362deddea, 0x4, 0x100407, 0x4) failed: Ung?ltige Adresse
Hi,
I have successfully set up a virtual machine with macOS 12.1 running in qemu.
I have heard of Intel's GVT-g and wanted to give it a shot. But now a panic thrown by WhateverGreen
proved to be a roadblock.
My attempt was to share the real gpu with the guest, no full passthrough.
apple crash report output:
The offending line of code:
https://github.com/acidanthera/WhateverGreen/blob/master/WhateverGreen/kern_igfx_pm.cpp#L304
Full Panic report:
apple_panic.txt
Config plist of OC
config.plist.txt
link to full efi folder zip
https://drive.google.com/file/d/1nzCz11wrsMnElBFHCOeYKeFHo47eyC1U/view?usp=sharing
(26 MB)
My idea was to temporarily disable the ForceWake Workaround for Coffeelake CPUs / iGPUs
since the callstack in the panic report mentions "SafeWake" somewhere, and there is no option
to disable the ForceWake workaround to test.
https://github.com/acidanthera/WhateverGreen/blob/851f4b9110c971208b765a70bc5ff119340755ca/WhateverGreen/kern_igfx.cpp#L1031
I mean testing with 0 at the mentioned line, instead of 1.
Some more supplemental info about my hardware and VM... if necessary.
The host Hardware (lspci): Acer Aspire A515-52-5981, with Manjaro Linux 5.10.89
qemu launch script (adapted from docker-osx)
qemu error messages: