Newbie Help with Intel N150 iGPU Passthrough Please

Astaroth

New Member
Aug 19, 2025
2
0
1
Hi,

I'm new to Proxmox and Linux and trying to set up Jellyfin in an LXC on a GMKTec G3 Plus with Intel N150 CPU. I was following a guide which said to install the "intel-media-va-driver-non-free" driver, but this didn't work. I then found another thread here which said to use "intel-media-va-driver" instead for this CPU, so I removed the 'non-free' version and installed that instead. The driver is now working (according to vainfo) in the host, but not in the LXC. Is anyone able to help please as I'm now struggling. I've included as much info as I can below.

I'm using a fresh install of Proxmox 9.0.5 and ran the 'Proxmox VE Post Install' helper script to configure the sources etc.

PVE Host Output (as root)
Bash:
uname -r
6.14.8-2-pve

apt install vainfo -y
apt install software-properties-common -y
add-apt-repository -y non-free
apt install intel-media-va-driver -y

ls -l /dev/dri
total 0
drwxr-xr-x 2 root root        80 Aug 19 15:35 by-path
crw-rw---- 1 root video 226,   1 Aug 19 15:35 card1
crw-rw---- 1 root video 226, 128 Aug 19 15:35 renderD128

lspci | grep -i vga
00:02.0 VGA compatible controller: Intel Corporation Alder Lake-N [Intel Graphics]

vainfo
Trying display: wayland
Trying display: x11
error: can't connect to X server!
Trying display: drm
libva info: VA-API version 1.22.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_22
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.22 (libva 2.22.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 25.2.3 ()
vainfo: Supported profile and entrypoints
      VAProfileNone                   : VAEntrypointVideoProc
      VAProfileNone                   : VAEntrypointStats
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSliceLP
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSliceLP
      VAProfileJPEGBaseline           : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointEncPicture
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
      VAProfileVP8Version0_3          : VAEntrypointVLD
      VAProfileHEVCMain               : VAEntrypointVLD
      VAProfileHEVCMain               : VAEntrypointEncSliceLP
      VAProfileHEVCMain10             : VAEntrypointVLD
      VAProfileHEVCMain10             : VAEntrypointEncSliceLP
      VAProfileVP9Profile0            : VAEntrypointVLD
      VAProfileVP9Profile0            : VAEntrypointEncSliceLP
      VAProfileVP9Profile1            : VAEntrypointVLD
      VAProfileVP9Profile1            : VAEntrypointEncSliceLP
      VAProfileVP9Profile2            : VAEntrypointVLD
      VAProfileVP9Profile2            : VAEntrypointEncSliceLP
      VAProfileVP9Profile3            : VAEntrypointVLD
      VAProfileVP9Profile3            : VAEntrypointEncSliceLP
      VAProfileHEVCMain12             : VAEntrypointVLD
      VAProfileHEVCMain422_10         : VAEntrypointVLD
      VAProfileHEVCMain422_12         : VAEntrypointVLD
      VAProfileHEVCMain444            : VAEntrypointVLD
      VAProfileHEVCMain444            : VAEntrypointEncSliceLP
      VAProfileHEVCMain444_10         : VAEntrypointVLD
      VAProfileHEVCMain444_10         : VAEntrypointEncSliceLP
      VAProfileHEVCMain444_12         : VAEntrypointVLD
      VAProfileHEVCSccMain            : VAEntrypointVLD
      VAProfileHEVCSccMain            : VAEntrypointEncSliceLP
      VAProfileHEVCSccMain10          : VAEntrypointVLD
      VAProfileHEVCSccMain10          : VAEntrypointEncSliceLP
      VAProfileHEVCSccMain444         : VAEntrypointVLD
      VAProfileHEVCSccMain444         : VAEntrypointEncSliceLP
      VAProfileHEVCSccMain444_10      : VAEntrypointVLD
      VAProfileHEVCSccMain444_10      : VAEntrypointEncSliceLP

LXC .conf file
I added the following to the config file (with container off). The guide I was following had "226:0" on the first line, but AI told me the 0 is the ID of the card which shows as "card1" on my host, so I changed that to a 1.

The last line had "0:108" in the guide, but the video group ID on my host is 44 (see lxc output below), so I changed that too (again listening to AI).
Bash:
lxc.cgroup2.devices.allow: c 226:1 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file
lxc.hook.pre-start: sh -c "chown 0:44 /dev/dri/renderD128"

LXC output (as root) - Ubuntu 22.04
I haven't installed jellyfin yet. Container is privileged... I understand that's a security risk due to it having access to the host OS/kernel but Jellyfin's documentation says it's required. I also need to give it access to NFS or SMB to read media from my NAS which I believe requires this too. I don't intend to make this accessible over the Internet, so hoping it will be ok.
Bash:
uname -r
6.14.8-2-pve

apt update && apt upgrade -y
apt install vainfo -y
apt install intel-media-va-driver -y

ls -l /dev/dri                 
total 0
crw-rw---- 1 root video 226, 128 Aug 19 14:35 renderD128

getent group video
video:x:44:

vainfo
error: can't connect to X server!
libva info: VA-API version 1.14.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_14
libva error: /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so init failed
libva info: va_openDriver() returns 1
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_10
libva error: /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so init failed
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit