virtio-win / kvm-guest-drivers-windows

Windows paravirtualized drivers for QEMU\KVM
https://www.linux-kvm.org/page/WindowsGuestDrivers
BSD 3-Clause "New" or "Revised" License
1.91k stars 377 forks source link

viogpudo /virtio-vga broken in recent Windows builds #1102

Open kroese opened 3 weeks ago

kroese commented 3 weeks ago

In recent Windows versions, like Server 2025 and Windows 11 IoT 24H2, when using the virtio-vga graphics device, the screen turns black when installing the viogpudo driver and stays black.

Using the std VGA device everything works.

The problem even exists with the new beta drivers, version 0.1.258.

kostyanf14 commented 3 weeks ago

@kroese Please provide QEMU CLI, QE can't reproduce this issue.

image

6-dehan commented 3 weeks ago

Hi @kroese,

could you please provide more details like when you installed the driver? during the installation of system or installed virtio-vga after installing system. And yes, please provide us the qemu-cli.

Thanks Dehan Meng

kroese commented 3 weeks ago

@6-dehan The commandline is:

-nodefaults
-cpu host,kvm=on,l3-cache=on,migratable=no,+hypervisor,hv_passthrough,+invtsc
-smp 2,sockets=1,dies=1,cores=2,threads=1
-m 4G
-machine type=q35,smm=off,graphics=off,vmport=off,dump-guest-core=off,hpet=off,accel=kvm
-enable-kvm
-global kvm-pit.lost_tick_policy=discard
-display vnc=:0,websocket=5700
-vga virtio
-monitor telnet:localhost:7100,server,nowait,nodelay
-daemonize
-D /run/shm/qemu.log
-pidfile /run/shm/qemu.pid
-name windows,process=windows,debug-threads=on
-serial pty
-device qemu-xhci,id=xhci
-device usb-tablet
-netdev tap,ifname=qemu,script=no,downscript=no,id=hostnet0
-device virtio-net-pci,romfile=,netdev=hostnet0,mac=02:BA:F0:B0:CC:13,id=net0
-drive file=/storage/windows.iso,id=cdrom0,format=raw,readonly=on,media=cdrom,if=none
-device virtio-scsi-pci,id=cdrom0b,bus=pcie.0,addr=0x5,iothread=io2
-device scsi-cd,drive=cdrom0,bus=cdrom0b.0,bootindex=10
-drive file=/storage/data.img,id=data3,format=raw,cache=none,aio=native,discard=on,detect-zeroes=on,if=none
-device virtio-scsi-pci,id=data3b,bus=pcie.0,addr=0xa,iothread=io2
-device scsi-hd,drive=data3,bus=data3b.0,channel=0,scsi-id=0,lun=0,rotation_rate=1,bootindex=3
-object iothread,id=io2
-rtc base=localtime
-global ICH9-LPC.disable_s3=1
-global ICH9-LPC.disable_s4=1
-drive file=/storage/windows.rom,if=pflash,unit=0,format=raw,readonly=on
-drive file=/storage/windows.vars,if=pflash,unit=1,format=raw
-object rng-random,id=objrng0,filename=/dev/urandom
-device virtio-rng-pci,rng=objrng0,id=rng0,bus=pcie.0,addr=0x1c

it happens when the driver is installed during the setup (automaticly via unattended install, or when loading it manually when windows asks for boot-critical drivers).

6-dehan commented 3 weeks ago

Thanks @kroese , After investigating your qemu-cli with @kostyanf14 , we found the 'smm=off' should change to on and all 'scsi-hd' should change to IDE. then virtio-vga works. so maybe virtio-scsi has some problem. image

kroese commented 3 weeks ago

@6-dehan Thanks! But it is on purpose that I did not enable Secure Boot (smm=off), because there are other problems (not related to virtio-win) when enabling Secure Boot on hosts with certain CPU models. Also I reported before that vioscsi is having problems, see https://github.com/virtio-win/kvm-guest-drivers-windows/issues/1100 . But they said it was not a virto-win issue.

I am using these drivers in my project ( https://github.com/dockur/windows ) which has a large userbase, so I cannot just switch the whole project to IDE or Secure Boot, because it will affect thousands of users. I guess I have no other option to wait until the drivers for 24H2 / Server 2025 are more mature, before I can offer those operating systems as an option.