Twin Lake iGPU not recognized/usable with Plex

Server Version#: Version 1.43.0.10389 and Version 1.42.2.10156

Hello everyone,

I’m encountering an issue with Plex Media Server on an Intel N355 (Twin Lake) system. The iGPU is not detected by Plex for hardware transcoding. I have tested multiple Plex versions and several machines, and this problem appears to be specific to this CPU / iGPU model.

My setup uses iGPU passthrough in Proxmox server, to an Ubuntu VM (24.04). This exact same setup has been replicated successfully on :

  • a MiniForum MS-01 i9-12900H
  • an Intel N305 (Alder Lake) NUC
  • an Intel i5-1335U (Raptor Lake) NUC

On all of those systems, Plex detects the iGPU and it can be selected in the transcoder settings. Hardware transcoding works normally.

However, on the N355, Plex cannot see/uses the iGPU, even though the device is present and functional inside the VM.

$ ls -l /dev/dri/
crw-rw---- 1 root video 226, 0 card0
crw-rw---- 1 root render 226,128 renderD128

$ lspci -k | grep -EA3 ‘VGA|Display’
01:00.0 VGA compatible controller: Intel Corporation Alder Lake-N [Intel Graphics]
Subsystem: Intel Corporation Device 7270
Kernel driver in use: i915
Kernel modules: i915

Using ffmpeg, I’m able to use the iGPU inside the VM to transcode video files. I tried Jellyfin, and it his also able to see and use the iGPU to transcode video (confimed with intel_gpu_top, using /dev/dri/renderD128 as VAAPI in settings)

ffmpeg -init_hw_device vaapi=gpu:/dev/dri/renderD128 -filter_hw_device gpu -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format vaapi -i ./test.mkv -map 0:v:0 -vf “scale_vaapi=w=1280:h=720:format=nv12” -c:v h264_vaapi -b:v 5M -maxrate 5M -bufsize 10M -an -f null -

frame= 593 fps=237 q=-0.0 Lsize=N/A time=00:00:24.64 bitrate=N/A speed=9.87x

These are the logs I get from the /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Logs/Plex Media Server.log

Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: I/O error
Codecs: testing h264 (decoder) with hwdevice vaapi
Codecs: hardware transcoding: testing API vaapi for device ‘/dev/dri/renderD128’ (Intel Alder Lake-N [Intel Graphics])
[FFMPEG] - Failed to initialise VAAPI connection: -1 (unknown libva error).
Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: I/O error
Codecs: testing h264 (decoder) with hwdevice vaapi
Codecs: hardware transcoding: testing API vaapi for device ‘/dev/dri/renderD128’ (Intel Alder Lake-N [Intel Graphics])
[FFMPEG] - Failed to initialise VAAPI connection: -1 (unknown libva error).
Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: I/O error
TPU: hardware transcoding: enabled, but no hardware decode accelerator found
TPU: hardware transcoding: final decoder: , final encoder:

If there is any log I can provide or test I can perform to help debugging this, would happily do it :wink:

Thanks
Best regards,

May I see the full DEBUG logs ZIP file, captured AFTER restarting PMS and attempting a transcode ?

It’s not possible to diagnose from this snippet

Sure, here it is :
Plex Media Server.zip (55.0 KB)

I stopped the service, cleared the log, and restarted it. I reselected the iGPU in the transcoding options, started a movie while changing the resolution, and re-stopped the service. Everything should be there.

What may be relevant :

Codecs: testing hevc (decoder) with hwdevice vaapi

Codecs: hardware transcoding: testing API vaapi for device ‘/dev/dri/renderD128’ (Intel Alder Lake-N [Intel Graphics])

[FFMPEG] - libva: dlopen of /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so failed: Error relocating /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so: __isoc23_strtoul: symbol not found

[FFMPEG] - Failed to initialise VAAPI connection: -1 (unknown libva error).

Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: I/O error

Could not create hardware context for hevc

Thanks again for the help
Best regards

Thank you. That contains everything I need to see,

Would you now please do the following:

  1. ls -la /dev/dri
    You should see the CPU/iGPU (renderD128).
    I have a Nvidia as well so it looks like this.
[chuck@lizum ~.1997]$ ls -la /dev/dri
total 0
drwxr-xr-x   3 root root        140 Dec 19 21:07 ./
drwxr-xr-x  22 root root       5860 Dec 28 01:43 ../
drwxr-xr-x   2 root root        120 Dec 19 21:07 by-path/
crw-rw----+  1 root render 226,   1 Dec 19 21:07 card1
crw-rw----+  1 root render 226,   2 Dec 19 21:07 card2
crw-rw----+  1 root render 226, 128 Dec 19 21:07 renderD128
crw-rw----+  1 root render 226, 129 Dec 19 21:07 renderD129
[chuck@lizum ~.1998]$ 
  1. sudo lspci -v | less
    Look for the Display device and attach info here. It should look like this
