D1Ck3n
December 23, 2020, 3:25pm
1
Hey guys,
for me, GPU passthrough worked just fine with the 5700xt, but since I swapped my MSI b450 Tomahawk for a MSI b450 Tomahawk MAX, I can’t get any video output through my guest GPU. In Windows 10, I only get the error code 43 and that no AMD driver is installed. I suspect that this is the problem. The guest GPU is recognised normally by the host system.
I mentioned something else about this in the thread.
strange, after i have to replace my motherboard (old one MSI B450 Tomahawk, new one MSI B450 Tomahawk MAX ) i cant get any output from my guest GPU anymore
it shows always error code 43 and the amd driver software show me a message that the AMD Driver is not installed or does not work properly.
[image]
this is my dmesg output:
[ 1874.346696] vfio-pci 0000:28:00.0: BAR 0: can't reserve [mem 0xd0000000-0xdfffffff 64bit pref]
[ 1874.346703] vfio-pci 0000:28:00.0: BAR 0: can't reserve [mem 0xd0000000-0xdfffffff 64bit pref]
[ 1874.346708] vfio-pci 0000:28:00.0: BAR 0: can't reserve [mem 0xd0000000-0xdfffffff 64bit pref]
[ 1874.346715] vfio-pci 0000:28:00.0: BAR 0: can't reserve [mem 0xd0000000-0xdfffffff 64bit pref]
[ 1874.346720] vfio-pci 0000:28:00.0: BAR 0: can't reserve [mem 0xd0000000-0xdfffffff 64bit pref]
[ 1874.346727] vfio-pci 0000:28:00.0: BAR 0: can't reserve [mem 0xd0000000-0xdfffffff 64bit pref]
[ 1874.346732] vfio-pci 0000:28:00.0: BAR 0: can't reserve [mem 0xd0000000-0xdfffffff 64bit pref]
[ 1874.346739] vfio-pci 0000:28:00.0: BAR 0: can't reserve [mem 0xd0000000-0xdfffffff 64bit pref]
[ 1874.346744] vfio-pci 0000:28:00.0: BAR 0: can't reserve [mem 0xd0000000-0xdfffffff 64bit pref]
[ 1874.346751] vfio-pci 0000:28:00.0: BAR 0: can't reserve [mem 0xd0000000-0xdfffffff 64bit pref]
[ 1874.346756] vfio-pci 0000:28:00.0: BAR 0: can't reserve [mem 0xd0000000-0xdfffffff 64bit pref]
[ 1874.346763] vfio-pci 0000:28:00.0: BAR 0: can't reserve [mem 0xd0000000-0xdfffffff 64bit pref]
[ 1874.346768] vfio-pci 0000:28:00.0: BAR 0: can't reserve [mem 0xd0000000-0xdfffffff 64bit pref]
[ 1874.346775] vfio-pci 0000:28:00.0: BAR 0: can't reserve [mem 0xd0000000-0xdfffffff 64bit pref]
[ 1874.346785] vfio-pci 0000:28:00.0: BAR 0: can't reserve [mem 0xd0000000-0xdfffffff 64bit pref]
[ 1874.346792] vfio-pci 0000:28:00.0: BAR 0: can't reserve [mem 0xd0000000-0xdfffffff 64bit pref]
[ 1874.346799] vfio-pci 0000:28:00.0: BAR 0: can't reserve [mem 0xd0000000-0xdfffffff 6…
My system:
OS: Manjaro Linux x86_64
Host: MS-7C02 1.0
Kernel: 5.9.11-3-MANJARO
Uptime: 26 mins
Packages: 2085 (pacman), 3 (snap)
Shell: bash 5.0.18
Resolution: 1920x1080, 1920x1080, 1920x1080
DE: Cinnamon
WM: Mutter (Muffin)
WM Theme: Mint-Y-Dark-Teal (Mint-Y-Dark)
Theme: Mint-Y-Dark-Teal [GTK2/3]
Icons: Papirus-Dark-Maia [GTK2/3]
Terminal: tilix
CPU: AMD Ryzen 5 2600X (12) @ 3.957GHz
GPU: AMD ATI Radeon RX 5600 OEM/5600 XT / 5700/5700 XT
GPU: NVIDIA GeForce RTX 2080 Rev. A
Memory: 4493MiB / 32036MiB
I am super bummed and don’t know what else to try.
1 Like
wendell
December 23, 2020, 3:47pm
2
bios issue, make sure iommu is enabled, not just on auto, enable above 4g decoding, enable resizable bar, disable csm
1 Like
D1Ck3n
December 23, 2020, 5:18pm
3
Hey @wendell
I already have the bios up to date and IOMMU enabled, but I did not have 4g decoding and resizable bar enabled. I have now done this, but now the VM remains completely black. Windows does not boot. Virtual Manager shows that the VM is running, but there is no signal either via Spice or via the video output.
1 Like
wendell
December 23, 2020, 5:19pm
4
csm?
Oh, if you aren’t getting the kernel errors anymore, you need to update your config to hide the fact it’s a VM.
1 Like
D1Ck3n
December 23, 2020, 6:09pm
5
the problem with changing csm to uefi is that i cant boot my OS anymore
the BAR 0 errors are gone!
[2.193568] vfio-pci 0000:28:00.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=none
[ 2.209520] vfio_pci: add [1002:731f[ffffffff:ffffffff]] class 0x000000/00000000
[ 2.226188] vfio_pci: add [1002:ab38[ffffffff:ffffffff]] class 0x000000/00000000
[ 49.589203] vfio-pci 0000:28:00.0: enabling device (0000 -> 0003)
[ 49.589322] vfio-pci 0000:28:00.0: AMD_NAVI10: version 1.1
[ 49.589323] vfio-pci 0000:28:00.0: AMD_NAVI10: performing pre-reset
[ 49.589401] vfio-pci 0000:28:00.0: AMD_NAVI10: performing reset
[ 49.590122] vfio-pci 0000:28:00.0: AMD_NAVI10: amdgpu_discovery_reg_base_init failed, using legacy method
[ 49.590130] vfio-pci 0000:28:00.0: Invalid PCI ROM header signature: expecting 0xaa55, got 0xffff
[ 49.590135] vfio-pci 0000:28:00.0: AMD_NAVI10: amdgpu_get_bios failed: -22
[ 49.590135] vfio-pci 0000:28:00.0: AMD_NAVI10: failed to reset device
[ 49.590136] vfio-pci 0000:28:00.0: AMD_NAVI10: performing post-reset
[ 49.590209] vfio-pci 0000:28:00.0: AMD_NAVI10: reset result = 0
[ 49.590328] vfio-pci 0000:28:00.0: vfio_ecap_init: hiding ecap 0x19@0x270
[ 49.590337] vfio-pci 0000:28:00.0: vfio_ecap_init: hiding ecap 0x1b@0x2d0
[ 49.590341] vfio-pci 0000:28:00.0: vfio_ecap_init: hiding ecap 0x25@0x400
[ 49.590342] vfio-pci 0000:28:00.0: vfio_ecap_init: hiding ecap 0x26@0x410
[ 49.590343] vfio-pci 0000:28:00.0: vfio_ecap_init: hiding ecap 0x27@0x440
[ 49.669373] vfio-pci 0000:28:00.0: AMD_NAVI10: version 1.1
[ 49.669375] vfio-pci 0000:28:00.0: AMD_NAVI10: performing pre-reset
[ 49.669455] vfio-pci 0000:28:00.0: AMD_NAVI10: performing reset
[ 49.988441] vfio-pci 0000:28:00.0: AMD_NAVI10: bus reset disabled? yes
[ 49.988446] vfio-pci 0000:28:00.0: AMD_NAVI10: SMU response reg: 0, sol reg: 0, mp1 intr enabled? no, bl ready? yes
[ 49.988449] vfio-pci 0000:28:00.0: AMD_NAVI10: performing post-reset
[ 50.002531] vfio-pci 0000:28:00.0: AMD_NAVI10: reset result = 0
[ 60.409250] vfio-pci 0000:28:00.0: AMD_NAVI10: version 1.1
[ 60.409252] vfio-pci 0000:28:00.0: AMD_NAVI10: performing pre-reset
[ 60.409323] vfio-pci 0000:28:00.0: AMD_NAVI10: performing reset
[ 60.726753] vfio-pci 0000:28:00.0: AMD_NAVI10: bus reset disabled? yes
[ 60.726758] vfio-pci 0000:28:00.0: AMD_NAVI10: SMU response reg: 0, sol reg: 0, mp1 intr enabled? no, bl ready? yes
[ 60.726761] vfio-pci 0000:28:00.0: AMD_NAVI10: performing post-reset
[ 60.742526] vfio-pci 0000:28:00.0: AMD_NAVI10: reset result = 0
but with my old motherboard csm was no issue
1 Like
wendell
December 23, 2020, 6:21pm
6
well one problem at a time. with bar errors gone, then you may now be just facing the fact you need to hide your hypervisor.
try that?
1 Like
D1Ck3n
December 23, 2020, 6:24pm
7
yes, here is my VM XML:
<domain type="kvm">
<name>win10-2</name>
<uuid>96538a1c-d332-405f-b27c-64bbcca077f2</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">16777216</memory>
<currentMemory unit="KiB">16777216</currentMemory>
<vcpu placement="static">8</vcpu>
<os>
<type arch="x86_64" machine="pc-q35-5.0">hvm</type>
<loader readonly="yes" type="pflash">/usr/share/ovmf/x64/OVMF_CODE.fd</loader>
<nvram>/var/lib/libvirt/qemu/nvram/win10-2_VARS.fd</nvram>
<boot dev="hd"/>
</os>
<features>
<acpi/>
<apic/>
<hyperv>
<relaxed state="on"/>
<vapic state="on"/>
<spinlocks state="on" retries="8191"/>
<vendor_id state="on" value="randomid"/>
</hyperv>
<kvm>
<hidden state="on"/>
</kvm>
<vmport state="off"/>
</features>
<cpu mode="host-model" check="partial">
<topology sockets="1" dies="1" cores="4" threads="2"/>
</cpu>
<clock offset="localtime">
<timer name="rtc" tickpolicy="catchup"/>
<timer name="pit" tickpolicy="delay"/>
<timer name="hpet" present="no"/>
<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="/var/lib/libvirt/images/win10.qcow2"/>
<target dev="sda" bus="sata"/>
<address type="drive" controller="0" bus="0" target="0" unit="0"/>
</disk>
<disk type="file" device="disk">
<driver name="qemu" type="qcow2"/>
<source file="/mnt/7057ea32-d9de-43d9-a03f-9db53e768cee/Win10_Games.qcow2"/>
<target dev="sdb" bus="sata"/>
<address type="drive" controller="0" bus="0" target="0" unit="1"/>
</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="0x10"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x0" multifunction="on"/>
</controller>
<controller type="pci" index="2" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="2" port="0x11"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x1"/>
</controller>
<controller type="pci" index="3" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="3" port="0x12"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x2"/>
</controller>
<controller type="pci" index="4" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="4" port="0x13"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x3"/>
</controller>
<controller type="pci" index="5" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="5" port="0x14"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x4"/>
</controller>
<controller type="pci" index="6" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="6" port="0x15"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x5"/>
</controller>
<controller type="pci" index="7" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="7" port="0x16"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x6"/>
</controller>
<controller type="pci" index="8" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="8" port="0x17"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x7"/>
</controller>
<controller type="pci" index="9" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="9" port="0x18"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x0" multifunction="on"/>
</controller>
<controller type="pci" index="10" model="pcie-root-port">
<model name="pcie-root-port"/>
<target chassis="10" port="0x19"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x1"/>
</controller>
<controller type="pci" index="11" model="pcie-to-pci-bridge">
<model name="pcie-pci-bridge"/>
<address type="pci" domain="0x0000" bus="0x06" slot="0x00" function="0x0"/>
</controller>
<controller type="virtio-serial" index="0">
<address type="pci" domain="0x0000" bus="0x03" slot="0x00" function="0x0"/>
</controller>
<interface type="direct">
<mac address="52:54:00:18:e3:4d"/>
<source dev="enp34s0" mode="bridge"/>
<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="tablet" bus="usb">
<address type="usb" bus="0" port="3"/>
</input>
<input type="mouse" bus="ps2"/>
<input type="keyboard" bus="ps2"/>
<graphics type="spice" autoport="yes">
<listen type="address"/>
<image compression="off"/>
</graphics>
<sound model="ich9">
<address type="pci" domain="0x0000" bus="0x00" slot="0x1b" function="0x0"/>
</sound>
<sound model="ich9">
<address type="pci" domain="0x0000" bus="0x0b" slot="0x01" function="0x0"/>
</sound>
<video>
<model type="virtio" heads="1" primary="yes"/>
<address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x0"/>
</video>
<hostdev mode="subsystem" type="usb" managed="yes">
<source>
<vendor id="0x046d"/>
<product id="0xc332"/>
</source>
<address type="usb" bus="0" port="1"/>
</hostdev>
<hostdev mode="subsystem" type="usb" managed="yes">
<source>
<vendor id="0x046d"/>
<product id="0xc33f"/>
</source>
<address type="usb" bus="0" port="2"/>
</hostdev>
<hostdev mode="subsystem" type="usb" managed="yes">
<source>
<vendor id="0x1532"/>
<product id="0x0526"/>
</source>
<address type="usb" bus="0" port="6"/>
</hostdev>
<hostdev mode="subsystem" type="pci" managed="yes">
<source>
<address domain="0x0000" bus="0x28" slot="0x00" function="0x0"/>
</source>
<address type="pci" domain="0x0000" bus="0x04" slot="0x00" function="0x0"/>
</hostdev>
<hostdev mode="subsystem" type="pci" managed="yes">
<source>
<address domain="0x0000" bus="0x28" slot="0x00" function="0x1"/>
</source>
<address type="pci" domain="0x0000" bus="0x05" slot="0x00" function="0x0"/>
</hostdev>
<redirdev bus="usb" type="spicevmc">
<address type="usb" bus="0" port="4"/>
</redirdev>
<redirdev bus="usb" type="spicevmc">
<address type="usb" bus="0" port="5"/>
</redirdev>
<memballoon model="virtio">
<address type="pci" domain="0x0000" bus="0x07" slot="0x00" function="0x0"/>
</memballoon>
</devices>
</domain>
i refer to the arch wiki:https://wiki.archlinux.org/index.php/PCI_passthrough_via_OVMF#Video_card_driver_virtualisation_detection
1 Like
wendell
December 23, 2020, 6:35pm
8
but do you still get code43 in device manager?
1 Like
D1Ck3n
December 23, 2020, 6:45pm
9
the vm start but only with a black screen
before i did the change in BIOS i had the spice to look into windows
1 Like
wendell
December 23, 2020, 7:24pm
10
try to ditch pass through device for now, setup rdp, and rdp into it once it comes up to troubleshoot further
1 Like
D1Ck3n
December 24, 2020, 1:12pm
11
mhhh so virtual manager shows that the vm is running, but it does not start windows i cant reach it with rdp or teamviewer
i get the same on other VMs. i have a Manjaro VM but there is also black screen only.
1 Like
wendell
December 24, 2020, 2:56pm
12
and thats with the passed-through gpu removed?
try making a new vm, no passthrough, leave spice defaults alone, see if it works. if it does then attach the same block device/file for the hard drive, and see if that still works?
do you get the “tianocore” screen at boot via spice now, or no?
1 Like
both the tomahawk and tomahawk max look to share the same PCB design but they still my have some device ID differences and possibly chipset revisions not labled
I don’t know much about linux or VMs but I do just a little, try doing what wendell said with a new VM, I’m betting that device IDs have changed
1 Like
D1Ck3n
December 26, 2020, 12:22am
14
i tried it with a new VM and without guest gpu windows starts normally, but when i add the GPU spice stays black and windows doesn’t boot. i also don’t see the tiancore.
1 Like
wendell
December 26, 2020, 12:37am
15
Ok so the idea there was to enable rdp so you could rdp in after adding the gpu to troubleshoot… did you do that?
1 Like
D1Ck3n
December 26, 2020, 1:06am
16
if i’m honest, i don’t know exactly how to bridge from my host to the vm. It seems to be quite complicated in the Virt Manager.
I have the following NIC setting and also have an IP from my home network, but I cannot ping the VM. What works was Teamviewer, but when I start the VM with guest GPU Teamviewer can’t reach the VM anymore.
1 Like
wendell
December 26, 2020, 1:13am
17
Need rdp. Bridge via the gui before adding the gpu?
1 Like
D1Ck3n
December 26, 2020, 2:04am
18
sorry for the stupid question, is there any easy way to bridge from my linux to the Win10 VM? it seems not so easy with virt manager.
i cannot ping the VM, whether with or without gui. the only way to access the VM is via Teamviewer (but only without a guest gpu) or spice.
1 Like
wendell
December 26, 2020, 2:14am
19
The drop down in the screenshot first option should bridge the vm? At that point it should get a dhcp address in your local network? From there you can rdp in?
1 Like
D1Ck3n
December 26, 2020, 2:38am
20
ah okay, I have found out how to connect bridged!
Apparently the Windows VM won’t boot when the guest GPU is installed. I can’t access it via RDP either.
1 Like