Files
public/Linux/GPU Passthrough.md

141 lines
1.8 KiB
Markdown
Raw Normal View History

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
> ```