GithubHelp home page GithubHelp logo

Comments (15)

kroese avatar kroese commented on June 14, 2024 1

@kostyanf14 Build 26040

from kvm-guest-drivers-windows.

fkonradmain avatar fkonradmain commented on June 14, 2024 1

So, I got almost all of the drivers to work, by hard code activating directly via powershell. I just wanted to share it with you, because it seems to be a certificate issue as well.

My environment:

  • Proxmox 8.1
  • CPU AMD GX-424CC
  • SeaBios
  • pc-q35-8.1
  • Virtio SCSI Single
  • Virtio NIC
  • Windows Server Datacenter Core Version 10.0.26063.1

About the installation:
I had no issues here, as disk driver I selected the directory amd64\2k22and then picked the driver.

I wrote a script, that

  1. runs the main installer on the root path of the virtio disk
  2. installs the certificates to the Windows Certificate Store
  3. installs all drivers, one after another
  4. installs the qemu guest agent
# Define the paths to the MSI files
$virtioWinMSI = "D:\virtio-win-gt-x64.msi"
$guestAgentMSI = "D:\guest-agent\qemu-ga-x86_64.msi"

# Install Virtio-Win MSI
Start-Process msiexec.exe -ArgumentList "/i `"$virtioWinMSI`" /qn" -Wait


# Add the Root CA for the drivers to the TrustedPublisher and the Root CA store
Import-Certificate -FilePath "D:\cert\Virtio_Win_Red_Hat_CA.cer" -CertStoreLocation "Cert:\LocalMachine\TrustedPublisher"
Import-Certificate -FilePath "D:\cert\Virtio_Win_Red_Hat_CA.cer" -CertStoreLocation "Cert:\LocalMachine\Root"

# Install Virtio drivers
pnputil -i -a "D:\amd64\2k22\vioscsi.inf"
pnputil -i -a "D:\amd64\2k22\viostor.inf"
pnputil -i -a "D:\Balloon\2k22\amd64\balloon.inf"
pnputil -i -a "D:\NetKVM\2k22\amd64\netkvm.inf"
pnputil -i -a "D:\fwcfg\2k22\amd64\fwcfg.inf"
pnputil -i -a "D:\pvpanic\2k22\amd64\pvpanic.inf"
pnputil -i -a "D:\pvpanic\2k22\amd64\pvpanic-pci.inf"
pnputil -i -a "D:\qemufwcfg\2k22\amd64\qemufwcfg.inf"
pnputil -i -a "D:\qemupciserial\2k22\amd64\qemupciserial.inf"
pnputil -i -a "D:\smbus\2k22\amd64\smbus.inf"
pnputil -i -a "D:\sriov\2k22\amd64\vioprot.inf"
pnputil -i -a "D:\viofs\2k22\amd64\viofs.inf"
pnputil -i -a "D:\viogpudo\2k22\amd64\viogpudo.inf"
pnputil -i -a "D:\vioinput\2k22\amd64\vioinput.inf"
pnputil -i -a "D:\viorng\2k22\amd64\viorng.inf"
pnputil -i -a "D:\vioscsi\2k22\amd64\vioscsi.inf"
pnputil -i -a "D:\vioserial\2k22\amd64\vioser.inf"
pnputil -i -a "D:\viostor\2k22\amd64\viostor.inf"

# Install QEMU Guest Agent MSI
Start-Process msiexec.exe -ArgumentList "/i `"$guestAgentMSI`" /qn" -Wait

At the end, only one device is not recognized (no idea, which it actually is, though):
image

from kvm-guest-drivers-windows.

kroese avatar kroese commented on June 14, 2024

I just tried it again using the "Azure Edition" instead of the normal one, and that one accepts the Win22 drivers for some reason.

EDIT: Nevermind, it only accepts it now during the first screen, but a few screens further it cannot locate any disks, and when manually loading the w2k22 driver again it prompts "Cannot load driver".

from kvm-guest-drivers-windows.

kostyanf14 avatar kostyanf14 commented on June 14, 2024

Hi @kroese

What build number of Windows Server do you have?

from kvm-guest-drivers-windows.

kroese avatar kroese commented on June 14, 2024

Its a bit strange installation. The first step asks for drivers for a device that displays your hardware. I assumed it was asking for the scsi drivers (as every other Windows setup asks this as the first step), so that it doesnt accept the scsi driver here makes sense in hindsight.

But I have no idea what a "device to display your hardware" is. I tried smbus, fwcfg, and lots of others, but none of them were correct.

Server 2025 is based on Win11 LTSC so I also dont understand why it cannot load the Win11 scsi driver at the disk screen later on.

from kvm-guest-drivers-windows.

vrozenfe avatar vrozenfe commented on June 14, 2024

@kroese
Did you try a "normal" vNext preview rather than Azure version ?
Vadim

from kvm-guest-drivers-windows.

