Jump to content

Recommended Posts

Posted (edited)

I'd really appreciate the help (Should I post this here, or is there a more appropiate place?):

image.png.ad0509a3fc49d9e19078c7bb35c8b0cc.png

Hardware Encoding options are empty, however in the embyserver.txt logs FFMPEG succeeds to detect a vaapi decoding, and also quicksync. 

If I inspect the container in docker desktop, I see:

    "CpusetMems": "",
        "Devices": [
            {
                "PathOnHost": "/dev/dri/renderD128",
                "PathInContainer": "/dev/dri/renderD128",
                "CgroupPermissions": "rwm"
            },
            {
                "PathOnHost": "/dev/dri/card0",
                "PathInContainer": "/dev/dri/card0",
                "CgroupPermissions": "rwm"
            }
        ],

However, when it comes to hardware_detection.txt It defaults to software and cant find anything.

This is my Docker Compose:

  emby:
    image: emby/embyserver:latest
    container_name: embyserver
    environment:
      - UID=1000 
      - GID=4
      - GIDLIST=100,44,110
      - LIBVA_DRIVER_NAME=iHD
    group_add:
      - "44" #video
      - "110" #render
    volumes:
      - ./emby-data:/config # Configuration directory
      - /home/plex/Public/14TB/Series:/mnt/share1 # Media directory
      - /home/plex/Public/14TB/Movies:/mnt/share2 # Media directory
    ports:
      - 8096:8096 # HTTP port
      - 8920:8920 # HTTPS port
    privileged: true
    devices:
      - /dev/dri/renderD128:/dev/dri/renderD128
      - /dev/dri/card0:/dev/dri/card0
    restart: on-failure

 

I'm mounting the devices individually, but it is the same output when I pass /dev/dri only

I've confirmed that both card0 and renderD128 exist.

 

hardware_detection-63883103280.txt embyserver.txt

Edited by Flioner
Posted

This is using an Intel Core i5 11400 with RocketLake-S GT1 UHD Graphics 730

Posted

Unfortunately switching to the beta image, didn't work. I'm running out of troubleshooting steps

Posted

@Flionerare you able to try the native package on the host machine directly to see how things compare?

  • Agree 1
Q-Droid
Posted
14 hours ago, Flioner said:

This is using an Intel Core i5 11400 with RocketLake-S GT1 UHD Graphics 730

I think the current stable release should work for this CPU/iGPU.

What OS distro and version are you running?

I would start by removing/commenting these entries from your compose:

Quote

    - LIBVA_DRIVER_NAME=iHD
    group_add:
      - "44" #video
      - "110" #render

Run these to make sure the kernel is detecting the devices and loading the modules:

lspci -nn | grep -i vga
lsmod | grep -iE 'drm|video'
dmesg | grep -iE 'drm|vga|display|video'

And run this to make sure you're using the right groups for the graphics devices and set your GIDLIST to match:

ls -n /dev/dri
 

 

Posted

I am running ubuntu 22.04.5 LTS with an HDMI dummy plug, using iGPU for video output, intel-opencl-icd is already the newest version (22.14.22890-1). I'll also attach a vainfo output.

@Q-Droid

$ lspci -nn | grep -i vga
00:02.0 VGA compatible controller [0300]: Intel Corporation RocketLake-S GT1 [UHD Graphics 730] [8086:4c8b] (rev 04)
$ lsmod | grep -iE 'drm|video'
video                  77824  3 asus_wmi,xe,i915

$ dmesg | grep -iE 'drm|vga|display|video' 
dmesg: read kernel buffer failed: Operation not permitted

(Once sudo, it outputs blank)

$ ls -n /dev/dri
total 0
drwxrwxrwx  2 0   0       80 may 17 16:15 by-path
crwxrwxrwx+ 1 0  44 226,   0 may 17 16:15 card0
crwxrwxrwx+ 1 0 110 226, 128 may 17 16:15 renderD128

@LukeI'll run it directlly on the OS in a minute, and apologies for the late reply, I suspect it'll work but that is just speculation.

Extra details, and thanks for the help. If I launch the docker-compose.yaml without "privileged" it says that /dev/dri doesnt exist, even though it does and has card0 and renderD128, specifically (Error response from daemon: error gathering device information while adding custom device "/dev/dri/": no such file or directory)

Assinging devices: - /dev/dri or  - /dev/dri/card0 - /dev/dri/renderD128 results in the same output of: not working while privileged, and Error esponse from daemon when not.

Vainfo Output:

