Proxmox host steps
1. Verify IOMMU enabled
Kernel cmdline should already contain:
amd_iommu=on iommu=pt
Verify:
dmesg | grep -e IOMMU -e AMD-Vi
2. Get AMD device IDs
lspci -nn -s 79:00.0
lspci -nn -s 79:00.1
Example result IDs:
1002:13c0
1002:1640
3. Bind GPU + audio to VFIO
Create:
/etc/modprobe.d/vfio.conf
Contents:
options vfio-pci ids=1002:13c0,1002:1640
4. Ensure VFIO modules load
Append to:
/etc/modules
vfio
vfio_pci
vfio_iommu_type1
vfio_virqfd
5. Prevent framebuffer grabbing (ONLY if needed)
If host still touches the iGPU:
Edit GRUB cmdline:
/etc/default/grub
Add:
video=efifb:off
Then:
update-grub
6. Rebuild initramfs
update-initramfs -u
reboot
7. Verify VFIO binding
After reboot:
lspci -nnk -s 79:00.0
lspci -nnk -s 79:00.1
Should show:
Kernel driver in use: vfio-pci
8. Create VM
Recommended:
- BIOS: OVMF (UEFI)
- Machine: q35
- CPU: host
- Display: none
- Network: virtio
- Disk: virtio-scsi
9. Attach GPU
In VM hardware:
Add PCI Device
Add:
79:00.079:00.1
Enable:
- PCIe
- All Functions OFF
- ROM-Bar ON
Debian guest steps
1. Install minimal Debian
Install:
- SSH server
- standard utilities
NO desktop environment.
2. Install lightweight GUI
apt update
apt install \
xorg \
openbox \
lightdm \
xterm
3. Install AMD firmware + VAAPI
apt install \
firmware-amd-graphics \
mesa-va-drivers \
vainfo
Verify:
vainfo
Should show:
- H264
- HEVC
- VAAPI support
4. Install Chrome
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
apt install ./google-chrome-stable_current_amd64.deb
5. Enable Chrome VAAPI
Create Chrome launcher flags:
mkdir -p ~/.config/chrome-flags.conf
Or launch manually:
google-chrome \
--enable-features=VaapiVideoDecoder \
--use-gl=egl
Verify:
chrome://gpu
6. Configure auto-login
LightDM:
/etc/lightdm/lightdm.conf
Add:
[Seat:*]
autologin-user=YOURUSER
autologin-session=openbox
7. Autostart Chrome
Create:
~/.config/openbox/autostart
Contents:
google-chrome --start-maximized &
Or kiosk:
google-chrome --kiosk https://startpage &
8. Install Sunshine
apt install sunshine
Enable:
systemctl enable sunshine
systemctl start sunshine
9. Pair Moonlight
From client:
moonlight pair <vm-ip>
Then connect.
10. Optional: install RustDesk backup access
apt install rustdesk
Useful if Sunshine/display breaks.