Могу ли я использовать HAXM(или что-то еще) для ускорения OVMF и ОС в QEMU?
Это мой первый вопрос, поэтому, пожалуйста, не будьте слишком строгими.
Раньше я разрабатывал драйверы DXE на edk2 (OvmfPkg) с QEMU и OVMF. Все работало на Ubuntu с KVM.
Но я установил haxm v7.6.1 на свой mac a1707 с процессором 7700H. Я проверил "kextstat | grep intel ", найдено соответствие kext:
241 0 0xffffff7f852c6000 0x28000 0x28000
com.intel.kext.intelhaxm (7.6.1) 3CCC6557-CCBD-37CA-8AC4-271686ADAD2F <8 6 5 3 1>
Скачал edk2 и собрал (OvmfPkg, получил образ OVMF.fd). Я использовал brew для установки QEMU версии 5.0.0_2. Я использовал этот сценарий для запуска настроенной виртуальной машины QEMU:
/usr/local/bin/qemu-system-x86_64 \
-m 4000 \
-net none \
-name "UEFI DEBUG" \
-machine q35 \
-hdd /Users/usermane/FW/edk2/QEMU/Win10 \
-serial file:qemu_log.txt \
-accel hax \
-smp 1 \
-bios /Users/username/FW/edk2/Build/OvmfX64/DEBUG_XCODE5/FV/OVMF.fd\
-cdrom QEMU/Win10_1809_x64.iso \
Все работает хорошо, но если я использую флаг ускорителя "hax", я получаю ошибку паники ядра (когда я использую Windows 1903 с теми же настройками, я получаю ту же ошибку):
Запрос на отключение VCPU
Запрос на отключение VCPU
и последние строки файла "qemu_log.txt":
EFI Storage Security Protocol - прочитанной SetUefiImageMemoryAttributes - 0x000000007CBC5000 - 0x0000000000006000 (0x0000000000000000) SetUefiImageMemoryAttributes - 0x000000007CBC0000 - 0x0000000000005000 (0x0000000000000000) SetUefiImageMemoryAttributes - 0x000000007CBBA000 - 0x0000000000006000 (0x0000000000000000) SetUefiImageMemoryAttributes - 0x000000007CBB5000 - 0x0000000000005000 (0x0000000000000000) SetUefiImageMemoryAttributes - 0x000000007BA99000 - 0x0000000000082000 (0x0000000000000000) SetUefiImageMemoryAttributes - 0x000000007CBB0000 - 0x0000000000005000 (0x0000000000000000) SetUefiImageMemoryAttributes - 0x000000007CBA9000 - 0x0000000000007000 (0x0000000000000000) SetUefiImageMemoryAttributes - 0x000000007CBA5000 - 0x0000000000004000 (0x000000000000Image000) SetUef0000000000000000000000(0x0000000000000000)
Я попытался разобраться в этом с помощью этой проблемы:https://github.com/intel/haxm/issues/149
После ознакомления с ним я пришел к выводу, что ovmf еще не поддерживается haxm.
Есть ли другой способ разработки и отладки DXE-драйверов на Mac или Windows на ускоренной виртуальной машине (без покупки оборудования)?