blob: 2d06b761088ede6ea48965f546a8a49deaf4501a [file] [log] [blame]
Qemu/win32 can be run using the mingw-subsystem or an alternative cli (cygwin was successfully
tested with export PATH=".../mingw64/lib/qemu:.../mingw64/bin:$PATH")
Make sure you are using Windows 10 Pro and you've enabled WHPX OR you own an Intel CPU and
you've installed HAX. Otherwise no hardware acceleration can be used.
https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v
https://github.com/intel/haxm
msys2.examples.tests.sh contains several demo use cases which can be automatically executed:
$ /mingw64/share/doc/qemu/msys2.examples.tests.sh
Most demo use cases were VMs taken from Qemu Advent Calendar https://www.qemu-advent-calendar.org/
which were adjusted to run on Qemu/win32.
Desktop use cases were integrated to show different options how to run a Linux desktop using
* SPICE
* SDL
* GTK
* VNC
All demo use cases can be used to perform a regression test, too:
The script supports comparing two specified versions of qemu by executing the use cases with
both versions consecutively
--------------------------------------------------------------------------------------------------
Known problems with Qemu/win32:
* qemu-system-x86_64 -accel whpx
in qemu 6.0.0 leads to error messages like
WHPX: setting APIC emulation mode in the hypervisor
whpx: injection failed, MSI (0, 0) delivery: 0, dest_mode: 0, trigger mode: 0, vector: 0, lost
which causes some problems, which can be mitigated by using
qemu-system-x86_64 -accel whpx,kernel-irqchip=off
* qemu-system-x86_64 -accel whpx -pflash /mingw64/lib/qemu/edk2-x86_64-code.fd
using an UEFI BIOS with WHPX fails with
qemu-system-x86_64.exe: WHPX: Failed to emulate MMIO access with EmulatorReturnStatus: 2
qemu-system-x86_64.exe: WHPX: Failed to exec a virtual processor
* qemu-img commit doesn't work
* qemu-img convert to vhdx produces invalid images
* qemu-system-x86_64 -append root=/dev/hda
absolute paths are converted to windows paths in MINGW64 shell
and therefore get invalid, which can be mitigated:
$ export MSYS2_ARG_CONV_EXCL='*'
$ qemu-system-x86_64.exe -append root=/dev/hda
$ unset MSYS2_ARG_CONV_EXCL
Make sure you do not use any (absolute) paths in the command, which need to be converted