Qemu выдает ошибку после попытки использовать WHPX ускорение.

Вопрос или проблема

Я использую qemu для эмуляции Zorin OS 16. Я попытался эмулировать Zorin OS 16 с ускорением whpx с помощью этой команды в Power Shell:

qemu-system-x86_64.exe -boot d -cdrom zorincore.iso -m 8000 -accel whpx

…затем Zorin запускается, но выдает эту ошибку в PowerShell:

WHPX: setting APIC emulation mode in the hypervisor
Windows Hypervisor Platform accelerator is operational
whpx: injection failed, MSI (0, 0) delivery: 0, dest_mode: 0, trigger mode: 0, vector: 0, lost (c0350005)

Как исправить ошибку?

(Я использую Windows 11 Preview Build 220000.194 и включил функцию Windows Hypervisor Platform)

У меня не было много времени, чтобы разобраться, как это работает и каковы последствия. Но решение, упомянутое в этом вопросе на GitHub помогло мне:

--accel whpx,kernel-irqchip=off

Документы здесь упоминают, что “Отключение in-kernel irqchip полностью не рекомендуется, за исключением целей отладки”. Но split не реализован в WHPX. Я не эксперт, поэтому не уверен, означает ли KVM в документах только виртуализацию, связанную с Linux, или что-то более общее. Поэтому я решил опубликовать это на всякий случай. Опять же, у меня нет опыта в этом, поэтому используйте с осторожностью и лучше проведите собственное исследование.

Ответ или решение

При работе с QEMU и использованием ускорения WHPX возникла ошибка во время эмуляции Zorin OS 16. Давайте подробно разберем возможные причины этой ошибки и предложим варианты ее устранения.

Теория

Windows Hypervisor Platform (WHPX) — это функция виртуализации в Windows, которая позволяет использовать аппаратное ускорение для виртуальных машин. Эта функция необходима для повышения производительности и улучшения работы виртуальных машин. Однако, как и любые системы, WHPX может столкнуться с проблемами совместимости или конфигурации, что приводит к ошибкам.

Сообщение об ошибке, которое вы наблюдаете, связано с неудачным инжектированием MSI (Message Signaled Interrupts). Это может указывать на проблему с настройкой прерываний в виртуальной среде. К сожалению, такие ошибки часто имеют сложный характер и могут быть вызваны различными факторами, включая несовместимость программного обеспечения, проблемы в конфигурации QEMU или сбои на уровне гипервизора.

Пример

Давайте рассмотрим конкретный случай. Вы запускаете виртуальную машину с Zorin OS 16 используя следующую команду в PowerShell:

qemu-system-x86_64.exe -boot d -cdrom zorincore.iso -m 8000 -accel whpx

Возникает ошибка:

WHPX: setting APIC emulation mode in the hypervisor
Windows Hypervisor Platform accelerator is operational
whpx: injection failed, MSI (0, 0) delivery: 0, dest_mode: 0, trigger mode: 0, vector: 0, lost (c0350005)

Это указывает на проблему с инжектированием MSI в эмуляции APIC (Advanced Programmable Interrupt Controller), компонента, ответственного за управление прерываниями.

Применение

Для решения этой проблемы одной из рекомендаций, опубликованных в открытых источниках, является отключение in-kernel irqchip путем добавления параметра kernel-irqchip=off к команде запуска QEMU. Вот как может выглядеть обновленная команда:

qemu-system-x86_64.exe -boot d -cdrom zorincore.iso -m 8000 -accel whpx,kernel-irqchip=off

Дополнение параметра kernel-irqchip=off отключает работу irqchip на уровне ядра, что переходит на управление прерываниями в пользовательском пространстве. Это может помочь обойти проблемы с реализацией irqchip в WHPX, которые могут быть не совместимы с вашим текущим конфигурацией Windows или релизом QEMU. Однако такое решение может иметь побочные эффекты, такие как сниженная производительность или другие непредвиденные проблемы с прерываниями. Поэтому его следует использовать с осторожностью, и по возможности избегать применения в боевых средах.

Рекомендации

  1. Обновление ПО: Убедитесь, что используете последнюю версию QEMU и что все обновления Windows, включая обновления Windows Hypervisor Platform, установлены. Ошибки часто исправляются в новых релизах, и простой апгрейд может устранить проблему.

  2. Конфигурация BIOS/UEFI: Проверьте, включена ли в BIOS/UEFI поддержка аппаратной виртуализации (обычно это параметры Intel VT-x или AMD-V). Без этой функции WHPX может не работать должным образом.

  3. Тестирование без WHPX: Попробуйте запустить вашу виртуальную машину без использования WHPX, чтобы определить, сохраняется ли проблема. Это может помочь исключить аппаратные сбои или проблемы на уровне самого QEMU:

    qemu-system-x86_64.exe -boot d -cdrom zorincore.iso -m 8000
  4. Альтернативные гипервизоры: Если ошибка не исчезает, рассмотреть возможность использования других гипервизоров, таких как Hyper-V или VMware, которые могут предложить более стабильную среду для вашей виртуализации.

  5. Диагностика и сетевая помощь: Используйте средства диагностики Windows для проверки целостности компонентов WHPX и системных файлов. Поиск информации на специализированных форумах и обращение к сообществу пользователей может также предоставить возможные решения аналогичных проблем.

Заключение: Ошибка «whpx: injection failed, MSI…» — это сложная проблема, которая требует систематического подхода к диагностике. Используя описанные методики и рекомендации, вы сможете устранить эту ошибку или минимизировать ее воздействие на вашу работу с виртуальными машинами на платформе QEMU.

Оцените материал
Добавить комментарий

Капча загружается...