Files
public/Linux/Guides/GPU Passthrough/Host.md
Derek McTavish 5831636d85
2026-04-01 08:33:55 +00:00

2.1 KiB

Linux Host Setup

Enable IOMMU

sudo vim /etc/default/grub

Add amd_iommu=on iommu=pt

GRUB_CMDLINE_LINUX_DEFAULT="... amd_iommu=on iommu=pt"

sudo grub-mkconfig -o /boot/grub/grub.cfg
sudo reboot

Verify

sudo dmesg | grep -i iommu

Find GPU IDs

lspci -nn | grep -E "VGA|Audio"

In my case, I get

  • 10de:28a0
  • 10de:22be

VFIO Module Options

sudo vim /etc/modprobe.d/vfio.conf

Arch

options vfio-pci ids=10de:28a0,10de:22be

Fedora

options vfio-pci ids=10de:28a0,10de:22be disable_vga=1
softdep nvidia pre: vfio-pci
softdep nouveau pre: vfio-pci

Blacklist GPU

sudo vim /etc/modprobe.d/blacklist-gpu.conf

Arch

blacklist nouveau
blacklist nvidia
blacklist nvidia_drm
blacklist nvidia_modeset

Fedora

blacklist nouveau
blacklist nvidia
blacklist nvidia_drm
blacklist nvidia_modeset
blacklist nvidia_uvm
blacklist rivafb
blacklist nvidiafb
blacklist snd_hda_intel

Load VFIO

Arch

sudo vim /etc/mkinitcpio.conf
MODULES=(vfio vfio_iommu_type1 vfio_pci)
sudo mkinitcpio -P
sudo reboot

Fedora

sudo vim /etc/dracut.conf.d/10-vfio.conf
force_drivers+=" vfio vfio_iommu_type1 vfio_pci "
sudo dracut -f
sudo reboot

Confirm Kernel Driver

lspci -nnk -d 10de:28a0
lspci -nnk -d 10de:22be

Install Virtualization Stack

Arch

sudo pacman -S --needed virt-manager qemu-full libvirt dnsmasq ovmf swtpm

Fedora

sudo dnf install @virtualization virt-manager qemu-kvm libvirt-daemon-config-network libvirt-daemon-kvm bridge-utils edk2-ovmf swtpm

User Groups and Permissions

Arch

sudo usermod -aG libvirt,kvm,input,render,libvirt-qemu $USER

Fedora

sudo usermod -aG libvirt,kvm,input,render $USER

Reboot the system.

And now verify:

virsh list --all

If it doesn't error, you're good.