← Back to server info

🐧 GPU Passthrough on Pop!_OS

Run Windows games at native GPU performance inside a VM

⚠️ You need two GPUs — one for Linux (can be integrated/iGPU), one to pass through to Windows. Single-GPU passthrough exists but is much harder.

Prerequisites

Step 1: Enable Virtualization in BIOS

Reboot into BIOS/UEFI

Look for and enable:

Also disable Secure Boot (causes issues with VFIO).

Step 2: Enable IOMMU in Pop!_OS

Edit kernelstub config

sudo kernelstub -a "intel_iommu=on iommu=pt"

For AMD CPUs, use:

sudo kernelstub -a "amd_iommu=on iommu=pt"

Reboot after this.

Step 3: Verify IOMMU is Working

dmesg | grep -i iommu

You should see lines about IOMMU being enabled. If not, double-check BIOS settings.

Step 4: Find Your GPU's PCI IDs

lspci -nn | grep -i nvidia

You'll see something like:

01:00.0 VGA compatible controller [0300]: NVIDIA Corporation [10de:2684]
01:00.1 Audio device [0403]: NVIDIA Corporation [10de:22ba]

Note those IDs in brackets: 10de:2684 and 10de:22ba

Step 5: Bind GPU to VFIO Driver

Create a modprobe config

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

Add this line (using YOUR IDs from step 4):

options vfio-pci ids=10de:2684,10de:22ba

Then update initramfs:

sudo update-initramfs -u

Reboot. Your 4090 will now be reserved for the VM.

Step 6: Install VM Software

sudo apt install qemu-kvm libvirt-daemon-system virt-manager ovmf

Add yourself to the libvirt group:

sudo usermod -aG libvirt $USER

Log out and back in.

Step 7: Create Windows VM

Open Virtual Machine Manager

1. Click Create new VM

2. Select your Windows 11 ISO

3. Give it 8GB+ RAM, 4+ CPU cores

4. Create a 100GB+ disk

5. Check "Customize before install"

Step 8: Add Your GPU

In the VM settings (before first boot)

1. Click Add HardwarePCI Host Device

2. Select your NVIDIA GPU (the VGA one)

3. Repeat for the NVIDIA Audio device

4. Remove the virtual display (Spice/QXL) — you'll use real monitor

Step 9: Install Windows + Drivers

1. Boot the VM — connect a monitor to your 4090

2. Install Windows normally

3. Install NVIDIA drivers from nvidia.com

4. Install Minecraft Bedrock from Microsoft Store

Step 10: Play!

In Minecraft: PlayServersAdd Server

Address: mc.kerricklong.com

Port: 19132

💡 Tip: For switching keyboard/mouse between host and VM, look into Looking Glass or use a USB switch/passthrough.