this post was submitted on 16 Sep 2023
17 points (94.7% liked)

Jellyfin: The Free Software Media System

5741 readers
85 users here now

Current stable release: 10.10.2

Community Standards

Website

Forum

GitHub

Documentation

Feature Requests

Matrix (General Information & Help)

Matrix (Announcements)

Matrix (General Development)

Matrix (Off-Topic) - Come get to know the team and blow off steam!

Matrix Space - List of all the available rooms on Matrix.

Discord - Bridged to our Matrix rooms

founded 4 years ago
MODERATORS
 

Hello everyone,

I am trying to get my new A380 working on jellyfin for transcoding. My setup is headless so I have no X server or wayland installed.

I am running debian 12 bookworm with backported ZFS and kernel:

Linux Kiruna 6.4.0-0.deb12.2-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.4.4-3~bpo12+1 (2023-08-08) x86_64 GNU/Linux

According to everything I found, there is no need for any extra drivers as Intel card drivers are baked into the kernel and functional on 6.2+

I have followed the documentation regarding intel GPUs and added both /dev/dri and /dev/dri/renderD128 to my devices in jellyfin and restarted.

Executing vainfo in the container space returns this:

Trying display: drm
libva info: VA-API version 1.19.0
libva info: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_19
libva error: /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so init failed
libva info: va_openDriver() returns 1
libva info: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_19
libva error: /usr/lib/jellyfin-ffmpeg/lib/dri/i965_drv_video.so init failed
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit

vainfo on the main device sudo vainfo --display drm --device /dev/dri/card0 returns the same thing even though this command should work on headless servers.

executing docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va -init_hw_device opencl@va

for checking OpenCL gives this:

ffmpeg version 5.1.3-Jellyfin Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 11 (Ubuntu 11.4.0-1ubuntu1~22.04)
  configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-libs=-lfftw3f --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-libdrm --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libsvtav1 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-opencl --enable-vaapi --enable-amf --enable-libmfx --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
  libavutil      57. 28.100 / 57. 28.100
  libavcodec     59. 37.100 / 59. 37.100
  libavformat    59. 27.100 / 59. 27.100
  libavdevice    59.  7.100 / 59.  7.100
  libavfilter     8. 44.100 /  8. 44.100
  libswscale      6.  7.100 /  6.  7.100
  libswresample   4.  7.100 /  4.  7.100
  libpostproc    56.  6.100 / 56.  6.100
[AVHWDeviceContext @ 0x55e4877d54c0] Trying to use DRM render node for device 0.
[AVHWDeviceContext @ 0x55e4877d54c0] libva: VA-API version 1.19.0
[AVHWDeviceContext @ 0x55e4877d54c0] libva: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
[AVHWDeviceContext @ 0x55e4877d54c0] libva: Found init function __vaDriverInit_1_19
[AVHWDeviceContext @ 0x55e4877d54c0] libva: /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so init failed
[AVHWDeviceContext @ 0x55e4877d54c0] libva: va_openDriver() returns 1
[AVHWDeviceContext @ 0x55e4877d54c0] libva: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/i965_drv_video.so
[AVHWDeviceContext @ 0x55e4877d54c0] libva: Found init function __vaDriverInit_1_19
[AVHWDeviceContext @ 0x55e4877d54c0] libva: /usr/lib/jellyfin-ffmpeg/lib/dri/i965_drv_video.so init failed
[AVHWDeviceContext @ 0x55e4877d54c0] libva: va_openDriver() returns -1
[AVHWDeviceContext @ 0x55e4877d54c0] Failed to initialise VAAPI connection: -1 (unknown libva error).
Device creation failed: -5.
Failed to set value 'vaapi=va' for option 'init_hw_device': Input/output error
Error parsing global options: Input/output error

I also have under environment this option:

- DOCKER_MODS=linuxserver/mods:jellyfin-opencl-intel

because I am using the Linuxserver.io version of jellyfin.

Starting a show with hardware encoding then enables (VAAPI or QSV) results in "This client isn't compatible with the media and the server isn't sending a compatible media format." so hardware encoding definitely isn't working.

Does anyone have any idea if this is because I don't have a display driver installed? According to FFMPEG it shouldn't need an X server environment

Solution 5 months later:

After a lot of debuging, giving up, and starting again recently. I noticed that intel GuC was loading on start but HuC was not. I ended up having to download the entire linux firmware git repo, extracting the i915 folder and dropping it in my /usr/lib/firmware/.

Now it works perfectly!

you are viewing a single comment's thread
view the rest of the comments
[–] SteveTech@programming.dev 2 points 1 year ago (1 children)

Does anyone have any idea if this is because I don't have a display driver installed?

I have an A770 and vaapi seems to work fine headless for me. However, I don't know if this is related, but OneAPI/IPEX won't work until I have a Wayland session active.

[–] JustEnoughDucks@feddit.nl 2 points 1 year ago (1 children)

What is OneAPI? Is that a library from jellyfin?

[–] SteveTech@programming.dev 1 points 1 year ago* (last edited 1 year ago)

Nah it's an AI library for Intel, completly unrelated to Jellyfin, but seems to have similar issues to what you're facing with vaapi where it struggles to find the GPU.