//nbkelley /homelab

GPU Passthrough for Proxmox LXCs#

What Was Established#

  • Intel GPU passthrough to Proxmox LXCs requires both host-side module loading and specific LXC device mounts.
  • vainfo frequently fails with X11/X server errors in headless containers; this is expected and does not indicate a broken passthrough.
  • intel_gpu_top requires i915 module loaded on the host and accessible debugfs/sysfs paths inside the container.

Key Decisions#

  • Headless VA-API Testing: When vainfo reports error: can't connect to X server!, set environment variables to bypass X11:
    export XDG_RUNTIME_DIR=/tmp/runtime-root
    export LIBVA_DRIVER_NAME=iHD
    vainfo
  • Module Verification: lsmod | grep i915 confirms the driver is loaded inside the container. Presence of i915, drm_buddy, ttm, and drm_display_helper indicates successful module injection.
  • Device Access: intel_gpu_top failing with No device filter specified... typically points to missing debugfs mounts or host-side i915 parameters, not necessarily a broken /dev/dri/ passthrough.

Current Configuration#

Proxmox LXC Config (/etc/pve/lxc/<container-id>.conf):

lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.mount.entry: /dev/dri/card0 dev/dri/card0 none bind,optional,create=file
lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,create=file

Host-Side Requirements:

  • i915 kernel module must be loaded on the Proxmox host (lsmod | grep i915).
  • For intel_gpu_top to function inside the LXC, ensure sys/kernel/debug is mounted into the container or pass options i915 enable_guc=3 (or appropriate parameters) on the host kernel.

Historical Notes#

  • Conversation dates from 2024–2025. Troubleshooting focused on a Jellyfin LXC container.
  • vainfo X11 errors were identified as non-fatal for headless hardware acceleration.
  • i915 module was confirmed loaded inside the container via lsmod.

Open Questions#

  • Host-side i915 kernel parameters required for full intel_gpu_top functionality inside the LXC.
  • Final verification of Jellyfin QSV hardware encoding/decoding performance post-configuration.
  • Whether sys/kernel/debug mount is necessary for intel_gpu_top or if host-side parameters suffice.

Sources#

  • ingested/chats/102-Intel GPU Top Error and Solutions Guide.md
  • DeepSeek historical conversation (2024–2025)