Simple, single amd gpu passthrough on intel platform.
We will be using some of the components from risingprismtv/single-gpu-passthrough guide; however, simplified it for plasma-wayland
- OS : arch linux
- Knl: 6.11+
- DE : plasma-wayland (only)
- DM : sddm
- dGPU: rdna2
- CPU: intel
- VT-d and VT-x capable motherboard
- Enable VT-d and VT-x in your motherboards BIOS
- Disable REBAR and 4G Decode (IMPORTANT)
- Disable CSM
- Add the following parameters to your bootloader:
intel_iommu=on iommu=pt
- Restart
- Follow the guide: https://gitlab.com/risingprismtv/single-gpu-passthrough/-/wikis/3)-IOMMU-Groups
Note down the Bus ID for GPU:
-VGA (example) 03:00.0
-AUDIO (example) 03:00.1
- Follow the guide: https://gitlab.com/risingprismtv/single-gpu-passthrough/-/wikis/4)-Configuration-of-libvirt
- Follow the guide: https://gitlab.com/risingprismtv/single-gpu-passthrough/-/wikis/5)-Configuring-Virtual-Machine-Manage
Warning the following may result in permanent DAMAGE, follow at your own RISK!
- Find your gpu vbios here and Download it: https://www.techpowerup.com/vgabios/
- Rename the Vbios file to: patched.rom
- Create a Directory to store and use the vbios:
cd ~/Downloads
sudo mkdir /var/lib/libvirt/vgabios
cp ./patched.rom /var/lib/libvirt/vgabios/
cd /var/lib/libvirt/vgabios/
sudo chmod -R 660 patched.rom
sudo chown YOURUSERNAME:YOURUSERNAME patched.rom
- Adding the vbios to the VM by following the guide, make sure to use the correct directory: https://gitlab.com/risingprismtv/single-gpu-passthrough/-/wikis/8)-Attaching-the-GPU-to-your-VM
Passing USB & Audio Controller
- Follow: https://gitlab.com/risingprismtv/single-gpu-passthrough/-/wikis/8)-Attaching-the-GPU-to-your-VM#adding-your-gpu-and-your-rom
- Instead of passing the GPU, pass-through your PCIE group(every device in your group) for your Usb and Audio Controller
Scripts to prevent host from sleeping and etc.
- Follow the guide: https://gitlab.com/risingprismtv/single-gpu-passthrough/-/wikis/7)-scripts-&-logfiles
- Edit /usr/local/bin/vfio-startup to look like the following:
#!/bin/bash
killall kwin_wayland
systemctl stop sddm.service
- Edit usr/local/bin/vfio-teardown to look like the following:
#!/bin/bash
systemctl restart sddm.service
- Edit /etc/libvirt/hooks/qemu to change the name of the default VM name to match yours.
- CPU Performace Tuning, https://wiki.archlinux.org/title/PCI_passthrough_via_OVMF#CPU_pinning
- Potential Anti-Cheat Help, Libvirt Part Only (not tested, use at your own risk) https://docs.vrchat.com/docs/using-vrchat-in-a-virtual-machine
- Black screen after Guest(VM) shutdown, As far as I can tell, this is caused by resizeable bar on amdgpu.