GPU: Intel Corporation DG2 [Arc A310] [8086:56a6] (rev 05) Platform: Proxmox VE 8.x+
The /dev/dri/renderD128 device randomly vanishes, breaking hardware transcoding (Jellyfin, Plex, etc.) and any other GPU-dependent workloads.
- GuC/HuC Firmware Crash – Arc GPUs heavily rely on GuC/HuC firmware. If it crashes, the device disappears.
- PCIe Power Management – ASPM puts the GPU into a D3 power state it can't recover from.
- GPU Display Power States – The i915 driver's power saving modes cause the GPU to enter deep sleep.
uname -rIf too old, update:
apt update && apt install pve-kernel-6.8echo "i915" > /etc/modules-load.d/i915.confcat > /etc/modprobe.d/i915.conf << 'EOF'
options i915 enable_guc=3 enable_dc=0 force_probe=56a6
EOFNote
Replace 56a6 with your GPU's PCI ID. Find it with: lspci -nn | grep VGA
| Option | Purpose |
|---|---|
enable_guc=3 |
Enables GuC & HuC submission (required for Arc GPUs to function properly) |
enable_dc=0 |
Disables all display power saving states (prevents GPU deep sleep) |
force_probe=56a6 |
Forces the kernel to recognize the specific DG2 chip |
Edit /etc/default/grub:
GRUB_CMDLINE_LINUX_DEFAULT="quiet pcie_aspm=off"Note
If you use GPU passthrough to VMs/containers, use:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pcie_aspm=off"
Then update GRUB:
update-grubcat > /etc/udev/rules.d/99-intel-arc.rules << 'EOF'
KERNEL=="renderD128", GROUP="render", MODE="0666"
KERNEL=="card*", GROUP="video", MODE="0666"
EOFls /lib/firmware/i915/dg2_*Expected output:
/lib/firmware/i915/dg2_dmc_ver2_08.bin
/lib/firmware/i915/dg2_guc_70.bin
/lib/firmware/i915/dg2_huc_gsc.bin
These are shipped with Proxmox's pve-firmware package. Do NOT install firmware-misc-nonfree — it will try to remove critical Proxmox packages (proxmox-ve, pve-firmware, kernel packages).
update-initramfs -u -k all
reboot# Check device exists
ls -la /dev/dri/
# Verify driver is loaded
lsmod | grep i915
# Check GuC/HuC firmware loaded successfully
dmesg | grep -i "guc\|huc"
# Expected: "GuC firmware ... loaded" and "HuC firmware ... authenticated"
# Inspect GPU details
lspci -v -s $(lspci | grep -i arc | awk '{print $1}')
# Test hardware video acceleration
vainfo --display drm --device /dev/dri/renderD128Layer 1 — PCIe Bus: pcie_aspm=off → Bus stays awake
Layer 2 — GPU Hardware: enable_dc=0 → GPU stays awake
Layer 3 — GPU Driver: enable_guc=3 + → Driver works correctly
force_probe=56a6 and always detects GPU
Boot sequence with fixes applied:
BIOS → GRUB → Kernel → initramfs → i915 driver → /dev/dri/renderD128 ✅
│ │ │ │
│ │ │ ├─ enable_guc=3 → GPU command submission active
│ │ │ ├─ enable_dc=0 → No deep sleep
│ │ │ └─ force_probe=56a6 → GPU forcefully recognized
│ │ │
│ │ └─ Loads i915 + firmware + options
│ │
│ └─ pcie_aspm=off → PCIe bus stays active
│
└─ Kernel parameters passed
Trade-off: The GPU will consume slightly more power at idle (~5-10W), but it won't disappear anymore.
If the issue persists despite all the above fixes, add a watchdog that automatically reloads the driver:
cat > /usr/local/bin/gpu-watchdog.sh << 'EOF'
#!/bin/bash
if [ ! -e /dev/dri/renderD128 ]; then
logger "GPU renderD128 missing! Reloading i915..."
modprobe -r i915 && sleep 2 && modprobe i915
fi
EOF
chmod +x /usr/local/bin/gpu-watchdog.sh
# Run every 5 minutes via cron
echo "*/5 * * * * root /usr/local/bin/gpu-watchdog.sh" > /etc/cron.d/gpu-watchdog| File | Purpose |
|---|---|
/etc/modules-load.d/i915.conf |
Force-load i915 module at boot |
/etc/modprobe.d/i915.conf |
i915 driver options (GuC, no sleep, force probe) |
/etc/default/grub |
Disable PCIe ASPM via kernel parameter |
/etc/udev/rules.d/99-intel-arc.rules |
Stable device permissions |