Can Jasper Lake N6005 use hardware transcoding?

Same issue, and I tried the solution and it doesn’t work for me. I too have the beelink u59 with the intel jasper lake N5095 running headless ubuntu server 21.10. Are there any other drivers I need to be installing besides adding “options i915 enable_guc=2” to /etc/modprobe.d/i915.conf? Here is my vainfo:

$ sudo vainfo
error: XDG_RUNTIME_DIR not set in the environment.
error: can't connect to X server!
libva info: VA-API version 1.12.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_12
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.12 (libva 2.10.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 21.3.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
      VAProfileVP9Profile1            : VAEntrypointVLD
      VAProfileVP9Profile2            : VAEntrypointVLD
      VAProfileVP9Profile3            : VAEntrypointVLD
      VAProfileHEVCMain422_10         : VAEntrypointVLD
      VAProfileHEVCMain444            : VAEntrypointVLD
      VAProfileHEVCMain444            : VAEntrypointEncSliceLP
      VAProfileHEVCMain444_10         : VAEntrypointVLD
      VAProfileHEVCMain444_10         : VAEntrypointEncSliceLP

From the plex console:

Jan 19, 2022 04:35:58.827 [0x7f53859fdb38] Error — [Transcoder] [h264_vaapi @ 0x7f254db07240] Driver does not support any RC mode compatible with selected options (supported modes: CQP).
Jan 19, 2022 04:35:58.828 [0x7f53859fdb38] Error — [Transcoder] Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height

Recommend you get away from 21. It’s been problematic for a lot of people.

Reload the server with 20.04.3 LTS and you’ll be far better off.

I managed to get the N6005 to hardware transcode in 21.10 by upgrading a bunch of stuff manually (the latest kernel, latest linux-firmware, latest intel-media-driver, etc…).

Now I’m getting a similar problem, but only when I enable HDR to SDR tone-mapping. Apparently these CPUs do not support VPP hw HDR to SDR tone-mapping which I suspect is what Plex is trying to do. I’ve tried Jellyfin and I can get tone-mapping working if I disable the VPP option (so it is done with OpenCL). Plex doesn’t allow configuring that, but maybe Plex can detect that this is a Jasper Lake CPU and default to OpenCL tone-mapping. Is that something that could be implemented?

Ok, I installed 20.04.3LTS, upgraded, applied the i915.conf patch, and this is what I get when I run vainfo:

willthethrill@beelink:~$ sudo vainfo
[sudo] password for willthethrill: 
error: XDG_RUNTIME_DIR not set in the environment.
error: can't connect to X server!
error: failed to initialize display

Update:

The following is the output when I install plexmedia server. It found my intel hardware on ubuntu 21.10.

Installing new version of config file /etc/apt/sources.list.d/plexmediaserver.list ...
PlexMediaServer install: PlexMediaServer-1.25.3.5409-f11334058 - Installation starting.
PlexMediaServer install: 
PlexMediaServer install: Now installing based on:
PlexMediaServer install:   Installation Type:   New
PlexMediaServer install:   Process Control:     systemd
PlexMediaServer install:   Plex User:           plex
PlexMediaServer install:   Plex Group:          plex
PlexMediaServer install:   Video Group:         video
PlexMediaServer install:   Metadata Dir:        /var/lib/plexmediaserver/Library/Application Support
PlexMediaServer install:   Temp Directory:      /tmp 
PlexMediaServer install:   Lang Encoding:       en_US.UTF-8
PlexMediaServer install:   Intel i915 Hardware: Not found
PlexMediaServer install:   Nvidia GPU card:     Not Found
PlexMediaServer install:  
PlexMediaServer install: Completing final configuration.

@williamthrilliam

Look at the kernel currently installed in your 20.04.3 LTS.

You should be at 5.13, which includes the same as Ubuntu 21.

Installing new version of config file /etc/apt/sources.list.d/plexmediaserver.list ...
PlexMediaServer install: PlexMediaServer-1.25.3.5409-f11334058 - Installation starting.
PlexMediaServer install: 
PlexMediaServer install: Now installing based on:
PlexMediaServer install:   Installation Type:   Update
PlexMediaServer install:   Process Control:     systemd
PlexMediaServer install:   Plex User:           plex
PlexMediaServer install:   Plex Group:          plex
PlexMediaServer install:   Video Group:         video
PlexMediaServer install:   Metadata Dir:        /var/lib/plexmediaserver/Library/Application Support
PlexMediaServer install:   Temp Directory:      /tmp 
PlexMediaServer install:   Lang Encoding:       en_US.UTF-8
PlexMediaServer install:   Intel i915 Hardware: Not found
PlexMediaServer install:   Nvidia GPU card:     Not Found
PlexMediaServer install:  
PlexMediaServer install: Completing final configuration.
PlexMediaServer install: Starting Plex Media Server.
PlexMediaServer install: PlexMediaServer-1.25.3.5409-f11334058 - Installation successful.  Errors: 0, Warnings: 0
Processing triggers for mime-support (3.64ubuntu1) ...
willthethrill@beelink:~$ uname -r
5.13.19-051319-generic
willthethrill@beelink:~$ sudo vainfo
error: XDG_RUNTIME_DIR not set in the environment.
error: can't connect to X server!
error: failed to initialize display

I also installed the latest intel gpu drivers here: This page is depreciated. — Intel® software for general purpose GPU capabilities documentation

Should I be on the specific 5.13 kernel, not the latest 5.13 release?

Please check for me?

cd /sys/module/i915/drivers
ls -la
ls -la pci:i915/

Should respond with

[chuck@lizum drivers.2011]$ ls -la pci\:i915/
total 0
drwxr-xr-x  2 root root    0 Jan 20 13:22 ./
drwxr-xr-x 40 root root    0 Jan 20 13:22 ../
lrwxrwxrwx  1 root root    0 Jan 20 15:42 0000:00:02.0 -> ../../../../devices/pci0000:00/0000:00:02.0/
--w-------  1 root root 4096 Jan 20 15:42 bind
lrwxrwxrwx  1 root root    0 Jan 20 15:42 module -> ../../../../module/i915/
--w-------  1 root root 4096 Jan 20 15:42 new_id
--w-------  1 root root 4096 Jan 20 15:42 remove_id
--w-------  1 root root 4096 Jan 20 13:22 uevent
--w-------  1 root root 4096 Jan 20 15:42 unbind
[chuck@lizum drivers.2012]$

Ok, big update.

I successfully got the i915 drivers to load. After digging around in some arch linux forums I found that I should be poking around in dmesg to find out why my driver didn’t load. And low and behold:

i915 0000:00:02.0: Your graphics device 4e55 is not properly supported by the driver in this
               kernel version. To force driver probe anyway, use i915.force_probe=4e55
               module parameter or CONFIG_DRM_I915_FORCE_PROBE=4e55 configuration 

So, I updated the i915.conf with “i915.force_probe=4e55” and nothing. I also removed the “options i915 enable_guc=2” from that file. Nothing. I then read that ubuntu changed the way it loads modules some time ago and I updated the formatting to reflect that. This is the contents of /etc/modprobe.d/i915.conf:

options i915 force_probe=4e55

Then after several reboots I discovered I needed to rebuild initrd with update-initramfs -u. A reboot and viola:

$ sudo vainfo
error: XDG_RUNTIME_DIR not set in the environment.
error: can't connect to X server!
libva info: VA-API version 1.13.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_13
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.13 (libva 2.13.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 21.4.1 (be92568)
vainfo: Supported profile and entrypoints
      VAProfileNone                   : VAEntrypointVideoProc
      VAProfileNone                   : VAEntrypointStats
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSliceLP
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSliceLP
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointEncPicture
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
      VAProfileVP8Version0_3          : VAEntrypointVLD
      VAProfileHEVCMain               : VAEntrypointVLD
      VAProfileHEVCMain               : VAEntrypointEncSliceLP
      VAProfileHEVCMain10             : VAEntrypointVLD
      VAProfileHEVCMain10             : VAEntrypointEncSliceLP
      VAProfileVP9Profile0            : VAEntrypointVLD
      VAProfileVP9Profile1            : VAEntrypointVLD
      VAProfileVP9Profile2            : VAEntrypointVLD
      VAProfileVP9Profile3            : VAEntrypointVLD
      VAProfileHEVCMain422_10         : VAEntrypointVLD
      VAProfileHEVCMain444            : VAEntrypointVLD
      VAProfileHEVCMain444            : VAEntrypointEncSliceLP
      VAProfileHEVCMain444_10         : VAEntrypointVLD
      VAProfileHEVCMain444_10         : VAEntrypointEncSliceLP

And when I install plex:

PlexMediaServer install:   Intel i915 Hardware: Found

Alas, Plex is still not transcoding :unamused:

Jan 20, 2022 21:17:06.368 [0x7f211c842b38] Error — [Transcoder] [h264_vaapi @ 0x7fa2de515b40] Driver does not support any RC mode compatible with selected options (supported modes: CQP).

Here is my output:

willthethrill@beelink:/sys/module/i915/drivers$ ls -la
total 0
drwxr-xr-x 2 root root 0 Jan 20 21:29 .
drwxr-xr-x 7 root root 0 Jan 20 21:03 ..
lrwxrwxrwx 1 root root 0 Jan 20 21:29 pci:i915 -> ../../../bus/pci/drivers/i915
willthethrill@beelink:/sys/module/i915/drivers$ ls -la pci:i915/
total 0
drwxr-xr-x  2 root root    0 Jan 20 21:03 .
drwxr-xr-x 32 root root    0 Jan 20 21:03 ..
lrwxrwxrwx  1 root root    0 Jan 20 21:30 0000:00:02.0 -> ../../../../devices/pci0000:00/0000:00:02.0
--w-------  1 root root 4096 Jan 20 21:30 bind
lrwxrwxrwx  1 root root    0 Jan 20 21:30 module -> ../../../../module/i915
--w-------  1 root root 4096 Jan 20 21:30 new_id
--w-------  1 root root 4096 Jan 20 21:30 remove_id
--w-------  1 root root 4096 Jan 20 21:03 uevent
--w-------  1 root root 4096 Jan 20 21:30 unbind

I have successfully gotten plex hardware transcoding working on the beeling u59 intel Intel 11th Jasper Lake Processor N5095. Check it out!

This is what I had to do:

  • Install Ubuntu Server 20.04 LTS
  • Update & Upgrade
  • Upgrade the kernel to the latest 5.13 build (5.13.19-051319-generic as of today) using method 1 on this guide. (be careful copy pasting commands off that site, they don’t always work)
  • Installing the latest intel drivers from here (I don’t know if this is required, but it’s one of the steps I took)
  • Updating /etc/modprobe.d/i915.conf with the following contents
options i915 force_probe=4e55
options i915 enable_guc=2
  • Rebuilding initrd by running the following:
sudo update-initramfs -u

*Reboot and test

I hope that helps anyone with similar problems.

Thanks @ChuckPa for helping out so much! Question, on some intel site I saw that i915 enable_guc=2 was for pre gen 10 intel processors, why does it work here?

Thanks again!

2 Likes

Now look in /dev/dri to see if the inodes for the QSV ASIC area also realized.

I revisited this issue with a fresh install of Ubuntu 21.10. The solution is

echo "options i915 enable_guc=2" > /etc/modprobe.d/i915.conf as mentioned by @ChuckPa
and then update-initramfs -u as mentioned by @williamthrilliam

Kudos to both of you.

1 Like

This has also worked for me, thank you!

Additionally, @ChuckPa or anyone else involved in this thread, is there any way to get HDR tone mapping working on this hardware? I’ve followed this guide but it seems to have made no difference whatsoever.

Please show me the output of:

cat /proc/cpuinfo | grep 'model name' | head -1

If your JasperLake is in the same UHD family as all CPUs -9xxx and below, you’ll be able to use Beignet & OpenCL.

If not, you’ll need to use Intel Compute Runtime version 21.49

I’ll need additional info about which distro you’re using to guide further.

Hello, here’s the info you have requested:

rafael@upsilon:~$ cat /proc/cpuinfo | grep 'model name' | head -1
model name      : Intel(R) Celeron(R) N5095 @ 2.00GHz
rafael@upsilon:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.4 LTS
Release:        20.04
Codename:       focal
rafael@upsilon:~$ uname -a
Linux upsilon 5.13.0-39-generic #44~20.04.1-Ubuntu SMP Thu Mar 24 16:43:35 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

@Phaellow

It seems this was resolved?

The Debian installer should have given you the names of the packages to install.

Did it do so correctly?

If not, I’ll go figure out what I did wrong :confused:

The file /tmp/plexinstaller.log (if you still have it) will tell us what the installer found when it performed preinstallation inventory/evaluation

Hmm… @ChuckPa

I didn’t have the log from the original installation. I installed it from the repositories you provide, and I’m 100% that it installed beignet-opencl-icd.

In any case, I triggered a reinstall:

# Plex Media Server installation configuration info:  ter 19 abr 2022 17:39:33 WEST
Init=0
Systemd=1
Custom=0
LinuxContainer=0
NewInstall=0
HaveOverride=0
OverrideFile=""
PlexUser="plex"
PlexGroup="plex"
VideoGroup="render"
AppSuppDir="/var/lib/plexmediaserver/Library/Application Support"
PlexTempDir="/dev/shm"
LangEncoding="en_US.UTF-8"
ExistingVersion=12509
HaveHardware=1
HaveTranscoderPref=1
NeedUser=0
NeedGroup=0
NeedVideo=0
Verbose=1
Running=1
Errors=0
Warnings=0
HaveIntel=1
HaveIntelCore=0
HaveIntelXeon=0
Havei915=1
HaveNvidia=0
Processor=Intel(R) Celeron(R) N5095 @ 2.00GHz
CPUSKU=5095
NeedOpenCL=0
NeedBeignet=0
NeedIntelCompute=0
HaveIntelGmmlib=1
HaveIntelIGCCore=1
HaveIntelIGCOpenCL=1
HaveIntelOpenCL=1
HaveIntelCompute=1
HaveBeignet=1
HaveOpenCL=1
Platform="U59"
Processor="Intel(R) Celeron(R) N5095 @ 2.00GHz"
Distro="Ubuntu 20.04.4 LTS"
Kernel="Linux upsilon 5.13.0-39-generic #44~20.04.1-Ubuntu SMP Thu Mar 24 16:43:35 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux"
Memory="15783 1522 322"

I also have the two recommended packages installed:

rafael@upsilon:~$ sudo apt-get install ocl-icd-libopencl1 beignet-opencl-icd
Reading package lists... Done
Building dependency tree
Reading state information... Done
ocl-icd-libopencl1 is already the newest version (2.2.11-1ubuntu1).
beignet-opencl-icd is already the newest version (1.3.2-7build1).
0 upgraded, 0 newly installed, 0 to remove and 7 not upgraded.

But still, when I have HDR tone mapping enabled, I get no HW transcoding.

Thanks for taking the time:

  1. CPU SKU came out as it should… That was concern #1
CPUSKU=5095
  1. It did now properly detect the packages are installed
HaveBeignet=1
HaveOpenCL=1

If these two packages weren’t installed, it would print Warning/Info to install them if they couldn’t be installed with PMS using apt-get

Future ref:

You can always run the pre-install to check the status / inventory. It’s completely harmless and generates /tmp/plexinstaller.log

sudo /var/lib/dpkg/info/plexmediaserver.preinst

Can you please generate a set of DEBUG (not VERBOSE) logs which captures this happening? Everything you have shown should be working

Here are the debug logs for the HDR tone mapping not being hardware accelerated. I’m sorry if there are a lot of useless files, but I couldn’t find any instructions on how to trim/clear the logs.

Plex Media Server Logs_2022-04-19_20-04-46.zip (3.6 MB)

In looking at your logs, I’m seeing HEVC → HDR and tone mapped (the 'tonemap_opencl=tonemap=mobius` clause).

Apr 19, 2022 20:03:01.999 [0x7f652290cb38] DEBUG - [Transcode] [FFMPEG] - Created surface 0.
Apr 19, 2022 20:03:01.999 [0x7f652290cb38] DEBUG - [Transcode] [FFMPEG] - Direct mapping possible.
Apr 19, 2022 20:03:01.999 [0x7f652290cb38] DEBUG - [Transcode] TPU: hardware transcoding: final decoder: vaapi, final encoder: vaapi
Apr 19, 2022 20:03:02.000 [0x7f652290cb38] DEBUG - [Transcode/JobRunner] Job running: EnableExtendedVaFormats='1' FFMPEG_EXTERNAL_LIBS='/var/lib/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Codecs/62cc2bc-4278-linux-x86_64/' LIBVA_DRIVERS_PATH='/usr/lib/plexmediaserver/lib/dri' NEOReadDebugKeys='1' X_PLEX_TOKEN='xxxxxxxxxxxxxxxxxxxx' '/usr/lib/plexmediaserver/Plex Transcoder' '-codec:0' 'hevc' '-hwaccel:0' 'vaapi' '-hwaccel_fallback_threshold:0' '10' '-hwaccel_output_format:0' 'vaapi' '-hwaccel_device:0' 'vaapi' '-codec:1' 'dca' '-analyzeduration' '20000000' '-probesize' '20000000' '-i' '/media/rafael/MediaStorage/Movies/XXXXXX (2020)/XXXXXXX.IMAX.2160p.UHD.BluRay.x265.10bit.HDR.DTS-HD.MA.5.1-SWTYBLZ.mkv' '-filter_complex' '[0:0]hwupload[0];[0]scale_vaapi=w=1920:h=1080:format=p010[1];[1]hwmap=derive_device=opencl[2];[2]tonemap_opencl=tonemap=mobius:format=nv12:m=bt709:p=bt709:r=tv[3];[3]hwmap=derive_device=vaapi:reverse=1[4];[4]hwupload[5]' '-map' '[5]' '-metadata:s:0' 'language=eng' '-codec:0' 'h264_vaapi' '-b:0' '13682k' '-maxrate:0' '18243k' '-bufsize:0' '36486k' '-r:0' '23.975999999999999' '-filter_complex' '[0:1] aresample=async=1:ocl='\''5.1'\'':rematrix_maxval=0.000000dB:osr=48000[6]' '-map' '[6]' '-metadata:s:1' 'language=eng' '-codec:1' 'libopus' '-b:1' '687k' '-map' '0:3' '-metadata:s:2' 'language=eng' '-codec:2' 'copy' '-map' '0:t?' '-codec:t' 'copy' '-f' 'segment' '-segment_format' 'matroska' '-segment_format_options' 'live=1' '-segment_time' '1' '-segment_header_filename' 'header' '-segment_start_number' '0' '-segment_list' 'http://127.0.0.1:32400/video/:/transcode/session/p0of56tdoipbz5y144tljp3j/4d935a48-97d5-4dbb-bd91-9df163e780bb/manifest?X-Plex-Http-Pipeline=infinite' '-segment_list_type' 'csv' '-segment_list_unfinished' '1' '-segment_list_size' '5' '-segment_list_separate_stream_times' '1' '-avoid_negative_ts' 'disabled' '-map_metadata:g' '-1' '-map_metadata:c' '-1' '-map_chapters' '-1' 'chunk-%05d' '-start_at_zero' '-copyts' '-init_hw_device' 'vaapi=vaapi:' '-filter_hw_device' 'vaapi' '-y' '-nostats' '-loglevel' 'quiet' '-loglevel_plex' 'error' '-progressurl' 'http://127.0.0.1:32400/video/:/transcode/session/p0of56tdoipbz5y144tljp3j/4d935a48-97d5-4dbb-bd91-9df163e780bb/progress'
Apr 19, 2022 20:03:02.000 [0x7f652290cb38] DEBUG - [Transcode/JobRunner] Jobs: Starting child process with pid 6214
Apr 19, 2022 20:03:02.015 [0x7f65224aeb38] DEBUG - Request: [127.0.0.1:56238 (Loopback)] PUT /video/:/transcode/session/p0of56tdoipbz5y144tljp3j/4d935a48-97d5-4dbb-bd91-9df163e780bb/progress?status=startup (12 live) Signed-in Token (Phaellow) (upsilon) (range: bytes=0-) 

Can you turn off the sub titles and retry?