| name | virtualization |
| description | GPU passthrough and virtualization for Bazzite. KVM/VFIO setup, Looking Glass (kvmfr),
USB hotplug for VMs, and libvirt configuration. Use when users need GPU passthrough
or advanced virtualization features.
|
Virtualization - Bazzite GPU Passthrough & KVM
Overview
Advanced virtualization features for Bazzite including KVM, VFIO GPU passthrough, Looking Glass (kvmfr), and USB hotplug for VMs.
Quick Reference
| Command | Description |
|---|
ujust setup-virtualization | Main virtualization setup |
ujust setup-virtualization virt-on | Enable KVM/libvirt |
ujust setup-virtualization virt-off | Disable KVM/libvirt |
ujust setup-virtualization vfio-on | Enable VFIO passthrough |
ujust setup-virtualization vfio-off | Disable VFIO passthrough |
ujust setup-virtualization kvmfr | Setup Looking Glass |
ujust setup-virtualization usbhp-on | Enable USB hotplug |
ujust setup-virtualization usbhp-off | Disable USB hotplug |
KVM/Libvirt
Enable Virtualization
ujust setup-virtualization virt-on
Enables:
- libvirtd service
- User permissions for VMs
- Default network
- QEMU/KVM backend
Disable Virtualization
ujust setup-virtualization virt-off
VFIO GPU Passthrough
Enable VFIO
ujust setup-virtualization vfio-on
What VFIO does:
- Isolates GPU from host
- Passes GPU directly to VM
- Near-native GPU performance in VM
Requirements:
- Two GPUs (or iGPU + dGPU)
- IOMMU support (VT-d or AMD-Vi)
- Supported GPU
Disable VFIO
ujust setup-virtualization vfio-off
Returns GPU to host control.
Looking Glass (kvmfr)
Setup kvmfr
ujust setup-virtualization kvmfr
Looking Glass:
- Zero-copy GPU framebuffer sharing
- Near-zero latency display
- No GPU encoding needed
- Mouse/keyboard passthrough
Requirements:
- Windows VM with GPU passthrough
- Looking Glass host app
- IVSHMEM device in VM
Using Looking Glass
- Host: Run
looking-glass-client
- VM: Run Looking Glass host service
- Connect via shared memory
USB Hotplug
Enable USB Hotplug
ujust setup-virtualization usbhp-on
Allows:
- Hot-add USB devices to running VMs
- Dynamic USB device assignment
- No VM restart needed
Disable USB Hotplug
ujust setup-virtualization usbhp-off
Common Workflows
Basic VM Setup
ujust setup-virtualization virt-on
virt-manager
Gaming VM with GPU Passthrough
ujust setup-virtualization vfio-on
systemctl reboot
ujust setup-virtualization kvmfr
Dynamic USB Access
ujust setup-virtualization usbhp-on
IOMMU Groups
Check IOMMU
dmesg | grep -i iommu
for d in /sys/kernel/iommu_groups/*/devices/*; do
n=${d#*/iommu_groups/*}; n=${n%%/*}
printf 'IOMMU Group %s ' "$n"
lspci -nns "${d##*/}"
done
GPU IOMMU Group
lspci -nn | grep -i nvidia
lspci -nn | grep -i amd
Ideal: GPU alone in IOMMU group. If not, may need ACS override patch.
VM Management
Virsh Commands
virsh list --all
virsh start <vm-name>
virsh shutdown <vm-name>
virsh destroy <vm-name>
GUI Management
virt-manager
gnome-boxes
Troubleshooting
VFIO Not Binding GPU
Check IOMMU:
dmesg | grep -i iommu
Enable in BIOS:
- Intel: VT-d
- AMD: AMD-Vi / IOMMU
Check binding:
lspci -nnk | grep -A3 "VGA\|Audio"
Looking Glass Black Screen
Check IVSHMEM:
Verify shared memory:
ls -la /dev/shm/looking-glass
USB Device Not Passing Through
Check permissions:
groups $USER
Check device:
lsusb
VM Won't Start After VFIO
GPU still attached to host:
lspci -nnk | grep -A3 "VGA"
Reboot may be needed after vfio-on.
Cross-References
- bazzite-ai:vm - QCOW2 VM management
- bazzite:gpu - GPU driver configuration
- bazzite-ai:configure - libvirtd service
When to Use This Skill
Use when the user asks about:
- "GPU passthrough", "VFIO", "pass GPU to VM"
- "Looking Glass", "kvmfr", "VM display"
- "KVM", "libvirt", "virtualization"
- "USB hotplug", "pass USB to VM"
- "gaming VM", "Windows VM", "VM performance"
- "IOMMU", "VT-d", "AMD-Vi"