initial commit
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
# Windows VM + GPU Passthrough for Gaming
|
||||
|
||||
Running a Windows VM alongside Linux services on the same machine so anti-cheat games and Proton-incompatible titles work. Requires both OSes to coexist without disrupting Linux services (Docker, HA, Immich, Ollama).
|
||||
|
||||
## Option matrix
|
||||
|
||||
### Option 1: Second GPU (best)
|
||||
|
||||
Buy a cheap low-power GPU (GT 1030 / GTX 1050 / RX 550 — $40-80 used) for Linux. Pass the primary gaming GPU (2080 Ti) to Windows VM via VFIO.
|
||||
|
||||
| | Linux host | Windows VM |
|
||||
|---|---|---|
|
||||
| GPU | Cheap second card | Gaming GPU (full power) |
|
||||
| LLM inference | Stays on Ollama ✅ | — |
|
||||
| NVENC | Sunshine on Windows ✅ | Native ✅ |
|
||||
| Anti-cheat games | — | Full compatibility ✅ |
|
||||
| All Docker services | Unchanged ✅ | — |
|
||||
|
||||
Requirements: motherboard with two PCIe x16 (or x16 + x4 physical) slots. PSU headroom negligible (GT 1030 draws ~30W).
|
||||
|
||||
### Option 2: Single GPU passthrough (free, painful)
|
||||
|
||||
Pass the only GPU to Windows. Linux becomes fully headless — no GPU at all.
|
||||
|
||||
- All GPU workloads die on Linux: no Ollama, no Immich ML, no NVENC, no Docker GPU acceleration
|
||||
- Must bind GPU to VFIO at boot (kernel cmdline: `vfio-pci.ids=10de:1e07,10de:10f7,10de:1ad6,10de:1ad7`)
|
||||
- When Windows VM shuts down, GPU can be rebound to nvidia driver on Linux — but fragile; a reboot is cleaner
|
||||
- LLM must run inside Windows VM or via CPU-only on Linux (impractically slow)
|
||||
|
||||
### Option 3: Proton-only (free, zero complexity)
|
||||
|
||||
No Windows VM. Accept that ~5% of games with kernel anti-cheat (Valorant, CoD, Fortnite, Destiny 2) won't work. Everything else runs through Steam Proton or Lutris on native Linux.
|
||||
|
||||
### Option 4: Dual boot
|
||||
|
||||
Reboot between Linux and Windows. Not simultaneous — all Linux services are down while gaming.
|
||||
|
||||
## OEM motherboard pitfalls
|
||||
|
||||
### HP OMEN 30L (HP 8703 board)
|
||||
|
||||
- **iGPU is disabled when dGPU installed.** The i7-10700K has Intel UHD Graphics 630 but it's not exposed — no video output ports routed to back panel, not visible in lspci. You cannot use iGPU for Linux host + dGPU for Windows VM passthrough on this board.
|
||||
- **Only one GPU works at a time.** Option 1 (second GPU) requires verifying the board has a second physical PCIe slot and that both GPUs fit physically.
|
||||
- **BIOS may lack IOMMU/VT-d settings.** HP OEM BIOSes are stripped down. VT-d/IOMMU may be enabled by default but not configurable. Check with `dmesg | grep -iE "IOMMU|DMAR"` and `ls /sys/kernel/iommu_groups/`.
|
||||
|
||||
### General OEM board checks before GPU passthrough
|
||||
|
||||
```bash
|
||||
# 1. GPU IOMMU group — must be isolated (no other devices in same group)
|
||||
for d in /sys/kernel/iommu_groups/*/devices/*; do
|
||||
n=${d#*/iommu_groups/*}; n=${n%%/*}
|
||||
echo "Group $n: $(lspci -nns "${d##*/}" | cut -d' ' -f2-)"
|
||||
done
|
||||
|
||||
# 2. VFIO kernel module available
|
||||
modprobe vfio-pci && echo "vfio-pci available"
|
||||
|
||||
# 3. Second PCIe slot existence
|
||||
lspci | grep -iE "VGA|3D|display"
|
||||
```
|
||||
|
||||
## What this does NOT cover
|
||||
|
||||
- Full VFIO passthrough setup (libvirt XML, vfio-pci binding, Windows virtio drivers)
|
||||
- Looking Glass (low-latency VM display on Linux host)
|
||||
- SR-IOV (GPU virtualization — not supported on consumer NVIDIA cards)
|
||||
Reference in New Issue
Block a user