3.1 KiB
GPU Passthrough (VFIO) Notes
Host/guest checklist for GPU passthrough (or virtual GPU) when building Debian VMs in Proxmox / virt-manager style setups.
Host: Pick GPU and enable passthrough
List GPUs on the host:
lspci | egrep -i 'vga|3d|display'
Note the PCI ID of the card you want to pass, e.g. 0000:01:00.0.
On the host, enable IOMMU and passthrough (Proxmox/virt-manager style):
- Add appropriate kernel params (example Intel):
intel_iommu=on iommu=pt
- Reboot and verify:
dmesg | egrep -i 'iommu|dmar'
Bind the GPU to vfio (or equivalent passthrough driver) on the host so the VM can own it exclusively.
Host: Create the VM with a VGA/GPU device
Create a new VM (Proxmox or virt-manager):
- Firmware: UEFI/OVMF if possible
- Machine type: Q35/modern
- CPU: host-passthrough (or similar)
Add GPU to the VM:
- Add PCI device: select your GPU (and its audio function if present)
- For a purely virtual GPU instead (no passthrough), pick Virtio GPU or QXL as the display adapter
Add display channel:
- If you want a normal graphical console, use SPICE (virt-manager) or Proxmox’s standard console display
- Add a Channel (spice) device for clipboard/resize when using SPICE
Guest: Verify what GPU the VM sees
Inside the guest OS (your Debian VM):
lspci | egrep -i 'vga|3d|display'
lsmod | egrep 'nvidia|amdgpu|radeon|virtio_gpu'
Interpretation:
NVIDIA Corporation ...→ real NVIDIA passthroughAdvanced Micro Devices, Inc. [AMD/ATI] ...→ AMD passthroughRed Hat, Inc. Virtio GPUorQXL→ virtual GPU only
Guest: Install and test drivers
If NVIDIA passthrough
Install driver and tools:
sudo apt update
sudo apt install nvidia-driver-535 nvidia-smi
(Adjust version to what Debian suggests.)
Test:
nvidia-smi
watch -n 1 nvidia-smi
The watch line must be watch -n 1 nvidia-smi.
Quick 3D check:
sudo apt install mesa-utils
glxgears
GPU utilization should rise in nvidia-smi while glxgears runs.
If AMD passthrough
Inspect and ensure amdgpu is used:
sudo lshw -c video
lsmod | grep amdgpu
Install tools:
sudo apt install mesa-utils
# optionally:
sudo apt install amdgpu-tools # or ROCm SMI tools if available
Monitor:
watch -n 1 sudo amd-smi
(Or the ROCm SMI CLI in your distro.)
If only Virtio/QXL is present
- You have a virtual GPU, not the physical one.
- You can still use
glxgearsand basic acceleration, but host GPU usage is not controlled directly from inside this VM. - To use the physical card, change the VM to PCI passthrough as above.
Guest: Console and SPICE/GUI behavior
- With SPICE display and the spice channel present, dynamic resolution and clipboard should work once guest tools are installed.
- If a graphical display manager (e.g. LightDM) misbehaves, you can force a TTY-only boot:
sudo systemctl set-default multi-user.target
sudo systemctl disable --now lightdm.service
This gives you a reliable text console, and you can work purely over SSH for GPU workloads.