This guide explains how to enable Intel integrated GPU (iGPU) hardware acceleration on a Proxmox host and pass it through to an LXC container (such as Emby) using VAAPI.
Tested on:
- Proxmox VE 7.x / 8.x
- Intel N100 / modern Intel iGPUs
- Debian-based LXC containers
1. Install Intel GPU Drivers on the Proxmox Host
Proxmox already includes the kernel driver. You only need the user-space packages.
Update the Host
apt update && apt full-upgrade -y
Install Intel Media Packages
apt install -y \
intel-media-va-driver \
i965-va-driver \
vainfo \
intel-gpu-tools
On newer Proxmox kernels, intel-media-va-driver (iHD driver) is the important package.i965-va-driver can remain installed for compatibility.
2. Verify the iGPU Is Detected
Check that the DRM device exists:
ls -l /dev/dri
You should see:
/dev/dri/card0
/dev/dri/renderD128
If you do not see these, check BIOS settings:
- iGPU enabled
- Primary display set to Auto or iGPU
- No headless-disable options enabled
3. Test VAAPI on the Host
Run:
vainfo
Expected output should reference:
- Intel iHD driver
- H.264
- HEVC
- VP9
- AV1 decode (supported on N100)
If vainfo works → the host configuration is complete.
4. Prepare the LXC Container for GPU Access
Edit your container configuration:
nano /etc/pve/lxc/<CTID>.conf
Add the following lines:
# Allow GPU devices
lxc.cgroup2.devices.allow: c 226:* rwm# Bind mount DRM devices
lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir# Required for iGPU access
lxc.apparmor.profile: unconfined
lxc.cap.drop:
For trusted internal containers (like Emby), this does not meaningfully weaken host security.
Restart the container after saving.
5. Install Intel Drivers Inside the Container
Enter the LXC and update:
apt update && apt upgrade -y
Install VAAPI support:
apt install -y \
intel-media-va-driver \
i965-va-driver \
vainfo \
ffmpeg
6. Verify GPU Access Inside the Container
Check:
ls -l /dev/dri
You should see:
card0
renderD128
Test VAAPI:
vainfo
If this works → GPU passthrough is successful.
7. Configure Emby for Hardware Transcoding
In Emby Admin:
Dashboard → Playback → Transcoding
Set:
- Enable hardware acceleration
- Acceleration API: VAAPI
- Enable hardware decoding
- Enable hardware encoding
- Enable tone mapping (if using HDR → SDR)
Optional (recommended):
Set the transcode temp directory to:
/tmp/emby-transcode
Or use a fast NVMe-backed dataset.
8. Confirm Hardware Transcoding Is Active
Start a file that forces a transcode (not direct play).
Then on the Proxmox host run:
intel_gpu_top
You should see activity under:
- Video
- Render
CPU usage should remain low.
If GPU usage increases → hardware acceleration is working correctly.