Ok so I have a qemu-kvm Win7 VM setup. When setting it to use the standard vga output "-vga std" it works fine. Windows loads up, displays, no problems. If i set

-vga none \
-device vfio-pci,host=06:00.0,multifunction=on,x-vga=on \
-device vfio-pci,host=06:00.1 \

The VM still starts up, gives no errors in it's qemu monitor console nor in the terminal used to run the startup script. The monitor plugged into the PCIE Graphics Card on pci_0000:06:00:0 registers a signal, shows the bios screen for a second, but once it actually starts loading windows (either the iso install disk or a pre-installed copy already on the VM drive) it just shows a blank black screen.

Again, no errors, no visual artifacts, screen still registers a signal (doesn't default to "No Signal" and shut off), but it's just plain black. The OS itself does not actually boot up as far as I can tell (I have synergy installed and setup to auto-start when the computer starts. When not using vga passthrough synergy starts up as expected with 0 input into the VM box needed. When using vga passthrough my mouse can't scroll off-screen from the host/server OS and the synergy server console never indicates a connection is being made/attempted by the client.

OS: Fedora 21 QEMU/QEMU-KVM: Ver 2:2.3.0-4 Guest OS: Windows 7 Enterprise libvirt-kvm: Ver Kernel Ver: 4.0.4-201

Startup script:

sudo qemu-system-x86_64 -enable-kvm -rtc base=localtime -m 8192 -cpu host,hv-time,kvm=off \
-smp sockets=1,cores=4,threads=1 -serial none -parallel none -nodefconfig \
-drive file=windows.img,cache=writeback,if=none,id=drive0,aio=native,cache.direct=on \
-device virtio-blk-pci,drive=drive0,ioeventfd=on,bootindex=1 -device virtio-scsi-pci,id=scsi \
-drive file=7_en_x64.iso,id=iso_install,if=none -device scsi-cd,drive=iso_install \
-cdrom virtio.iso \
-device vfio-pci,host=06:00.0,multifunction=on,x-vga=on \
-device vfio-pci,host=06:00.1 \
-boot menu=on \
-vga none

exit 0

Commenting out the last two "-device" lines, and changing "-vga none" to "-vga std" makes the VM boot up and function as expected.

  • I found something similar with more recent components but still a Win7 guest on i440. For some reason the guest pauses right at Windows boot. Using whatever qemu monitor you're using to resume the guest allows windows to continue booting. An actual answer is likely something to do with PCI addresses/ports or x-vga quirks. – Dan Oct 23 '17 at 19:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.