vainfo
libva info: VA-API version 1.14.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_14
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.14 (libva 2.12.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 22.3.1 ()
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
      VAProfileHEVCMain               :    VAEntrypointVLD
      VAProfileHEVCMain               :    VAEntrypointEncSliceLP
      VAProfileHEVCMain10             :    VAEntrypointVLD
      VAProfileHEVCMain10             :    VAEntrypointEncSliceLP
      VAProfileVP9Profile0            :    VAEntrypointVLD
      VAProfileVP9Profile1            :    VAEntrypointVLD
      VAProfileVP9Profile2            :    VAEntrypointVLD
      VAProfileVP9Profile3            :    VAEntrypointVLD
      VAProfileHEVCMain12             :    VAEntrypointVLD
      VAProfileHEVCMain422_10         :    VAEntrypointVLD
      VAProfileHEVCMain422_12         :    VAEntrypointVLD
      VAProfileHEVCMain444            :    VAEntrypointVLD
      VAProfileHEVCMain444            :    VAEntrypointEncSliceLP
      VAProfileHEVCMain444_10         :    VAEntrypointVLD
      VAProfileHEVCMain444_10         :    VAEntrypointEncSliceLP
      VAProfileHEVCMain444_12         :    VAEntrypointVLD
      VAProfileHEVCSccMain            :    VAEntrypointVLD
      VAProfileHEVCSccMain            :    VAEntrypointEncSliceLP
      VAProfileHEVCSccMain10          :    VAEntrypointVLD
      VAProfileHEVCSccMain10          :    VAEntrypointEncSliceLP
      VAProfileHEVCSccMain444         :    VAEntrypointVLD
      VAProfileHEVCSccMain444         :    VAEntrypointEncSliceLP
      VAProfileAV1Profile0            :    VAEntrypointVLD
      VAProfileHEVCSccMain444_10      :    VAEntrypointVLD
      VAProfileHEVCSccMain444_10      :    VAEntrypointEncSliceLP

Screenshot2025-05-18115914.thumb.png.d3a868916d758c64000e38587929fcc9.png

Posted

@Lukeapologies for the double tag, I've run it bare metal, and it works quite just fine:

bareMetal.png.f05a9d5d5f18c5730d91eac4c80b27ea.png

However I, for best practices, and a possible future migration to TRUENAS SCALE, would very strongly prefer to run the image in docker. I'm migrating from plex, and everything has been better so far, I really want to be able to just run emby from now on.

 

Q-Droid
Posted
1 hour ago, Flioner said:

$ lspci -nn | grep -i vga
00:02.0 VGA compatible controller [0300]: Intel Corporation RocketLake-S GT1 [UHD Graphics 730] [8086:4c8b] (rev 04)
$ lsmod | grep -iE 'drm|video'
video                  77824  3 asus_wmi,xe,i915

$ dmesg | grep -iE 'drm|vga|display|video' 
dmesg: read kernel buffer failed: Operation not permitted

(Once sudo, it outputs blank)

$ ls -n /dev/dri
total 0
drwxrwxrwx  2 0   0       80 may 17 16:15 by-path
crwxrwxrwx+ 1 0  44 226,   0 may 17 16:15 card0
crwxrwxrwx+ 1 0 110 226, 128 may 17 16:15 renderD128

I would have expected to see the DRM kernel modules loaded for the graphics. Do you have any boot customizations for modules or modesetting?

Any luck with modified compose after removing the options I listed? Since it's working on bare metal it should also work in Docker.

It looks like /dev/dri has been mucked with, permissions and ACLs. But again, if the pkg install works then Docker should as well.

 

Posted

No luck after removing the options listed. 

The different permissions/ACLs are due to a chmod command I ran, which is not secure or recommended, but was kind of a desperate attempt at allowing the docker image to access the device.

yocker
Posted (edited)

I'm not good at these docker composes but..

devices:
      - /dev/dri/renderD128:/dev/dri/renderD128
      - /dev/dri/card0:/dev/dri/card0
    restart: on-failure

Try with just a single /dev/dri or with a single /dev/dri/renderD128 not both or twice.
Also it might be --dev/dri (with two - )
I'm not sure though.
 

Edited by yocker
Posted
1 hour ago, Flioner said:

If I launch the docker-compose.yaml without "privileged" it says that /dev/dri doesnt exist, even though it does and has card0 and renderD128, specifically (Error response from daemon: error gathering device information while adding custom device "/dev/dri/": no such file or directory)

Assinging devices: - /dev/dri or  - /dev/dri/card0 - /dev/dri/renderD128 results in the same output of: not working while privileged, and Error esponse from daemon when not.

@yockerThanks for your response! While I agree with you, I've tried it both ways with no luck, unfortunately. It is a good diagnostic/troubleshooting step.

Posted

So I ran it with sudo and the --build flag. Perhaps a massive oversight by me? I feel like it should have worked even without it.

Q-Droid
Posted

Ran what with sudo?

 

Posted

Awful clarity from my part: I ran sudo docker compose --build , then sudo docker compose up -d and it worked

Q-Droid
Posted

That makes sense now as the expectation (and assumption) is that Docker and the admin commands are run as root. Otherwise it doesn't have the privileges needed to change the runtime UID, GID, supplemental GIDs and changes to ownership and permissions on the volumes will not work.

 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...