2026-03-26 06:38:29 +00:00
|
|
|
# GPU Passthrough on Linux
|
|
|
|
|
|
|
|
|
|
## Enable IOMMU
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
sudo vim /etc/default/grub
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Add amd_iommu=on iommu=pt
|
|
|
|
|
|
|
|
|
|
`GRUB_CMDLINE_LINUX_DEFAULT="... amd_iommu=on iommu=pt"`
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
sudo grub-mkconfig -o /boot/grub/grub.cfg
|
|
|
|
|
sudo reboot
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Verify
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
sudo dmesg | grep -i iommu
|
|
|
|
|
```
|
2026-03-26 06:38:56 +00:00
|
|
|
|
2026-03-26 06:39:13 +00:00
|
|
|
## Find GPU IDs
|
|
|
|
|
|
2026-03-26 06:38:56 +00:00
|
|
|
```bash
|
|
|
|
|
lspci -nn | grep -E "VGA|Audio"
|
|
|
|
|
```
|
2026-04-01 07:41:02 +00:00
|
|
|
|
|
|
|
|
In my case, I get
|
|
|
|
|
|
|
|
|
|
- `10de:28a0`
|
|
|
|
|
- `10de:22be`
|
|
|
|
|
|
|
|
|
|
## VFIO Module Options
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
sudo vim /etc/modprobe.d/vfio.conf
|
|
|
|
|
```
|
|
|
|
|
|
2026-04-01 08:18:13 +00:00
|
|
|
> ### Arch
|
|
|
|
|
>
|
|
|
|
|
> ```bash
|
|
|
|
|
> options vfio-pci ids=10de:28a0,10de:22be
|
|
|
|
|
> ```
|
|
|
|
|
|
|
|
|
|
> ### Fedora
|
|
|
|
|
>
|
|
|
|
|
> ```bash
|
|
|
|
|
> options vfio-pci ids=10de:28a0,10de:22be disable_vga=1
|
|
|
|
|
> softdep nvidia pre: vfio-pci
|
|
|
|
|
> softdep nouveau pre: vfio-pci
|
|
|
|
|
> ```
|
2026-04-01 07:44:46 +00:00
|
|
|
|
|
|
|
|
## Blacklist GPU
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
sudo vim /etc/modprobe.d/blacklist-gpu.conf
|
|
|
|
|
```
|
|
|
|
|
|
2026-04-01 08:18:13 +00:00
|
|
|
> ### 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
|
|
|
|
|
>
|
|
|
|
|
> ```bash
|
|
|
|
|
> sudo vim /etc/mkinitcpio.conf
|
|
|
|
|
> ```
|
|
|
|
|
>
|
|
|
|
|
> ```
|
|
|
|
|
> MODULES=(vfio vfio_iommu_type1 vfio_pci)
|
|
|
|
|
> ```
|
|
|
|
|
>
|
|
|
|
|
> ```
|
|
|
|
|
> sudo mkinitcpio -P
|
|
|
|
|
> sudo reboot
|
|
|
|
|
> ```
|
|
|
|
|
|
|
|
|
|
> ### Fedora
|
|
|
|
|
>
|
|
|
|
|
> ```bash
|
|
|
|
|
> sudo vim /etc/dracut.conf.d/10-vfio.conf
|
|
|
|
|
> ```
|
|
|
|
|
>
|
|
|
|
|
> ```
|
|
|
|
|
> force_drivers+=" vfio vfio_iommu_type1 vfio_pci "
|
|
|
|
|
> ```
|
|
|
|
|
>
|
|
|
|
|
> ```bash
|
|
|
|
|
> sudo dracut -f
|
|
|
|
|
> ```
|
|
|
|
|
>
|
|
|
|
|
> ```bash
|
|
|
|
|
> sudo reboot
|
|
|
|
|
> ```
|
|
|
|
|
|
|
|
|
|
### Confirm Kernel Driver
|
2026-04-01 07:44:46 +00:00
|
|
|
|
2026-04-01 08:18:13 +00:00
|
|
|
```bash
|
|
|
|
|
lspci -nnk -d 10de:28a0
|
2026-04-01 07:44:46 +00:00
|
|
|
```
|
2026-04-01 08:18:13 +00:00
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
lspci -nnk -d 10de:22be
|
2026-04-01 07:44:46 +00:00
|
|
|
```
|
|
|
|
|
|
2026-04-01 08:18:13 +00:00
|
|
|
## Install Virtualization Stack
|
2026-04-01 07:44:46 +00:00
|
|
|
|
2026-04-01 08:18:13 +00:00
|
|
|
> ### Arch
|
|
|
|
|
>
|
|
|
|
|
> ```bash
|
|
|
|
|
> sudo pacman -S --needed virt-manager qemu-full libvirt dnsmasq ovmf swtpm
|
|
|
|
|
> ```
|
|
|
|
|
|
|
|
|
|
> ### Fedora
|
|
|
|
|
>
|
|
|
|
|
> ```bash
|
|
|
|
|
> sudo dnf install @virtualization virt-manager qemu-kvm libvirt-daemon-config-network libvirt-daemon-kvm bridge-utils edk2-ovmf swtpm
|
|
|
|
|
> ```
|