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
2.06k stars 386 forks source link

[Windows 11][aarch64] how to configure virtio-gpu to run with Windows 11 for aarch64 VM? #805

Open bryantclcqq opened 2 years ago

bryantclcqq commented 2 years ago
  1. configure qemu with -device virtio-vga
  2. install viogpu dod driver in win 11 vm When I update the viogpu driver, it will get a bsod (Blue Screen Of Dead). As I know virtio-gpu works ok for windows 10 on X86 machine. Does anyone know what's happening? Can virtio-gpu run with qemu kvm windows 11 on aarch64 machines?

qemu: v7.0.0 Linux: 4.19 Windows 11 guest: Windows 11 for arm 21H2

vrozenfe commented 2 years ago

@bryantclcqq Honestly, I've never tried to run virtio-gpu on ARM64, But I'm very interested in your experience and will happy to investigate and try to fix this issue. Cany you please share the qemu command line, and if possible the crash dump file?

All the best, Vadim.

zyimin commented 2 years ago

I also encountered this problem. The dump file showed the postion crashing was due to KeAcquireSpinLockRaiseToDpc in VioGpuBuf::GetBuf(). The code of BSOD is IRQL NOT Less or Equal.

zyimin commented 2 years ago

Is there any guide to build virtio gpu driver with win11 arm version?

vrozenfe commented 2 years ago

@zyimin Can you share the crash dump file and the qemu command line?

There are some instructions how to set up the build environment and how to build the virtio-win drivers at Wiki page https://github.com/virtio-win/kvm-guest-drivers-windows/wiki

Vadim.

zyimin commented 2 years ago

I used the 7.0.0 qemu compiled by myself. Qemu cmd line is qemu-system-aarch64 -nodefaults -m 6G -machine virt,kernel-irqchip=on,virtualization=off,its=off,gic-version=3 -accel kvm -cpu host -smp 4 -bios ./QEMU_EFI.fd -device nec-usb-xhci -device usb-kbd -device usb-tablet -device usb-storage,drive=win11 -drive if=none,id=win11,format=qcow2,file=./win11_disk.qcow2,overlap-check=none,cache=unsafe -device ramfb -vnc :1 -device virtio-net-pci,netdev=user0 -netdev user,id=user0 -device virtio-gpu-pci

The BSOD must be reproduced if viogpu driver starts up. Because of the network limitation, I can't send the dump file to you. Sorry about that.

gaojinhao commented 2 years ago

I want to run with windows 11 for aarch64 with virtio-gpu. How do I install viogpu dod driver?

bryantclcqq commented 2 years ago

hi @vrozenfe, as shown in this issue, virtio-gpu (ARM64) from spice guest tools could setup and run successfully within Windows 11 for ARM vm. However virtio-gpu from virtio-win release iso cound not run, which would suffer bsod (Blue Screen Of Deadth) problem. https://github.com/utmapp/UTM/issues/3293

Do you know what is difference between them? Could virtio-win fix this bsod problem?

vrozenfe commented 2 years ago

@bryantclcqq Honestly, I'm really surprised that spice comes with virtio-gpu drivers, and especially with ARM64 version signed with Microsoft Windows Third Party Component signature. I need to confirm with our spice guys the origin of this driver, but it seems to be based on build 208..210 The latest virtio-win build available for download is 221. This build includes several virtio-gpu reelated fixes and optimisations, but AFAIK was never tested on ARM64 platforms. I would really like to make sure that ARM64 version of virtio-gpu driver working properly, but unfortunately I don't have any ARM64 system except for RPI 4 at the moment. If you can share the crash dump file via google drive, dropbox or any other service, please ping me at vrozenfe_at_redhat_dot_com.

Best, Vadim.

Vogtinator commented 2 years ago

FTR, I'm using -device virtio-gpu-pci on Win 11 for arm64 in QEMU with the current latest virtio-win.iso driver, the only issue is that I'm unable to change the resolution (using the VNC backend). My setup is this: https://gist.github.com/Vogtinator/293c4f90c5e92838f7e72610725905fd

giantstars commented 1 year ago

Use qemu-system-aarch64 version 8.0 Use 'virtio-gpu' graphics card to install the ARM64 'viogpudo' driver in 'virtio-win 0.1.229' in windows11 for arm. The installation is successful, but the resolution cannot be set. May I ask which great God can give some advice?

Vogtinator commented 1 year ago

Use qemu-system-aarch64 version 8.0 Use 'virtio-gpu' graphics card to install the ARM64 'viogpudo' driver in 'virtio-win 0.1.229' in windows11 for arm. The installation is successful, but the resolution cannot be set. May I ask which great God can give some advice?

As a workaround you can edit the registry: https://gist.github.com/Vogtinator/293c4f90c5e92838f7e72610725905fd#file-openqa-setup-md

giantstars commented 1 year ago

Use qemu-system-aarch64 version 8.0 Use 'virtio-gpu' graphics card to install the ARM64 'viogpudo' driver in 'virtio-win 0.1.229' in windows11 for arm. The installation is successful, but the resolution cannot be set. May I ask which great God can give some advice?

As a workaround you can edit the registry: https://gist.github.com/Vogtinator/293c4f90c5e92838f7e72610725905fd#file-openqa-setup-md

Thank you very much, the resolution has been changed successfully. Is there a way to select the resolution in windows11 for arm

Vogtinator commented 1 year ago

If there's a way I haven't found it it

giantstars commented 1 year ago

If there's a way I haven't found it it

This result is already very good for me, just a little greedy, thank you very much