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.