Jump to content

Intel n5105/JasperLake HW transcode with binhex-Jellyfin


Recommended Posts

Dear all,

I have an Intel n5105 CPU / JasperLake iGPU running with unRAID 6.12.3.

I want to run Jellyfin with hardware transcoding.

 

1) unRAID

I think the card is properly loaded as far the driver side tells.

The file „/boot/config/modprobe.d/i915.conf“ holds „options i915 enable_guc=2“, I also tried setting the value to „=3“. 

In „dmesg|grep i915“ I only see a message which might lead to an error, but I am not sure - „drm - Cannot find any crtc or sizes“

“ls -al /dev/dri“ shows three entries: 

- drwxrwxrwx by-path

- drwxrwxrwx card0

- drwxrwxrwx renderD128

2)

Installed binhex-Jellyfin docker from CA repo.

Setup transcoding both QSV and VAAPI don’t work. I also read on the forum that you should forward the „/dev/dri/renderD128“ to the docker, which I also did. After loading a video through Jellyfin I see an error that ffmpeg has been terminated with status 1…

 

Does there exist another way to test if the iGPU properly works? I do not really know if the problem comes from the driver load in unRAID, the implementation of Jellyfin or the forwarding into the docker…

 

Thanks and all the best!

tower-diagnostics-20230827-1417.zip

Edited by Eitsch
Link to comment
  • 4 weeks later...

I was in the same boat. Pass the GPU to Jellyfin container like this.


image.thumb.png.3386e55052969529d6d1ac78af82c42e.png

 

Guides: https://jellyfin.org/docs/general/administration/hardware-acceleration/intel/#low-power-encoding

In this one the only thing I didn't get to work in terms of command was the Step 3.

 

Make sure you run this and it works:

sudo mkdir -p /etc/modprobe.d
sudo sh -c "echo 'options i915 enable_guc=2' >> /etc/modprobe.d/i915.conf"

 

Go to /etc/modprobe.d and see if you have the i915.conf file with the options i915... there. Reboot and for me this worked. 

 

In terms of setting in Jellyfin is important to have this:

image.thumb.png.584c75afd692e9c371d4cfca6158e258.png

image.thumb.png.9d19082522d6aefff7f3d9be1814f79e.png

 

Install also Intel GPU TOP plus the GPU Statistics plugins to see if the GPU is working:

image.png.82e951bcbeb2b9ac0ba46559ef502f1c.png

 

 

 

 

 

 

 

 

By the way, I'm using Linuxserver docker image.

 

Edited by procedural-forecaster4720
Add more helpfull info
Link to comment
  • 4 weeks later...

Hi *,

 

had the same issue with my N6005, Unraid 6.12.4 and binhex Jellyfin. 

I noticed that the igpu must be working after i configured jellyfin as described above,

because the CPU usage when streaming a 4K Video dropped from above 80% to under 20%.

 

The only issue left is - i don't get any data shown in intel_gpu_top & Gpu Statistics.

 

BR,

Mung0

 

Link to comment
  • 2 months later...
Quote

Go to /etc/modprobe.d and see if you have the i915.conf file with the options i915... there. Reboot and for me this worked. 

Would you please point me at how to do this? I have tried the commands given in the JF guide you linked and got "no directory" on step 4.

 

I've completed steps under heading "Configure And Verify LP Mode On Linux" only, including

step 1 - using the pull firmwares from linux repository

step 2 - completed

step 3 - I skipped 3 as you said you couldn't get it to work (did I misread this?).

 

I added the device in jellyfin docker like you showed, enabled transcode settings in JF, and tried streaming with reduced quality to trigger transcoding.

intel_gpu_top is showing 0% across the board (hard to confirm this monitor is actually working)

 

Thank you!

Edited by newbieN5105
Link to comment
3 hours ago, Glutao said:

Did you get this to work?

 

sudo mkdir -p /etc/modprobe.d
sudo sh -c "echo 'options i915 enable_guc=2' >> /etc/modprobe.d/i915.conf"

 

 

I don't think so because on step 4 it can't find the directory, but I did run those lines yes.

Link to comment

Lets get some help from ChatGPT to understand the functions of these commands. Executing them ought to lead to the creation of the mentioned directory and file.

 

  1. Running (`sudo mkdir -p /etc/modprobe.d`):
    1. This command creates a directory named `modprobe.d` inside the `/etc` directory. If the directory already exists, the command will not do anything (thanks to the `-p` flag, which prevents errors if the directory exists).
    2. The `sudo` prefix ensures that the command is run with superuser (root) privileges, which is necessary because ordinary users typically don't have the permission to create directories under `/etc`.
  2. Running (`sudo sh -c "echo 'options i915 enable_guc=2' >> /etc/modprobe.d/i915.conf"`):
    1. This command appends the line `options i915 enable_guc=2` to a file named `i915.conf` within the `/etc/modprobe.d` directory.
    2. If `i915.conf` doesn't already exist, it will be created. If it does exist, the line is added to the end of the file without altering the existing content.
    3. The command is run with `sudo` for necessary privileges, and `sh -c` is used to correctly handle the redirection (`>>`) to a file with elevated permissions.
    4. The line added to `i915.conf` is a configuration setting for the Intel graphics driver (`i915`). Specifically, `enable_guc=2` is an option that activates certain features of the Intel graphics hardware.

