Могу ли я использовать 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 на ускоренной виртуальной машине (без покупки оборудования)?

0 ответов

Другие вопросы по тегам