Hi there. I saw many videos from space invader and read all along this Forum but I did not find a solution so far.
I am just testing Unraid 6.8.3. and everything works fine. I set up a windows 10 VM but wanted to improve the video quality, for using this VM for games and video editing purposes.
My question is : Is it possible to passthrough the graphics from the AMD Ryzen APU to the windows VM?
I have got a AMD Ryzen 5 Pro 4650g APU with graphics in chip. and wanted to passthrough the graphics to a VM.. there is no further GPU in the server.
The System Devices shows the card as:
IOMMU group 14:[1002:1636] 05:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Renoir (rev d9)
it is the only device in this group.
Ok so far dos good. I tried to change the graphics from VNC to AMD Renoir (05:00.0) and started the VM.
The machine is not getting online. I cannot connect via Teamviewer or VNC.
the log file (1) is like is at the end...
Ok i do not have a bios file. there is none "on tech power up".
So I tried to dump the bios file with the script provided by space invader.
Installed the script and it gave an error that bios couldn't be dumped and I should install vife config plugin to bind the graphics to the vfio.
I installed the plugin and run the script which binds the card to vfio. I rebooted the system (btw I only use web access, there is no monitor attached to the server)
After retrying dumbing the bios again gave the same error: (Error 1).
I tried to restart the VM with this binding and it resulted in the same problem. The vm started but was not accessible.
Any help is welcome.... Or do I have to just buy another gpu??
Thank you for your help in Advance!
Marc
Error 1:
"Script location: /tmp/user.scripts/tmpScripts/Dump VBIOS/script
Note that closing this window will abort the execution of this script
You have selected this device to dump the vbios from
05:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Renoir (rev d9)
This does look like a valid GPU to me. Continuing .........
Checking if location to put vbios file exists
Vbios folder already exists
I will try and dump the vbios without disconnecting and reconnecting the GPU
This normally only works if the GPU is NOT the Primary or the only GPU
I will check the vbios at the end. If it seems wrong I will then retry after disconnecting the GPU
Defining temp vm with gpu attached
Domain dumpvbios defined from /tmp/dumpvbios.xml
Starting the temp vm to allow dump
Domain dumpvbios started
Waiting for a few seconds .....
Stopping the temp vm
Domain dumpvbios destroyed
Removing the temp vm
Domain dumpvbios has been undefined
/tmp/user.scripts/tmpScripts/Dump VBIOS/script: line 298: rom: Permission denied
Okay dumping vbios file named AMD-APU-Ryzen4650G.rom to the location /mnt/user/isos/vbios/
cat: rom: No such file or directory
Um.... somethings gone wrong and I couldn't dump the vbios for some reason
Sometimes when this happens all we need to do to fix this is 'stub' or 'bind to the vfio' the gpu and reboot the server
This can be done in Unraid 6.8.3 with the use of the vfio config plugin or if you are on Unraid 6.9 or above it can be done
directly from the gui in Tools/System Devices .....So please do this and run the script again"
LOGFILE 1:
2020-12-30 14:03:05.783+0000: starting up libvirt version: 5.10.0, qemu version: 4.2.0, kernel: 4.19.98-Unraid, hostname: Tower
LC_ALL=C \
PATH=/bin:/sbin:/usr/bin:/usr/sbin \
HOME='/var/lib/libvirt/qemu/domain-32-Windows 10' \
XDG_DATA_HOME='/var/lib/libvirt/qemu/domain-32-Windows 10/.local/share' \
XDG_CACHE_HOME='/var/lib/libvirt/qemu/domain-32-Windows 10/.cache' \
XDG_CONFIG_HOME='/var/lib/libvirt/qemu/domain-32-Windows 10/.config' \
QEMU_AUDIO_DRV=none \
/usr/local/sbin/qemu \
-name 'guest=Windows 10,debug-threads=on' \
-S \
-object 'secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-32-Windows 10/master-key.aes' \
-blockdev '{"driver":"file","filename":"/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd","node-name":"libvirt-pflash0-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-pflash0-format","read-only":true,"driver":"raw","file":"libvirt-pflash0-storage"}' \
-blockdev '{"driver":"file","filename":"/etc/libvirt/qemu/nvram/f0686497-8ef9-51e9-56fa-27f8c5a495d6_VARS-pure-efi.fd","node-name":"libvirt-pflash1-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-pflash1-format","read-only":false,"driver":"raw","file":"libvirt-pflash1-storage"}' \
-machine pc-i440fx-4.2,accel=kvm,usb=off,dump-guest-core=off,mem-merge=off,pflash0=libvirt-pflash0-format,pflash1=libvirt-pflash1-format \
-cpu host,hv-time,hv-relaxed,hv-vapic,hv-spinlocks=0x1fff,hv-vendor-id=none \
-m 4096 \
-overcommit mem-lock=off \
-smp 8,sockets=1,cores=8,threads=1 \
-uuid f0686497-8ef9-51e9-56fa-27f8c5a495d6 \
-display none \
-no-user-config \
-nodefaults \
-chardev socket,id=charmonitor,fd=33,server,nowait \
-mon chardev=charmonitor,id=monitor,mode=control \
-rtc base=localtime \
-no-hpet \
-no-shutdown \
-boot strict=on \
-device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x7.0x7 \
-device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x7 \
-device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x7.0x1 \
-device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x7.0x2 \
-device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x3 \
-blockdev '{"driver":"file","filename":"/mnt/user/domains/Windows 10/vdisk1.img","node-name":"libvirt-3-storage","cache":{"direct":false,"no-flush":false},"auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-3-format","read-only":false,"cache":{"direct":false,"no-flush":false},"driver":"raw","file":"libvirt-3-storage"}' \
-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=libvirt-3-format,id=virtio-disk2,bootindex=1,write-cache=on \
-blockdev '{"driver":"file","filename":"/mnt/user/isos/Win10_1909_German_x64.iso","node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-2-format","read-only":true,"driver":"raw","file":"libvirt-2-storage"}' \
-device ide-cd,bus=ide.0,unit=0,drive=libvirt-2-format,id=ide0-0-0,bootindex=2 \
-blockdev '{"driver":"file","filename":"/mnt/user/isos/virtio-win-0.1.173-2.iso","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-1-format","read-only":true,"driver":"raw","file":"libvirt-1-storage"}' \
-device ide-cd,bus=ide.0,unit=1,drive=libvirt-1-format,id=ide0-0-1 \
-netdev tap,fd=35,id=hostnet0,vhost=on,vhostfd=36 \
-device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:db:42:da,bus=pci.0,addr=0x2 \
-chardev pty,id=charserial0 \
-device isa-serial,chardev=charserial0,id=serial0 \
-chardev socket,id=charchannel0,fd=38,server,nowait \
-device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 \
-device usb-tablet,id=input0,bus=usb.0,port=1 \
-device ich9-intel-hda,id=sound0,bus=pci.0,addr=0x9 \
-device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 \
-device vfio-pci,host=0000:05:00.0,id=hostdev0,bus=pci.0,addr=0x5 \
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
-msg timestamp=on
2020-12-30 14:03:05.783+0000: Domain id=32 is tainted: high-privileges
2020-12-30 14:03:05.783+0000: Domain id=32 is tainted: host-cpu
char device redirected to /dev/pts/0 (label charserial0)
2020-12-30T14:03:19.211200Z qemu-system-x86_64: warning: guest updated active QH