Overall Effect:

  • These commands are typically run by users who need to customize their Linux kernel module behavior, in this case, the behavior of the Intel graphics driver.
  • By adding `options i915 enable_guc=2` to `i915.conf`, the user instructs the system to enable specific features of the Intel graphics hardware (specifically, GuC and HuC functionalities) whenever the `i915` module is loaded.
  • This is a fairly common way to tweak system performance or capabilities, especially in systems where specific hardware functionalities are required or when optimizing the system for specific workloads or preferences.
Link to comment
  • 4 weeks later...

For someone who, like me, has spent 2 weeks trying to set up transcoding for Jellyfin and has an N5105 board.

In the end it is pretty simple. 

 

My biggest problem was to use binhex version or linuxserver version . It only worked after using original Jellyfin image. jellyfin/jellyfin

 

I have set up the following:

 

1. navigate to Main, then under Boot Device go to Flash
    - under Syslinux Configuratuin in the Unraid Os section I now see the following:

928975513_Screenshot2024-02-05162109.thumb.png.21616e11b8aae6484714370ed334f4b5.png

 

2. install GPU-statistics in the Unraid appstore 1503823958_Screenshot2024-02-05162559.thumb.png.e91c06b3ffc5b2ea6c6892d410027c99.png
- Then you can check the usage in the Unraid Dashboard (don't forget to configure the Plugin by selecting the GPU in the config.


3. docker configuration for Jellyfin:

1993839085_Screenshot2024-02-05162237.thumb.png.f95095963c68313b4a247d3a6035270b.png

 

4. jellyfin settings in the transcoding section

1671031036_Screenshot2024-02-05162425.thumb.png.57d4d05454be49f669059bf5016d4aa2.png1277133350_Screenshot2024-02-05162444.thumb.png.9b583b5f6fba297cb453cd28438af0c5.png

 

I would be glad it someone finds this helpful. Feel free to ask me when you have issues. 

 

 

  • Thanks 3
Link to comment

Hi all, 

 

I am also hijacking this thread as this was the main hit when I was trying to figure out how to get Transcoding running with the N5105 in the last week since I set up my Unraid server. It is not really obvious how to get it running, especially for someone like me that has never worked on linux based systems.

 

The following steps worked for me using the linuxserver-jellyfin to get Trancoding running including HDR content. 

 

1. Ensure the i915 conf is done correctly as described by Glutao above. You can also check this in your unraid system parameters, I had a typo initially but was able to figure it out and correct here directly.

image.thumb.png.1b31cce14f57f42450755a8a31afb3e1.png

 

2. Add the Device parameter to pass the IGPU to the Docker container (Thanks to Glutao, this was a life saver, adding the screen here for completeness sake)

image.png.031bd0630481e5015313cc1f40f80c6c.png

 

3. I ran into an issue with HDR content where I got an error message in Jellyfin that the Media is not compatible, meaning transcoding is not working. This can be fixed by adding the following parameter to include the OpenCL Docker mod from linuxserver https://github.com/linuxserver/docker-mods/tree/jellyfin-opencl-intel. There is a description how to add it in the github that might be obvious to experience Docker/Linux users, but I had to fiddle around so add the following parameter to the docker container:

image.png.d95ea4a3c397f562e3911a165d452ffc.png

you can check if the variable has been set correctly using: 

docker exec jellyfin env

replace jellfin with your docker container name if it is different.

 

If it shows up like this you are good to go.

image.png.3ed733a25a960f84e10a45935181b7b3.png

 

4. Install GPU Statistics and Intel GPU TOP from the Community applications to be able to see if the GPU is used when Transcoding is active

image.thumb.png.03288175a4195b71d24380f3045cd89e.png

If transcoding using the GPU works it will look something like this on the dashboard: 

image.png.3cc669bf8a257d0c93d8be07611371ac.png

 

5. Inside Jellyfin apply the settings exactly as mentioned in the Posts from Glutao and MisterMue above. 

 

I hope that this will be helpful seing this page is the first hit for jellyfin N5105 Jasperlake issues. I managed to get it running after several days of searching through reddit, unraid forums and github. The least I can do is save others from going through the valley of tears. 

 

Happy to help if anyone has questions.

 

 

  • Thanks 1
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...