Это мой первый вопрос, поэтому, пожалуйста, не будьте слишком строгими.
Я раньше разрабатывал драйверы DXE для edk2 (OvmfPkg) с QEMU и OVMF. Все работало на ubuntu с KVM.
Но я установил haxm v7.6.1 на свою ma c 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», я получаю ошибку ядра pani c (когда я использую 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) SetUefiImageM emoryAttributes - 0x000000007CBA9000 - 0x0000000000007000 (0x0000000000000000) SetUefiImageMemoryAttributes - 0x000000007CBA5000 - 0x0000000000004000 (0x0000000000000000) SetUefiImageMemoryAttributes - 0x000000007CB000000000000: * 102700000000000000 1030 *
После ознакомления с ним я пришел к выводу, что ovmf еще не поддерживается haxm.
Есть ли другой способ разработки и отладки DXE- драйверы на ма c или windows на ускоренной виртуальной машине (без покупки оборудования)?