Hi everyone,
For the past day, i spent a lot of time trying to make a virtual machine and passtrough my old graphics card, the GT 320. It’s a pretty old GPU, i admit but don’t worry, it won’t be used to play games on Windows, (i have a R9 290 for linux gaming), is more to run “Windows only apps” like Fusion 360.
I tried everything, all bios of Q35, all bios of I440FX and i could not get anything to work.
Everytime my “passtrough” gpu is showing NO SIGNAL when i’m creating a VM and not using the build-in “Spice/QXL”, i already tried to install my gpu drivers to the Windows machine and i always stuck with error 43. Now i know that’s a common error on Nvidia GPU, i already applied all the fix that i can find on internet to my XML. I even tried a very old driver for this gpu when Nvidia didn"t introduce this "feature "
I don’t know if it’s supposed to be normal but : Why don’t i can see any display on the screen even with “Microsoft Basic Adapter” (witch throw also error 43). Even the bios is not showing up using virt-manager ? it’s seems like there is no display connected
THis morning i tried a last attempt using QEMU, here is my script :
#!/bin/bash
exec qemu-system-x86_64 \
-nodefaults \
-enable-kvm \
-cpu host,kvm=off \
-m 2G \
-name "BlankVM" \
-smp cores=4 \
-device vfio-pci,host=05:00.0,x-vga=on \
-device vfio-pci,host=05:00.1 \
-monitor stdio \
-nographic \
-vga none \
-boot d \
-drive file="/home/dylan/VM/virtio-win-0.1.185.iso",media=cdrom \
-drive file="/home/dylan/VM/qemu.qcow2",if=virtio \
-usb \
-device usb-host,vendorid=0x0c45,productid=0x7603 \
-device usb-host,vendorid=0x1ea7,productid=0x0064 \
-netdev user,id=user.0 -device e1000,netdev=user.0 \
$@
and suprisingly enough : IT WORKS ! And it works fine, i can see picture on my display and even my GT 320 got drivers installed without any 43 errors.
But i still wonder, why i can’t see anything using virt-manager ? For what i know my qemu script is using Seabios (and i can see it when it boot) so i also tried to create a virtual machine using again Q35 and “BIOS” since my qemu is not “uefi” and… no display at all. Can you guys help me with that, i’m starting to be very lost… at least i know it’s possible with my “aging” setup, witch is good, but now, have to find the issue.
Here is my virt-manager “Windows config” (PS : I’m not using any rom file, since Qemu work without (except that i’ve to put my computer to sleep after each vm shutdown to reset the gpu)
<domain type="kvm">
<name>win10-3</name>
<uuid>68375f5c-8b4b-422a-9f9b-e5cd6b2679cc</uuid>
<metadata>
<libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
<libosinfo:os id="http://microsoft.com/win/10"/>
</libosinfo:libosinfo>
</metadata>
<memory unit="KiB">4194304</memory>
<currentMemory unit="KiB">4194304</currentMemory>
<vcpu placement="static">4</vcpu>
<os>
<type arch="x86_64" machine="pc-q35-5.2">hvm</type>
<boot dev="hd"/>
</os>
<features>
<acpi/>
<apic/>
<hyperv>
<relaxed state="on"/>
<vapic state="on"/>
<spinlocks state="on" retries="8191"/>
<vendor_id state="on" value="123456789abc"/>
</hyperv>
<kvm>
<hidden state="on"/>
</kvm>
</features>
<cpu mode="host-passthrough" check="none" migratable="on">
<topology sockets="1" dies="1" cores="4" threads="1"/>
<cache mode="passthrough"/>
<feature policy="disable" name="hypervisor"/>
<feature policy="require" name="topoext"/>
</cpu>
<clock offset="localtime">
<timer name="hypervclock" present="yes"/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<pm>
<suspend-to-mem enabled="no"/>
<suspend-to-disk enabled="no"/>
</pm>
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<disk type="file" device="disk">
<driver name="qemu" type="qcow2"/>
<source file="/home/dylan/VM/Windows-10.qcow2"/>
<target dev="vda" bus="virtio"/>
<address type="pci" domain="0x0000" bus="0x04" slot="0x00" function="0x0"/>
</disk>
<disk type="file" device="cdrom">
<driver name="qemu" type="raw"/>
<source file="/home/dylan/VM/win.iso"/>
<target dev="sdb" bus="sata"/>
<readonly/>
<address type="drive" controller="0" bus="0" target="0" unit="1"/>
</disk>
<disk type="file" device="cdrom">
<driver name="qemu" type="raw"/>
<source file="/home/dylan/VM/virtio-win-0.1.185.iso"/>
<target dev="sdc" bus="sata"/>
<readonly/>
<address type="drive" controller="0" bus="0" target="0" unit="2"/>
</disk>
<controller type="usb" index="0" model="qemu-xhci" ports="15">
<address type="pci" domain="0x0000" bus="0x02" slot="0x00" function="0x0"/>
</controller>
<controller type="sata" index="0">
<address type="pci" domain="0x0000" bus="0x00" slot="0x1f" function="0x2"/>
</controller>
<controller type="pci" index="0" model="pcie-root"/>
<controller type="pci" index="1" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="1" port="0x8"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x0" multifunction="on"/>
</controller>
<controller type="pci" index="2" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="2" port="0x9"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x1"/>
</controller>
<controller type="pci" index="3" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="3" port="0xa"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x2"/>
</controller>
<controller type="pci" index="4" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="4" port="0xb"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x3"/>
</controller>
<controller type="pci" index="5" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="5" port="0xc"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x4"/>
</controller>
<controller type="pci" index="6" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="6" port="0xd"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x5"/>
</controller>
<controller type="pci" index="7" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="7" port="0xe"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x6"/>
</controller>
<controller type="pci" index="8" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="8" port="0xf"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x7"/>
</controller>
<controller type="virtio-serial" index="0">
<address type="pci" domain="0x0000" bus="0x03" slot="0x00" function="0x0"/>
</controller>
<interface type="network">
<mac address="52:54:00:1f:c1:b9"/>
<source network="default"/>
<model type="e1000e"/>
<address type="pci" domain="0x0000" bus="0x01" slot="0x00" function="0x0"/>
</interface>
<serial type="pty">
<target type="isa-serial" port="0">
<model name="isa-serial"/>
</target>
</serial>
<console type="pty">
<target type="serial" port="0"/>
</console>
<channel type="spicevmc">
<target type="virtio" name="com.redhat.spice.0"/>
<address type="virtio-serial" controller="0" bus="0" port="1"/>
</channel>
<input type="mouse" bus="ps2"/>
<input type="keyboard" bus="ps2"/>
<sound model="ich9">
<address type="pci" domain="0x0000" bus="0x00" slot="0x1b" function="0x0"/>
</sound>
<hostdev mode="subsystem" type="pci" managed="yes">
<source>
<address domain="0x0000" bus="0x05" slot="0x00" function="0x0"/>
</source>
<address type="pci" domain="0x0000" bus="0x05" slot="0x00" function="0x0"/>
</hostdev>
<hostdev mode="subsystem" type="pci" managed="yes">
<source>
<address domain="0x0000" bus="0x05" slot="0x00" function="0x1"/>
</source>
<address type="pci" domain="0x0000" bus="0x06" slot="0x00" function="0x0"/>
</hostdev>
<redirdev bus="usb" type="spicevmc">
<address type="usb" bus="0" port="1"/>
</redirdev>
<redirdev bus="usb" type="spicevmc">
<address type="usb" bus="0" port="2"/>
</redirdev>
<memballoon model="virtio">
<address type="pci" domain="0x0000" bus="0x07" slot="0x00" function="0x0"/>
</memballoon>
</devices>
</domain>
I hope we could fine something, thank’s you for reading me
(sorry if my english is not perfect )