00:02.0 Display controller: Intel Corporation AlderLake-S GT1 (rev 0c)
	Subsystem: Intel Corporation AlderLake-S GT1
	Flags: bus master, fast devsel, latency 0, IRQ 273, IOMMU group 0
	Memory at 645b000000 (64-bit, non-prefetchable) [size=16M]
	Memory at 4000000000 (64-bit, prefetchable) [size=256M]
	I/O ports at 4000 [size=64]
	Capabilities: [40] Vendor Specific Information: Len=0c <?>
	Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00
	Capabilities: [ac] MSI: Enable+ Count=1/1 Maskable+ 64bit-
	Capabilities: [d0] Power Management version 2
	Capabilities: [100] Process Address Space ID (PASID)
	Capabilities: [200] Address Translation Service (ATS)
	Capabilities: [300] Page Request Interface (PRI)
	Capabilities: [320] Single Root I/O Virtualization (SR-IOV)
	Kernel driver in use: i915
	Kernel modules: i915, xe

( Use ``` to bracket the text )

Yep Here it is (from the VM) :

# ls -la /dev/dri
total 0
drwxr-xr-x  3 root root       100 Dec 28 21:08 .
drwxr-xr-x 21 root root      4300 Dec 28 21:08 ..
drwxr-xr-x  2 root root        80 Dec 28 21:08 by-path
crw-rw----  1 root video 226,   0 Dec 28 21:08 card0
crw-rw----  1 root video 226, 128 Dec 28 21:08 renderD128

# sudo lspci -v
01:00.0 VGA compatible controller: Intel Corporation Alder Lake-N [Intel Graphics] (prog-if 00 [VGA controller])
	Subsystem: Intel Corporation Device 7270
	Physical Slot: 0
	Flags: bus master, fast devsel, latency 0, IRQ 42
	Memory at fb000000 (64-bit, non-prefetchable) [size=16M]
	Memory at 7070000000 (64-bit, prefetchable) [size=256M]
	I/O ports at 5000 [size=64]
	Expansion ROM at 000c0000 [disabled] [size=128K]
	Capabilities: [40] Vendor Specific Information: Len=0c <?>
	Capabilities: [70] Express Endpoint, MSI 00
	Capabilities: [ac] MSI: Enable+ Count=1/1 Maskable+ 64bit-
	Capabilities: [d0] Power Management version 2
	Capabilities: [100] Null
	Capabilities: [200] Address Translation Service (ATS)
	Capabilities: [300] Page Request Interface (PRI)
	Kernel driver in use: i915
	Kernel modules: i915

And, I don’t know if this can be of any help, but this is the version seen from the Proxmox of the same iGPU:

# sudo lspci -v
00:02.0 VGA compatible controller: Intel Corporation Alder Lake-N [Intel Graphics] (prog-if 00 [VGA controller])
	DeviceName: Onboard - Video
	Subsystem: Intel Corporation Alder Lake-N [Intel Graphics]
	Flags: bus master, fast devsel, latency 0, IRQ 181, IOMMU group 0
	Memory at 60e8000000 (64-bit, non-prefetchable) [size=16M]
	Memory at 4000000000 (64-bit, prefetchable) [size=256M]
	I/O ports at 4000 [size=64]
	Expansion ROM at 000c0000 [virtual] [disabled] [size=128K]
	Capabilities: [40] Vendor Specific Information: Len=0c <?>
	Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00
	Capabilities: [ac] MSI: Enable+ Count=1/1 Maskable+ 64bit-
	Capabilities: [d0] Power Management version 2
	Capabilities: [100] Process Address Space ID (PASID)
	Capabilities: [200] Address Translation Service (ATS)
	Capabilities: [300] Page Request Interface (PRI)
	Capabilities: [320] Single Root I/O Virtualization (SR-IOV)
	Kernel driver in use: vfio-pci
	Kernel modules: i915

and this is the vainfo from inside the VM:

vainfo
Trying display: wayland
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
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 - 24.3.4 ()
vainfo: Supported profile and entrypoints
      VAProfileNone                   :	VAEntrypointVideoProc
      VAProfileNone                   :	VAEntrypointStats
...

Thanks again @ChuckPa

Thanks.

That tells me the GPU is the same as I have here with exception of “N355” vs “N100”

With PMS debug logging enabled (Verbose disabled),
Restart Plex and wait 2 minutes then download the logs.

What I’m looking for is where PMS identifies the GPU and “preemptively loading” the ICR and IMD drivers

I am NOT an expert with ProxMox (nor even a competent user)

This is what I have setup (the gracious contributions of others)
– The key is the TTECK helper scripts.
– This is where my knowledge ends (other than bare linux)

There are reports of Proxmox 9 issues in the forums but I don’t know enough to comment.

Is this of any help?

Hello @ChuckPa,

No the N100 (Alder Lake-N) doesn’t have the same architecture as the N355 (Twin Lake) , it’s more like the N150 (See CPU Comparaison).

What is more comparable with the N100, would be the N305. Both are using the same Intel UHD Graphics. But I can actually confirm that it’s working on a N305 CPU/iGPU NUC.

The issue seems to be only on Twin Lake (N150, N355, …).

I made a Reddit post on the Proxmox channel; this was just before I found that the iGPU was in fact working inside the VM and the issue isn’t related to Proxmox.

But what makes me suspect PMS is that, inside the VM, Jellyfin seems to be able to use the VAAPI, and vainfo and intel_gpu_top confirm to me that the iGPU is active, but Plex is giving me this error :

ERROR - [Req#2f6/Transcode] [FFMPEG] - libva: dlopen of /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so failed: Error relocating /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so: __isoc23_strtoul: symbol not found
ERROR - [Req#2f6/Transcode] [FFMPEG] - Failed to initialise VAAPI connection: -1 (unknown libva error).

For the debug logs, I think the provided ZIP was already set to “non verbose” and with the “debug” flag set. Is there something specific to look for, or is it in another log file? I found the following lines:

INFO - Preemptively preparing driver imd for GPU Intel Alder Lake-N [Intel Graphics]
DEBUG - [DriverDL/imd] Skipping download; already exists
INFO - Preemptively preparing driver icr for GPU Intel Alder Lake-N [Intel Graphics]
DEBUG - [DriverDL/icr] Skipping download; already exists

Which should have been Twin Lake ?

What the screenshot shows seems to be a Proxmox container, and it’s working differently than a full VM with passthrough, though I could test it as well.

Thanks again for your time, @ChuckPa
Best regards,

Thank you for confirming that.

Good news is I know how to solve it.

Bad news is Chris will have to create a new build of FFMPEG with the device id’s and other info added to the built-in GPU list

If you can do a physical (full) GPU passthrough , that would give us some more info for me to give to chris.

Hello,
Yes, this is what I could get

From the Proxmox

lspci -nnk

00:02.0 VGA compatible controller [0300]: Intel Corporation Alder Lake-N [Intel Graphics] [8086:46d3]
        DeviceName: Onboard - Video
        Subsystem: Intel Corporation Alder Lake-N [Intel Graphics] [8086:7270]
        Kernel driver in use: vfio-pci
        Kernel modules: i915

lshw -C display -C video

  *-display                 
       description: VGA compatible controller
       product: Alder Lake-N [Intel Graphics]
       vendor: Intel Corporation
       physical id: 2
       bus info: pci@0000:00:02.0

inxi -Gxxx

Graphics:
  Device-1: Intel Alder Lake-N [Intel Graphics] driver: vfio-pci v: N/A bus-ID: 00:02.0
    chip-ID: 8086:46d3 class-ID: 0300
  Display: server: X.org v: 1.21.1.7 driver: N/A note: X driver n/a tty: 158x39
  API: OpenGL Message: GL data unavailable in console for root.

hwinfo --gfxcard

24: PCI 02.0: 0300 VGA compatible controller (VGA)              
  [Created at pci.386]
  Unique ID: _Znp.kvnTjh8LftC
  SysFS ID: /devices/pci0000:00/0000:00:02.0
  SysFS BusID: 0000:00:02.0
  Hardware Class: graphics card
  Device Name: "Onboard - Video"
  Model: "Intel VGA compatible controller"
  Vendor: pci 0x8086 "Intel Corporation"
  Device: pci 0x46d3 
  SubVendor: pci 0x8086 "Intel Corporation"
  SubDevice: pci 0x7270 
  Driver: "vfio-pci"
  Driver Modules: "vfio_pci"
  Memory Range: 0x60e8000000-0x60e8ffffff (rw,non-prefetchable)
  Memory Range: 0x4000000000-0x400fffffff (ro,non-prefetchable)
  I/O Ports: 0x4000-0x403f (rw)
  Memory Range: 0x000c0000-0x000dffff (rw,non-prefetchable,disabled)
  IRQ: 181 (no events)
  Module Alias: "pci:v00008086d000046D3sv00008086sd00007270bc03sc00i00"
  Driver Info #0:
    Driver Status: i915 is not active
    Driver Activation Cmd: "modprobe i915"
  Config Status: cfg=new, avail=yes, need=no, active=unknown

Primary display adapter: #24

From the Ubuntu 24.04 VM with Plex (GPU Passthrough):

lspci -nnk

01:00.0 VGA compatible controller [0300]: Intel Corporation Alder Lake-N [Intel Graphics] [8086:46d3]
	Subsystem: Intel Corporation Device [8086:7270]
	Kernel driver in use: i915
	Kernel modules: i915

vainfo

Trying display: wayland
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
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 - 24.3.4 ()
vainfo: Supported profile and entrypoints
...

inxi -Gxxx

Graphics:
  Device-1: Intel Alder Lake-N [Intel Graphics] driver: i915 v: kernel arch: Gen-12.2 ports:
    active: none empty: DP-1,HDMI-A-1 bus-ID: 01:00.0 chip-ID: 8086:46d3 class-ID: 0300
  Display: server: No display server data found. Headless machine? tty: 190x42
  API: EGL v: 1.5 hw: drv: intel iris platforms: device: 0 drv: iris device: 1 drv: swrast gbm:
    drv: iris surfaceless: drv: iris inactive: wayland,x11
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: mesa v: 25.0.7-0ubuntu0.24.04.2
    note: console (EGL sourced) renderer: Mesa Intel Graphics (ADL-N), llvmpipe (LLVM 20.1.2 256
    bits)

hwinfo --gfxcard

14: PCI 100.0: 0300 VGA compatible controller (VGA)             
  [Created at pci.386]
  Unique ID: VCu0.kvnTjh8LftC
  Parent ID: z8Q3.iGV8l8b74r0
  SysFS ID: /devices/pci0000:00/0000:00:1c.0/0000:01:00.0
  SysFS BusID: 0000:01:00.0
  Hardware Class: graphics card
  Model: "Intel VGA compatible controller"
  Vendor: pci 0x8086 "Intel Corporation"
  Device: pci 0x46d3 
  SubVendor: pci 0x8086 "Intel Corporation"
  SubDevice: pci 0x7270 
  Driver: "i915"
  Driver Modules: "i915"
  Memory Range: 0xfb000000-0xfbffffff (rw,non-prefetchable)
  Memory Range: 0x7070000000-0x707fffffff (ro,non-prefetchable)
  I/O Ports: 0x5000-0x5fff (rw)
  Memory Range: 0x000c0000-0x000dffff (rw,non-prefetchable,disabled)
  IRQ: 42 (386 events)
  Module Alias: "pci:v00008086d000046D3sv00008086sd00007270bc03sc00i00"
  Driver Info #0:
    Driver Status: i915 is active
    Driver Activation Cmd: "modprobe i915"
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  Attached to: #8 (PCI bridge)

Primary display adapter: #14

From another Fedora 43 VM with GPU passthrough:

lspci -nnk

01:00.0 VGA compatible controller [0300]: Intel Corporation Alder Lake-N [Intel Graphics] [8086:46d3]
	Subsystem: Intel Corporation Device [8086:7270]
	Kernel driver in use: i915
	Kernel modules: i915, xe

vainfo

Trying display: wayland
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
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/lib64/dri-nonfree/iHD_drv_video.so
libva info: Trying to open /usr/lib64/dri-freeworld/iHD_drv_video.so
libva info: Trying to open /usr/lib64/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.4.6 ()
vainfo: Supported profile and entrypoints
...

inxi -Gxxx

Graphics:
  Device-1: Intel Alder Lake-N [Intel Graphics] driver: i915 v: kernel arch: Xe ports:
    active: none empty: DP-1,HDMI-A-1 bus-ID: 01:00.0 chip-ID: 8086:46d3 class-ID: 0300
  Display: unspecified server: Xwayland v: 24.1.9 compositor: gnome-shell v: 49.2 driver: N/A
    tty: 190x42
  API: OpenGL Message: GL data unavailable in console for root.
  API: EGL Message: EGL data unavailable in console, eglinfo missing.
  Info: Tools: api: glxinfo gpu: gputop, intel_gpu_top, lsgpu x11: xdriinfo, xdpyinfo, xprop,
    xrandr

hwinfo --gfxcard

13: PCI 100.0: 0300 VGA compatible controller (VGA)             
  [Created at pci.386]
  Unique ID: VCu0.kvnTjh8LftC
  Parent ID: z8Q3.iGV8l8b74r0
  SysFS ID: /devices/pci0000:00/0000:00:1c.0/0000:01:00.0
  SysFS BusID: 0000:01:00.0
  Hardware Class: graphics card
  Model: "Intel VGA compatible controller"
  Vendor: pci 0x8086 "Intel Corporation"
  Device: pci 0x46d3 
  SubVendor: pci 0x8086 "Intel Corporation"
  SubDevice: pci 0x7270 
  Driver: "i915"
  Driver Modules: "i915"
  Memory Range: 0xfb000000-0xfbffffff (rw,non-prefetchable)
  Memory Range: 0x7070000000-0x707fffffff (ro,non-prefetchable)
  I/O Ports: 0x5000-0x5fff (rw)
  Memory Range: 0x000c0000-0x000dffff (rw,non-prefetchable,disabled)
  IRQ: 42 (356 events)
  Module Alias: "pci:v00008086d000046D3sv00008086sd00007270bc03sc00i00"
  Driver Info #0:
    Driver Status: i915 is active
    Driver Activation Cmd: "modprobe i915"
  Driver Info #1:
    Driver Status: xe is active
    Driver Activation Cmd: "modprobe xe"
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  Attached to: #7 (PCI bridge)
Primary display adapter: #13

Hope this helps, and don’t hesitate to send me commands/file to check or if you want me to test a beta version.

Happy 2026 :wink:

Thank you.

I will forward to Chris so he can confirm the IDs he has in the lists

@Kantium
Are you using your own FFMPEG or libs?

All of PMS’s libraries are contained within the “Drivers” and “Codecs” directories.

Plex should be using the one coming with Plex install no ? but yes indeed, I added the original ffmpeg to the VM to compare and test.
The original one was used by Jellyfin through the VAAPI interface and I also used it to ensure transcoding was working inside the VM and using the iGPU.
But during all these experiments, I may have destroyed some settings.

This iHD_drv_video.so is the intel video driver. It’s only in one place ?

The Plex-provided IHD is part of “Drivers”

[chuck@lizum plex.2013]$ cd Plex\ Media\ Server/
[chuck@lizum Plex Media Server.2014]$ cd Drivers/
[chuck@lizum Drivers.2015]$ ls -la
total 8
drwxr-xr-x  4 chuck chuck  104 Nov 20 23:50 ./
drwxr-xr-x 14 chuck chuck 4096 Dec  7 02:05 ../
drwxr-xr-x  2 chuck chuck 4096 Nov 20 23:50 icr-c16f2ebb0422e105937c6368-linux-x86_64/
drwxr-xr-x  3 chuck chuck   17 Nov 20 23:50 imd-baf4559492d74a2e92e20a5a-linux-x86_64/
[chuck@lizum Drivers.2016]$ cd imd-baf4559492d74a2e92e20a5a-linux-x86_64/
[chuck@lizum imd-baf4559492d74a2e92e20a5a-linux-x86_64.2017]$ ll
total 0
drwxr-xr-x 3 chuck chuck  17 Nov 20 23:50 ./
drwxr-xr-x 4 chuck chuck 104 Nov 20 23:50 ../
drwxr-xr-x 2 chuck chuck  30 Nov 20 23:50 dri/
[chuck@lizum imd-baf4559492d74a2e92e20a5a-linux-x86_64.2018]$ cd dri
[chuck@lizum dri.2019]$ ll
total 37392
drwxr-xr-x 2 chuck chuck       30 Nov 20 23:50 ./
drwxr-xr-x 3 chuck chuck       17 Nov 20 23:50 ../
-rwxr-xr-x 1 chuck chuck 38287632 Nov 20 23:50 iHD_drv_video.so*
[chuck@lizum dri.2020]$ 

Hello @ChuckPa,

Interestingly, I tried on a Debian 13 VM, and in that case, I was able to use the iGPU on Plex. But I tried on a fresh Ubuntu 24 and Debian 12, and this bring me the same issue. I have to investigate a little more. In the mean time, if you have a beta version to test on Ubuntu, I will try it.

Best regards

If you made a Debian 13 VM and were able to confirm the TwinLake iGPU works then you have your answer. – PMS isn’t the issue. VM definition & iGPU passthrough is the issue.