kroese avatar kroese commented on June 14, 2024

I tried all three versions, the "normal", the Azure and the Annual edition. All have the same problem that they dont accept any VirtIO driver.

from kvm-guest-drivers-windows.

vrozenfe avatar vrozenfe commented on June 14, 2024

Tried to install vNext 26040.1000.240122-1157 Standard Server on
my F37 laptop
[vrozenfe@milly vms]$ uname -r
6.5.12-100.fc37.x86_64
and
(qemu) info version
8.2.50v8.2.0-645-g977542ded7
Screenshot from 2024-01-29 23-36-57

seems to work fine with viostor, netkvm and viogpudo drivers build for ws2022
Screenshot from 2024-01-29 23-38-53

my qemu command line:

#!/bin/sh
IMG='/home/vrozenfe/work/images/vnext.qcow2'
QEMU='/home/vrozenfe/work/upstream/qemu/build/x86_64-softmmu/qemu-system-x86_64'
CDROM='/home/vrozenfe/work/isos/26040.1000.240122-1157.rs_prerelease_SERVER_OEMRET_x64FRE_en-us.iso'
ISO='/home/vrozenfe/work/isos/virtio-win-0.1.240.iso'

FLAGS=',hv_stimer,hv_synic,hv_vpindex,hv_relaxed,hv_spinlocks=0xfff,hv_vapic,hv_time,hv_frequencies,hv_runtime,hv_tlbflush,hv_reenlightenment,hv_stimer_direct,hv_ipi,+kvm_pv_unhalt'

VGA='-device virtio-vga,edid=on,xres=1280,yres=800'
CPU='host'
sudo $QEMU -name vNext
-M q35 -S
-L /home/vrozenfe/work/upstream/qemu/pc-bios/
-cpu $CPU$FLAGS
-machine hpet=off
-monitor stdio
-enable-kvm
-rtc base=localtime,clock=host,driftfix=slew
-usb -device usb-tablet,id=input0
-global kvm-pit.lost_tick_policy=discard
-m 4G -smp 4,maxcpus=4,cores=4,threads=1,sockets=1 \

from kvm-guest-drivers-windows.

vrozenfe avatar vrozenfe commented on June 14, 2024
    $VGA \
    -drive file=$IMG,if=none,media=disk,format=qcow2,rerror=stop,werror=stop,cache=none,id=drive-vioscsi0 \
    -device virtio-scsi-pci,id=scsi-vioscsi0 \
    -device scsi-hd,drive=drive-vioscsi0,id=vioscsi0,bus=scsi-vioscsi0.0,lun=0,scsi-id=0,bootindex=1 \
    -device virtio-net-pci,mac=9a:55:56:57:30:25,id=id18Xcuo,vectors=4,netdev=idGRsMas \
    -netdev tap,id=idGRsMas,script=/etc/qemu-ifup \
    -drive id=drive_cd0,if=none,snapshot=off,aio=threads,cache=none,media=cdrom,file=$CDROM \
    -device ide-cd,id=cd0,drive=drive_cd0,bootindex=2,bus=ide.0,unit=0 \
    -drive id=drive_cd1,if=none,snapshot=off,aio=threads,cache=none,media=cdrom,file=$ISO \
    -device ide-cd,id=cd1,drive=drive_cd1,bootindex=-1,bus=ide.1,unit=0 \

$SER \

from kvm-guest-drivers-windows.

kroese avatar kroese commented on June 14, 2024

Interesting... We have almost an identical QEMU commandline, and the same version of the VirtIO drivers, so I am a bit puzzled...

Did you get the screen 'Select a device to display hardware' in the first step of the installation? Did you use the win22 'viostor.inf' or the 'vioscsi.inf'?

from kvm-guest-drivers-windows.

kostyanf14 avatar kostyanf14 commented on June 14, 2024

I try both viostor and vioscsi (with corresponding device), and both work fine

from kvm-guest-drivers-windows.

kostyanf14 avatar kostyanf14 commented on June 14, 2024

@kroese

Do you run Windows with OVMF (secure-boot or no) or SeaBIOS?
Do you run QEMU directly or via libvirt?

from kvm-guest-drivers-windows.

kroese avatar kroese commented on June 14, 2024

I discovered that this command causes the error with loading the drivers:

