Править: Решение Hermann's использования QXL приемлемо.
Я компилирую QEMU один и выполняю его от командной строки. Это происходит из-за применения патча, и иметь последнюю версию QEMU.
Цель состоит в том, чтобы запустить универсальный Windows (7 +) гость с FHD (1920x1080) разрешение, не используя удаленный рабочий стол (поэтому, непосредственно в окне QEMU), с помощью хоста Ubuntu 16.04 x86/64.
Когда я настраиваю компилятор с:
./configure --target-list=x86_64-softmmu --enable-debug --enable-gtk # and other parameters
и выполненный QEMU с:
$QEMU_BINARY \
-drive if=pflash,format=raw,readonly,file=$OVMF_20160813_BIN \
-drive if=pflash,format=raw,file=$OVMF_20160813_VARS_TMP \
-enable-kvm \
-machine q35,accel=kvm,mem-merge=off \
-cpu host \
-vga std \
# and other parameters
Windows ограничивает разрешение 800x600.
Как я могу настроить/выполнить QEMU для получения ожидаемого разрешения?
Когда я выполняю использование -vga vmware
, Я добираюсь Guest has not initialized the display (yet).
, который я не уверен, является ли это ошибка, или я не настраиваю свою систему или QEMU правильно.
Приемлемо, если решение требует драйверов установки, но я склонен не выполнить QEMU от соединения удаленного рабочего стола. Если не возможно легко достигнуть FHD, даже более низкий в порядке (что-либо, но 800x600!).
У меня была эта работа однажды, но она развалилась, когда я переключился от Windows XP до Windows 10. Теперь я сталкиваюсь с той же проблемой, также. Насколько мое исследование пошло, это просто не возможно из-за неудачной комбинации EFI OVMF и Windows.
Список доступных разрешений сгенерирован в виртуальной видеокарте "станд." BIOS. Официальный список разрешений исправлен (см. qemu ошибку 498421), но может быть изменен, если Вы компилируете его сами (см. https://www.tablix.org / ~ avian/blog/archives/2013/05/custom_display_resolutions_in_qemu/).
Это только работает с процедурой загрузки BIOS прежней версии. Как только я использую стиль начальной загрузки EFI с OVMF, Windows принимает решение полагаться на предоставленный EDID монитора исключительно. К сожалению, qemu не эмулирует виртуальный монитор. Windows 10 не получает EDID и следовательно отступает к 800x600. Это поведение является hardcoded и не может быть изменено.
В теории Вы могли взломать "Основной Драйвер дисплея Microsoft", столь сделанный в https://github.com/ywjheart/basic_adapter_driver_modification, но это перестанет работать для Windows 7 или позже как проверки подписи драйвера поощряются.
В госте можно вручную установить монитор с нужным разрешением, но Windows будет все еще ожидать EDID.
Я обратился к удаленному рабочему столу. Используя -vga qxl
и соответствующие гостевые драйверы являются альтернативой, но - лично - я не нашел преимуществ.
ОБНОВЛЕНИЕ: qemu v4.0.0 отсутствует (замечен в kraxel's). Это теперь генерирует информацию EDID! Я скомпилировал его с
./configure --target-list=x86_64-softmmu --enable-sdl --enable-opengl
, выполните его с
qemu-system-x86_64 -enable-kvm -cpu host -smp 4 -drive if=virtio,format=raw,file=windows10 -display sdl,gl=on -device qemu-xhci,id=usb-bus -device usb-tablet -device VGA,edid=on,xres=1920,yres=1080
и о чудо: Полное разрешение в госте Windows 10! UI SDL является очень быстро реагирующим.