Eitsch Posted August 27, 2023 Share Posted August 27, 2023 (edited) 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 August 27, 2023 by Eitsch Quote Link to comment
xiaoruoruo Posted September 23, 2023 Share Posted September 23, 2023 Have you found out a solution? I'm facing the same issue on n5105. Quote Link to comment
Eitsch Posted September 25, 2023 Author Share Posted September 25, 2023 Hi, unfortunately no ... did not find a solution. Quote Link to comment
Glutao Posted September 27, 2023 Share Posted September 27, 2023 (edited) I was in the same boat. Pass the GPU to Jellyfin container like this. 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: Install also Intel GPU TOP plus the GPU Statistics plugins to see if the GPU is working: By the way, I'm using Linuxserver docker image. Edited September 27, 2023 by procedural-forecaster4720 Add more helpfull info Quote Link to comment
mung0 Posted October 20, 2023 Share Posted October 20, 2023 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 Quote Link to comment
newbieN5105 Posted January 7 Share Posted January 7 (edited) 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 January 7 by newbieN5105 Quote Link to comment
Glutao Posted January 7 Share Posted January 7 (edited) 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" Edited January 7 by Glutao Quote Link to comment
newbieN5105 Posted January 7 Share Posted January 7 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. Quote Link to comment
Glutao Posted January 9 Share Posted January 9 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. Running (`sudo mkdir -p /etc/modprobe.d`): 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). 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`. Running (`sudo sh -c "echo 'options i915 enable_guc=2' >> /etc/modprobe.d/i915.conf"`): This command appends the line `options i915 enable_guc=2` to a file named `i915.conf` within the `/etc/modprobe.d` directory. 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. 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. 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. Quote Link to comment
MisterMue Posted February 5 Share Posted February 5 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: 2. install GPU-statistics in the Unraid appstore - 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: 4. jellyfin settings in the transcoding section I would be glad it someone finds this helpful. Feel free to ask me when you have issues. 3 Quote Link to comment
FRU Posted February 8 Share Posted February 8 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. 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) 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: 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. 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 If transcoding using the GPU works it will look something like this on the dashboard: 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. 1 Quote Link to comment
Recommended Posts
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.