qemu-system-x86_64 
-nodefaults 
-cpu host,kvm=on,+hypervisor,+invtsc,l3-cache=on,migratable=no,hv_passthrough 
-smp 2,sockets=1,dies=1,cores=2,threads=1 
-m 4G 
-machine type=q35,smm=on,graphics=off,vmport=off,dump-guest-core=off,hpet=off,accel=kvm 
-enable-kvm 
-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 
-serial pty 
-netdev tap,ifname=qemu,script=no,downscript=no,id=hostnet0 
-device virtio-net-pci,romfile=,netdev=hostnet0,mac=82:cf:d0:5e:57:66,id=net0 
-object iothread,id=io2 
-device virtio-scsi-pci,id=scsi0,iothread=io2,addr=0x5 
-device scsi-cd,bus=scsi0.0,drive=cdrom0,bootindex=10 
-drive id=cdrom0,if=none,format=raw,readonly=on,file=/storage/custom.iso 
-drive id=cdrom1,if=none,format=raw,readonly=on,file=/run/drivers.iso 
-device ide-cd,drive=cdrom1 
-drive file=/storage/data.img,if=none,id=drive-userdata,format=raw,cache=none,aio=native,discard=on,detect-zeroes=on 
-device virtio-blk-pci,scsi=off,bus=pcie.0,addr=0xa,drive=drive-userdata,id=userdata,iothread=io2,bootindex=3 
-global driver=cfi.pflash01,property=secure,value=on
-drive file=/storage/windows.rom,if=pflash,unit=0,format=raw,readonly=on 
-drive file=/storage/windows.vars,if=pflash,unit=1,format=raw 
-global kvm-pit.lost_tick_policy=discard -global ICH9-LPC.disable_s3=1 
-chardev socket,id=chrtpm,path=/run/swtpm-sock 
-tpmdev emulator,id=tpm0,chardev=chrtpm 
-device tpm-tis,tpmdev=tpm0 
-device virtio-balloon-pci,id=balloon0,bus=pcie.0,addr=0x4 
-object rng-random,id=objrng0,filename=/dev/urandom 
-device virtio-rng-pci,rng=objrng0,id=rng0,bus=pcie.0,addr=0x1c 
-device qemu-xhci 
-device usb-tablet 

And this command causes NO error in loading the drivers:

qemu-system-x86_64 
-nodefaults 
-cpu host,kvm=on,+hypervisor,+invtsc,l3-cache=on,migratable=no,hv_passthrough 
-smp 1,sockets=1,dies=1,cores=1,threads=1 
-m 1G 
-machine type=q35,smm=on,graphics=off,vmport=off,dump-guest-core=off,hpet=off,accel=kvm 
-enable-kvm 
-display vnc=:0,websocket=5700 
-vga virtio 
-monitor telnet:localhost:7100,server,nowait,nodelay 
-serial mon:stdio 
-netdev tap,ifname=qemu,script=no,downscript=no,id=hostnet0 
-device virtio-net-pci,romfile=,netdev=hostnet0,mac=82:cf:d0:5e:57:66,id=net0 
-object iothread,id=io2 
-device virtio-scsi-pci,id=scsi0,iothread=io2,addr=0x5 
-device scsi-cd,bus=scsi0.0,drive=cdrom0,bootindex=10 
-drive id=cdrom0,if=none,format=raw,readonly=on,file=/storage/boot.iso 
-drive id=cdrom1,if=none,format=raw,readonly=on,file=/storage/drivers.iso 
-device ide-cd,drive=cdrom1 
-device virtio-scsi-pci,id=hw-userdata,iothread=io2,bus=pcie.0,addr=0xa 
-drive file=/storage/data.img,if=none,id=drive-userdata,format=raw,cache=none,aio=native,discard=on,detect-zeroes=on 
-device scsi-hd,bus=hw-userdata.0,channel=0,scsi-id=0,lun=0,drive=drive-userdata,id=userdata,rotation_rate=1,bootindex=3 
-global driver=cfi.pflash01,property=secure,value=on
-drive file=/storage/windows.rom,if=pflash,unit=0,format=raw,readonly=on 
-drive file=/storage/windows.vars,if=pflash,unit=1,format=raw 
-global kvm-pit.lost_tick_policy=discard 
-global ICH9-LPC.disable_s3=1 
-chardev socket,id=chrtpm,path=/run/swtpm-sock 
-tpmdev emulator,id=tpm0,chardev=chrtpm 
-device tpm-tis,tpmdev=tpm0 
-device virtio-balloon-pci,id=balloon0,bus=pcie.0,addr=0x4 
-object rng-random,id=objrng0,filename=/dev/urandom 
-device virtio-rng-pci,rng=objrng0,id=rng0,bus=pcie.0,addr=0x1c 
-device qemu-xhci 
-device usb-tablet

I really would like to know why. Because both commands are almost identical.

The only obvious difference is the device virtio-blk-pci vs the device scsi-hd.

So it seems by using virtio-blk it causes Win2025 to fail to load any driver. Maybe it is just the viostor driver that is incompatible, as the vioscsi one seems to work fine.

from kvm-guest-drivers-windows.

vrozenfe avatar vrozenfe commented on June 14, 2024

@fkonradmain
It will be better to use Win11 drivers for WS2025
Vadim.

from kvm-guest-drivers-windows.

kroese avatar kroese commented on June 14, 2024

Solution provided in #1100 1100

from kvm-guest-drivers-windows.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.