Jellyfin Forum
SOLVED: Intel A310 Transcoding on RHEL - Broken? - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: Troubleshooting (https://forum.jellyfin.org/f-troubleshooting)
+--- Thread: SOLVED: Intel A310 Transcoding on RHEL - Broken? (/t-solved-intel-a310-transcoding-on-rhel-broken)



Intel A310 Transcoding on RHEL - Broken? - sgt.ogre - 2025-05-20

Hello All,

I recently bought an Arc A310 to pass into a RHEL 10 VM (Almalinux specifically) and i get errors when transcoding files. Here is some general information. I think it is something with the guc and huc drivers. There is a failure in the huc logs:

  • Jellyfin is running as a rootless container under an unprivileged user. I have added this user to the Render and Video groups
  • Jellyfin can write to the config directory and it can direct play and use CPU transcoding on my test files just fine.
  • I have tried switching between the VA-API and QSV encoders with no luck.
  • I have attempted to turn on and off the lower power encoders, but i read that ARC uses them by default
  • I have downloaded the linux-firmware and added it to the host
  • I have modified the 2 mei settings mentioned here - https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7732

Here are some logs from the host machine:

Kernel Version - Alma Linux 10

Code:
[root@localhost boot]# uname -r

6.11.0-0.rc5.23.el10.x86_64


HUC information - There is an INIT FAIL here

Code:
[root@localhost ~]# sudo sh -c "cat /sys/kernel/debug/dri/0/gt*/uc/huc_info"
HuC firmware: i915/dg2_huc_gsc.bin
status: INIT FAIL
version: found 7.10.16
uCode: 0 bytes
RSA: 0 bytes
HuC status: 0x00164000

GUC Information - This seems fine

Code:
GuC firmware: i915/dg2_guc_70.bin
status: RUNNING
version: found 70.44.1
uCode: 377088 bytes
RSA: 384 bytes
GuC status 0x80030020:
Bootrom status = 0x10
uKernel status = 0x0
MIA Core status = 0x3
Scratch registers:
0: 0x0
1: 0xb03d7
2: 0x42c800
3: 0x4
4: 0x40
5: 0x3a0
6: 0x56a60005
7: 0x0
8: 0x0
9: 0x0
10: 0x0
11: 0x0
12: 0x0
13: 0x0
14: 0x0
15: 0x0

GuC logging stats:
Relay full count: 0
DEBUG: flush count          0, overflow count          0
CRASH: flush count          0, overflow count          0
CAPTURE: flush count          0, overflow count          0
CT enabled
H2G Space: 2080
Head: 503
Tail: 503
G2H Space: 12284
Head: 97
Tail: 97
GuC Submission API Version: 1.20.1
GuC Number Outstanding Submission G2H: 0
GuC tasklet count: 0
Requests in GuC submit tasklet:

Global scheduling policies:
  DPC promote time  = 500000
  Max num work items = 15
  Flags              = 0




i915.conf - Added this line

Code:
[root@podman-lab ~]# cat /etc/modprobe.d/i915.conf

options i915 enable_guc=3




dmesg output - error about mei modules


Code:
[root@localhost ~]# dmesg | grep -i -e 'huc' -e 'guc'
[    2.875281] i915 0000:00:10.0: [drm] GT0: HuC: can't load due to missing mei modules
[    2.875290] i915 0000:00:10.0: [drm] GT0: HuC: initialization failed -EIO
[    2.875964] i915 0000:00:10.0: [drm] GT0: GuC firmware i915/dg2_guc_70.bin version 70.44.1
[    2.875966] i915 0000:00:10.0: [drm] GT0: HuC firmware i915/dg2_huc_gsc.bin version 7.10.16
[    2.888560] i915 0000:00:10.0: [drm] GT0: GUC: submission enabled
[    2.888564] i915 0000:00:10.0: [drm] GT0: GUC: SLPC enabled
[    2.888841] i915 0000:00:10.0: [drm] GT0: GUC: RC enabled


Any Ideas?


RE: Intel A310 Transcoding on RHEL - Broken? - bitmap - 2025-05-20

Does RHEL allows for the use of the hardware enablement kernel? That might help if you're not already there. My system is Ubuntu, but is running 6.11.0-21-generic (actually hwe). Your kernel isn't too far off, but might need an upgrade.

Additionally, here's a bit of HuC/GuC info: https://jellyfin.org/docs/general/post-install/transcoding/hardware-acceleration/intel#configure-with-linux-virtualization

The note on that page says that ARC A-Series cards automatically have GuC enabled. Have you tried without that line in the i915.conf? To me, this seems like it might be a kernel issue but I can't point to that explicitly other than the documentation Jellyfin provides stating A-Series cards should run 6.2+ (or use the HWE stack).


RE: Intel A310 Transcoding on RHEL - Broken? - nyanmisaka - 2025-05-21


[ 2.875281] i915 0000:00:10.0: [drm] GT0: HuC: can't load due to missing mei modules
[ 2.875290] i915 0000:00:10.0: [drm] GT0: HuC: initialization failed -EIO


The problem is still with your kernel configuration, not Jellyfin. I don't know which specific configuration you are missing, but you must make HuC work properly in order for the hardware encoder on Intel Arc to work. Or it would be easier to switch to a Linux distribution that has better support for Intel Arc.


RE: Intel A310 Transcoding on RHEL - Broken? - sgt.ogre - 2025-05-21

Ok, i got it working and there are a few options for whoever runs across this:

If you switch to Fedora Server 42 it works great. No modifications needed other than the normal Video and Render group membership for the user running the container. The kernel version is new enough and it includes the drivers.

It also works on RHEL9 (tested on AlmaLinux 9) you just have to enable the kernel-ml using the steps below. The drivers were included with the kernel. This allows the GuC and HuC to load properly.

Code:
dnf install epel-release
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
dnf install https://www.elrepo.org/elrepo-release-9.el9.elrepo.noarch.rpm
dnf --enablerepo=elrepo-kernel install kernel-ml
grubby --default-kernel
---reboot the system---
---verify no error with the below commands---
dmesg | grep -i -e 'huc' -e 'guc'
sudo sh -c "cat /sys/kernel/debug/dri/0/gt*/uc/huc_info" --- You might need to change the dri/0 to dri/1 if you have more than 1 GPU
sudo sh -c "cat /sys/kernel/debug/dri/0/gt*/uc/guc_info" --- You might need to change the dri/0 to dri/1 if you have more than 1 GPU

Jellyfin now works will all options turned on, even Tone mapping. Getting over 120fps from 4K HDR to 1080P SDR.

I attempted this on RHEL10 (AlmaLinux again) and it does not work properly. That release is still in Beta so im not surprised.