Ryzen GPU Drivers for APUs (2200G\2400G)


19 posts in this topic Last Reply

Recommended Posts

Please could the drivers for the Ryzen APUs be added. I believe the prerequisite kernel version is 4.15, and we're on 4.19.33 on the latest RC.

 

It was mentioned here by @eschultz, but ive never seen any mention of it getting implemented, or if it has been, how to enable it:

 

Id like to use the GPU to aid in transcoding in my plex docker (which while undocumented on the plex side, it does apparently work).

 

Even if it wasn't enabled by default, and required adding boot code(s) in syslinux, or a modprobe command in the go file, id be happy!

Or even if there was documentation somewhere on creating a custom kernel with the driver enabled? 

 

The 2400G is a little workhorse, and adding GPU transcoding would make it a pretty amazing!

Link to post
  • 2 weeks later...

I don't know whether the Vega iGPU can be used to accelerate Plex transcoding. In theory it ought to be possible but only if Plex has been coded to make use of it. However, it's much more powerful than any Intel iGPU and I would like to see the driver included so that containers such as FoldingAtHome can make use of its OpenCL capabilities.

Link to post

I have read reports that the Vega iGPU can be used for transcoding in the plex forums, however with it being quite a niche situation where you have a plex server, AND one of the very few CPUs with the vega iGPU, reports are few and far between. 

However, to be in a position to test, and to be able to talk with people in the plex forum on how to get it working, I need to be able to expose it to my docker container!

Also like youve said, its not just plex which could make use of the iGPU.

Link to post
  • 1 year later...

I do not own an AMD iGPU, but I found this thread and so I wrote the following script to execute it on an Unraid server to build and install a OpenCL slackware package:

#!/bin/bash

# install ar
if [[ "$(ar -V)" =~ "command not found" ]]; then
    if [[ ! -f "/tmp/binutils-2.26-x86_64-3.txz" ]]; then
        wget -N http://slackware.cs.utah.edu/pub/slackware/slackware64-14.2/slackware64/d/binutils-2.26-x86_64-3.txz -P /tmp
        if [ $? -ne 0 ]; then
            exit 1
        fi
    fi
    upgradepkg --install-new /tmp/binutils-2.26-x86_64-3.txz
fi

# download amd driver
if [[ ! -f "/tmp/amdgpu-pro-20.10-1048554-ubuntu-18.04.tar.xz" ]]; then
    wget --referer http://support.amd.com/en-us/kb-articles/Pages/AMDGPU-PRO-Driver-for-Linux-Release-Notes.aspx -N https://drivers.amd.com/drivers/linux/amdgpu-pro-20.10-1048554-ubuntu-18.04.tar.xz -P /tmp
    if [ $? -ne 0 ]; then
        exit 1
    fi
fi

# download amdgpu-opencl.SlackBuild
if [[ ! -f "/tmp/amdgpu-opencl.SlackBuild" ]]; then
    wget -N http://www.linuxgalaxy.org/files/sbo-testing/15.0/system/amdgpu-opencl/amdgpu-opencl.SlackBuild -P /tmp
    if [ $? -ne 0 ]; then
        exit 1
    fi
fi

# check md5
md5=($(md5sum /tmp/amdgpu-opencl.SlackBuild))

if [[ $md5 != "1a5eb32e6f56878b1f1d9b72aa6442c3" ]]; then
    echo "amdgpu-opencl.SlackBuild file has changed. Check the content first and then ugrade the MD5 hash"
    exit 1
fi

# download doinst.sh
if [[ ! -f "/tmp/doinst.sh" ]]; then
    wget -N http://www.linuxgalaxy.org/files/sbo-testing/15.0/system/amdgpu-opencl/doinst.sh -P /tmp
    if [ $? -ne 0 ]; then
        exit 1
    fi
fi

# check md5
md5=($(md5sum /tmp/doinst.sh))

if [[ $md5 != "b89a40ceb5e6da6549561cbc9476d1cf" ]]; then
    echo "doinst.sh file has changed. Check the content first and then ugrade the MD5 hash"
    exit 1
fi

# download slack-desc
if [[ ! -f "/tmp/slack-desc" ]]; then
    wget -N http://www.linuxgalaxy.org/files/sbo-testing/15.0/system/amdgpu-opencl/slack-desc -P /tmp
    if [ $? -ne 0 ]; then
        exit 1
    fi
fi

# check md5
md5=($(md5sum /tmp/slack-desc))

if [[ $md5 != "3ec9c54ff70e47802b4ffe78fbc57f9a" ]]; then
    echo "slack-desc file has changed. Check the content first and then ugrade the MD5 hash"
    exit 1
fi

# build slackware package
cd /tmp
sh /tmp/amdgpu-opencl.SlackBuild

# install opencl package
upgradepkg --install-new /tmp/amdgpu-opencl-20.10-x86_64-1_kb.tgz

As I already created the package this way, feel free to use this alternatively:

#!/bin/bash

# download mesa package driver
if [[ ! -f "/tmp/amdgpu-opencl-20.10-x86_64-1_kb.tgz" ]]; then
    wget -N https://www.dropbox.com/s/fsoo59opy6l7vuk/amdgpu-opencl-20.10-x86_64-1_kb.tgz?dl=1 -P /tmp
    if [ $? -ne 0 ]; then
        exit 1
    fi
fi

# check md5
md5=($(md5sum /tmp/amdgpu-opencl-20.10-x86_64-1_kb.tgz))

if [[ $md5 != "20a6ccd5aa647ab073119be742a7e33c" ]]; then
    echo "$md5 is the wrong MD5 hash!"
    exit 1
fi

# install opencl package
upgradepkg --install-new /tmp/amdgpu-opencl-20.10-x86_64-1_kb.tgz

 

Link to post
On 10/29/2020 at 11:33 AM, mgutt said:

I do not own an AMD iGPU, but I found this thread and so I wrote the following script

 

Surprised this isn't getting any attention yet

 

I am considering grabbing a 3400g and this would be icing on the cake! 

 

Would anyone know if there's a reason why this would not work?

Link to post
  • 4 weeks later...
On 10/29/2020 at 11:33 AM, mgutt said:

I do not own an AMD iGPU, but I found this thread and so I wrote the following script to execute it on an Unraid server to build and install a Mesa 20.10 slackware package:


...

As I already created the package this way, feel free to use this alternatively:


...

 

Now I think you only need to pass the /dev/dri path to the Plex container as described here:

https://forums.unraid.net/topic/77943-guide-plex-hardware-acceleration-using-intel-quick-sync/

 

Maybe its needed to set an environment variable as described here:

https://emby.media/community/index.php?/topic/72084-going-mental-over-ryzen-2400g-vega-vaapi/page/2/&tab=comments#comment-880533

 

Good luck!

 

I find it marvelous that you would go this length to build these drivers without even owning an AMD! I own a ryzen 2400g and tried to install your package. It would install (or so it says), but there is no existence of any /dev/dri when I look for it. Shouldn't it simply show up when I enter the command ls /dev? I did try a reboot to no avail. Should I go ahead and pass /dev/dri to the plex server container anyway?

Link to post

Sorry, I don't know why, but I misinterpreted the linked thread. I build only the OpenCL driver. The Mesa 20 driver that is really needed should be this one:

https://slackware.pkgs.org/current/slackware-x86_64/mesa-20.2.3-x86_64-1.txz.html

 

And this one should be handy, to check the driver through vainfo:

https://slackware.pkgs.org/14.2/slackware-x86_64/libva-1.6.2-x86_64-1.txz.html

or this one:

https://slackware.pkgs.org/current/slackware-x86_64/libva-2.9.1-x86_64-1.txz.html

 

Example output:

https://emby.media/community/index.php?/topic/72084-going-mental-over-ryzen-2400g-vega-vaapi/

 

Note: Mesa 20 is only available for the "current" version of Slackware, which is a dev/beta version and I do not know if the package is compatible with 14.2. Needs testing.

 

The OpenCL driver could be needed in the future for HDR SDR conversion (tone mapping).

Link to post
  • 1 month later...

Seems that in the 6.9.0 beta35 release they have included amdgpu drivers. Check 

Quote

New in this release:


GPU Driver Integration

Unraid OS now includes selected in-tree GPU drivers: ast (Aspeed), i915 (Intel), amdgpu and radeon (AMD).  These drivers are blacklisted by default via 'conf' files in /etc/modprobe.d:

 

Then take a look at this thread 

https://forums.unraid.net/bug-reports/prereleases/unraid-os-version-690-rc2-available-r1192/page/4/?tab=comments

 

There is someone that asks if it supports 3200g/3400g 

Quote

Asked on reddit as well

 

With the integration of the amdgpu drivers, does that now allow the use of amd igpu's from chips like 3200g and 3400g to be used in docker containers for transcoding, same as intel igpu's?

Quote

Yes, subject, of course, to the containers' ability to make use of them. You mention transcoding, but AMD GPUs aren't currently officially supported by Plex - see the blue box on this page: https://support.plex.tv/articles/115002178853-using-hardware-accelerated-streaming/

 

Hope this helps, I can't test it for now.

 

Link to post
  • 1 month later...

Hi everyone!
In the last few days I switched from Athlon 220 GE to Ryzen 3400G. 

The AMD GPU drivers and hardware Transcoding are huge topics in my "to do" list, so here I am.

 

Here below the configuration steps:

  1.  GPU Driver Integration --> un-blacklisted AMD drivers:

    image.thumb.png.495a0334e625c816f43e1cb4d4b258f9.png
     
    root@JimmyHTPC:~# ls -la /dev/dri/
    total 0
    drwxr-xr-x  3 root root       100 Feb 22 22:14 ./
    drwxr-xr-x 16 root root      3460 Feb 23 14:10 ../
    drwxr-xr-x  2 root root        80 Feb 22 22:14 by-path/
    crw-rw----  1 root video 226,   0 Feb 22 22:14 card0
    crw-rw----  1 root video 226, 128 Feb 22 22:14 renderD128
    

     

  2. Following the tips in Got HW Transcoding to work with libva/vaapi on Raden APU (Ryzen 7 4700U) I have deployed the custom version "mauimauer/plex:jan2021-v2".
    Container libva drivers for AMD GPUs plus related shared libraries:
     

    # cd /usr/lib/plexmediaserver/lib
    # ls -la
    total 50996
    drwxr-xr-x 1 root root    1660 Feb 21 00:13 .
    drwxr-xr-x 1 root root     364 Feb 21 00:13 ..
    drwxr-xr-x 1 root root     108 Feb 21 00:13 dri
    -rw-r--r-- 1 root root 4361312 Feb 17 17:30 libavcodec.so.58
    -rw-r--r-- 1 root root 6057904 Feb 17 17:30 libavfilter.so.7
    -rw-r--r-- 1 root root 5516920 Feb 17 17:30 libavformat.so.58
    -rw-r--r-- 1 root root  523320 Feb 17 17:30 libavutil.so.56
    -rw-r--r-- 1 root root    7696 Feb 17 17:30 libboost_atomic.so
    -rw-r--r-- 1 root root   67456 Feb 17 17:30 libboost_chrono.so
    -rw-r--r-- 1 root root   70848 Feb 17 17:30 libboost_date_time.so
    -rw-r--r-- 1 root root  137456 Feb 17 17:30 libboost_filesystem.so
    -rw-r--r-- 1 root root  310784 Feb 17 17:30 libboost_iostreams.so
    -rw-r--r-- 1 root root 1727272 Feb 17 17:30 libboost_locale.so
    -rw-r--r-- 1 root root  650976 Feb 17 17:30 libboost_program_options.so
    -rw-r--r-- 1 root root   62976 Feb 17 17:30 libboost_random.so
    -rw-r--r-- 1 root root 1029672 Feb 17 17:30 libboost_regex.so
    -rw-r--r-- 1 root root    7312 Feb 17 17:30 libboost_system.so
    -rw-r--r-- 1 root root  230336 Feb 17 17:30 libboost_thread.so
    -rw-r--r-- 1 root root   40400 Feb 17 17:30 libboost_timer.so
    -rw-r--r-- 1 root root 2830544 Feb 17 17:30 libcrypto.so.1.1
    -rw-r--r-- 1 root root  421480 Feb 17 17:30 libcurl.so
    -rw-r--r-- 1 root root   43544 Jan 26 17:58 libdrm_amdgpu.so.1
    -rw-r--r-- 1 root root  137472 Feb 17 17:30 libdrm_intel.so.1
    -rw-r--r-- 1 root root   76408 Feb 17 17:30 libdrm.so.2
    -rw-r--r-- 1 root root   83264 Feb 17 17:30 libexslt.so.0
    -rw-r--r-- 1 root root  140496 Feb 17 17:30 libfmt.so.4
    -rw-r--r-- 1 root root 7384216 Feb 17 17:30 libfreeimage.so
    -rw-r--r-- 1 root root  156104 Feb 17 17:30 libgmock.so
    -rw-r--r-- 1 root root  500856 Feb 17 17:30 libgtest.so
    -rw-r--r-- 1 root root   96064 Feb 17 17:30 libhdhomerun.so
    -rw-r--r-- 1 root root 1236696 Feb 17 17:30 libidn2.so
    -rw-r--r-- 1 root root 1132544 Feb 17 17:30 libigdgmm.so.plex
    -rw-r--r-- 1 root root   62800 Feb 17 17:30 libminiupnpc.so.17
    -rw-r--r-- 1 root root 2592224 Feb 17 17:30 libopencv_core.so.3.1
    -rw-r--r-- 1 root root 2754360 Feb 17 17:30 libopencv_imgproc.so.3.1
    -rw-r--r-- 1 root root   41696 Feb 17 17:30 libpciaccess.so.0
    -rw-r--r-- 1 root root 1667024 Feb 17 17:30 libpion.so
    -rw-r--r-- 1 root root 2034976 Feb 17 17:30 libpython2.7.so.1.0
    -rw-r--r-- 1 root root  368208 Feb 17 17:30 libsoci_core.so
    -rw-r--r-- 1 root root   98176 Feb 17 17:30 libsoci_sqlite3.so
    -rw-r--r-- 1 root root 1402592 Feb 17 17:30 libsqlite3.so
    -rw-r--r-- 1 root root  587064 Feb 17 17:30 libssl.so.1.1
    -rw-r--r-- 1 root root 1272424 Feb 17 17:30 libstdc++.so.6
    -rw-r--r-- 1 root root  149920 Feb 17 17:30 libswresample.so.3
    -rw-r--r-- 1 root root  829824 Feb 17 17:30 libswscale.so.5
    -rw-r--r-- 1 root root 1257936 Feb 17 17:30 libtag.so.1
    -rw-r--r-- 1 root root   93816 Feb 17 17:30 libusb-1.0.so.0
    -rw-r--r-- 1 root root   12376 Feb 17 17:30 libva-drm.so.2
    -rw-r--r-- 1 root root  161992 Feb 17 17:30 libva.so.2
    -rw-r--r-- 1 root root 1430800 Feb 17 17:30 libxml2.so.2
    -rw-r--r-- 1 root root  260240 Feb 17 17:30 libxslt.so.1
    -rw-r--r-- 1 root root     920 Feb 17 18:26 plexmediaserver.default
    -rwxr-xr-x 1 root root    6711 Feb 17 18:26 plexmediaserver.init
    -rw-r--r-- 1 root root    1709 Feb 17 18:26 plexmediaserver.service
    # ls -la dri/
    total 53600
    drwxr-xr-x 1 root root      108 Feb 21 00:13 .
    drwxr-xr-x 1 root root     1660 Feb 21 00:13 ..
    -rw-r--r-- 1 root root  7852504 Feb 17 17:30 i965_drv_video.so
    -rw-r--r-- 1 root root 36357472 Feb 17 17:30 iHD_drv_video.so
    -rw-r--r-- 1 root root 10668448 Jan 26 17:58 radeonsi_drv_video.so

 

 

As far as I understand it's all ready to go for HW transconding... but it's not working though:
 

image.png.2e066969b5937e38cc9c40af0c081b17.png

 

Here below my Plex logs:

 

Plex_HWTranscoding.txt

 

From a noob perspective the issue should be here:

 

Feb 24, 2021 12:07:10.916 [0x14f43b5fa700] DEBUG - [Transcode] Codecs: testing h264_nvenc (encoder)
Feb 24, 2021 12:07:10.918 [0x14f43b5fa700] DEBUG - [Transcode] Codecs: hardware transcoding: testing API nvenc
Feb 24, 2021 12:07:10.928 [0x14f43b5fa700] ERROR - [Transcode] [FFMPEG] - Cannot load libcuda.so.1
Feb 24, 2021 12:07:10.928 [0x14f43b5fa700] ERROR - [Transcode] [FFMPEG] - Could not dynamically load CUDA
Feb 24, 2021 12:07:10.928 [0x14f43b5fa700] DEBUG - [Transcode] Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: Unknown error occurred
Feb 24, 2021 12:07:10.929 [0x14f43b5fa700] DEBUG - [Transcode] Codecs: testing hevc (decoder) with hwdevice vaapi
Feb 24, 2021 12:07:10.929 [0x14f43b5fa700] DEBUG - [Transcode] Codecs: hardware transcoding: testing API vaapi
Feb 24, 2021 12:07:10.954 [0x14f43b5fa700] ERROR - [Transcode] [FFMPEG] - libva: dlopen of /usr/lib/plexmediaserver/lib/dri/radeonsi_drv_video.so failed: /usr/lib/plexmediaserver/lib/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /lib/x86_64-linux-gnu/libLLVM-11.so.1)
Feb 24, 2021 12:07:10.954 [0x14f43b5fa700] ERROR - [Transcode] [FFMPEG] - Failed to initialise VAAPI connection: -1 (unknown libva error).
Feb 24, 2021 12:07:10.954 [0x14f43b5fa700] DEBUG - [Transcode] Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: Input/output error

 

Thanks in advance!

 

Gianmarco

 

Edited by jimmy898
incomplete post
Link to post
1 hour ago, jimmy898 said:

As far as I understand it's all ready to go for HW transconding... but it's not working though

Plex doesn't officially support AMD iGPU's.

 

If you are interested you can try my Jellyfin container from the CA App where transcoding is working with AMD iGPU's.

 

EDIT: Oh and both CPU's that you are mentioned are tested and working. ;)

Link to post
20 hours ago, ich777 said:

Plex doesn't officially support AMD iGPU's.

 

If you are interested you can try my Jellyfin container from the CA App where transcoding is working with AMD iGPU's.

 

EDIT: Oh and both CPU's that you are mentioned are tested and working. ;)

I'm aware of the current lack of support, unfortunately I'm too bound with Plex to switch torward Jellyfin 😔

For the moment I'll keep my hope and faith in Plex, but in case of switch your container will be the first option 100%

 

19 hours ago, mgutt said:

Post your container settings.

 

Here below my template:

 

<?xml version="1.0"?>
<Container version="2">
  <Name>PlexMediaServer</Name>
  <Repository>mauimauer/plex:jan2021-v2</Repository>
  <Registry>https://hub.docker.com/r/plexinc/pms-docker/</Registry>
  <Network>t2_proxy</Network>
  <MyIP/>
  <Shell>sh</Shell>
  <Privileged>false</Privileged>
  <Support>https://forums.plex.tv/categories/docker</Support>
  <Project>https://plex.tv/</Project>
  <Overview>Plex Media Server&#xD;
 &#xD;
    Enjoy your media on all your devices.&#xD;
    All your movie, TV Show, music, and photo collections at your fingertips, anywhere you go on all the devices you love.</Overview>
  <Category>MediaServer:Video MediaServer:Music MediaServer:Photos</Category>
  <WebUI>http://[IP]:[PORT:32400]/web</WebUI>
  <TemplateURL>https://raw.githubusercontent.com/plexinc/pms-docker/master/plex-unRAID.xml</TemplateURL>
  <Icon>https://raw.githubusercontent.com/plexinc/pms-docker/master/img/plex-server.png</Icon>
  <ExtraParams>-h JimmyPlex --device=/dev/dri</ExtraParams>
  <PostArgs/>
  <CPUset/>
  <DateInstalled>1613862768</DateInstalled>
  <DonateText/>
  <DonateLink/>
  <Description>Plex Media Server&#xD;
 &#xD;
    Enjoy your media on all your devices.&#xD;
    All your movie, TV Show, music, and photo collections at your fingertips, anywhere you go on all the devices you love.</Description>
  <Networking>
    <Mode>t2_proxy</Mode>
    <Publish>
      <Port>
        <HostPort>32400</HostPort>
        <ContainerPort>32400</ContainerPort>
        <Protocol>tcp</Protocol>
      </Port>
      <Port>
        <HostPort>3005</HostPort>
        <ContainerPort>3005</ContainerPort>
        <Protocol>tcp</Protocol>
      </Port>
      <Port>
        <HostPort>8324</HostPort>
        <ContainerPort>8324</ContainerPort>
        <Protocol>tcp</Protocol>
      </Port>
      <Port>
        <HostPort>32469</HostPort>
        <ContainerPort>32469</ContainerPort>
        <Protocol>tcp</Protocol>
      </Port>
      <Port>
        <HostPort>1900</HostPort>
        <ContainerPort>1900</ContainerPort>
        <Protocol>udp</Protocol>
      </Port>
      <Port>
        <HostPort>32410</HostPort>
        <ContainerPort>32410</ContainerPort>
        <Protocol>udp</Protocol>
      </Port>
      <Port>
        <HostPort>32412</HostPort>
        <ContainerPort>32412</ContainerPort>
        <Protocol>udp</Protocol>
      </Port>
      <Port>
        <HostPort>32413</HostPort>
        <ContainerPort>32413</ContainerPort>
        <Protocol>udp</Protocol>
      </Port>
      <Port>
        <HostPort>32414</HostPort>
        <ContainerPort>32414</ContainerPort>
        <Protocol>udp</Protocol>
      </Port>
    </Publish>
  </Networking>
  <Data>
    <Volume>
      <HostDir>/mnt/user/temp/</HostDir>
      <ContainerDir>/transcode</ContainerDir>
      <Mode>rw</Mode>
    </Volume>
    <Volume>
      <HostDir>/mnt/user/media/</HostDir>
      <ContainerDir>/data</ContainerDir>
      <Mode>rw</Mode>
    </Volume>
    <Volume>
      <HostDir>/mnt/user/personal/</HostDir>
      <ContainerDir>/private</ContainerDir>
      <Mode>rw</Mode>
    </Volume>
    <Volume>
      <HostDir>/mnt/user/appdata/PlexMediaServer</HostDir>
      <ContainerDir>/config</ContainerDir>
      <Mode>rw</Mode>
    </Volume>
  </Data>
  <Environment>
    <Variable>
      <Value>xxxxxxxxxxxxxxxxxxxx</Value>
      <Name>PLEX_CLAIM</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>99</Value>
      <Name>PLEX_UID</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>100</Value>
      <Name>PLEX_GID</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>latest</Value>
      <Name>VERSION</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>http://192.168.xxx.xxx:32400/</Value>
      <Name>ADVERTISE_IP</Name>
      <Mode/>
    </Variable>
  </Environment>
  <Labels>
    <Label>
      <Value>true</Value>
      <Name>traefik.enable</Name>
      <Mode/>
    </Label>
    <Label>
      <Value>https</Value>
      <Name>traefik.http.routers.plex-rtr.entrypoints</Name>
      <Mode/>
    </Label>
    <Label>
      <Value>Host(`xxxxxxxxxxxxxxxxxx`)</Value>
      <Name>traefik.http.routers.plex-rtr.rule</Name>
      <Mode/>
    </Label>
    <Label>
      <Value>plex-svc</Value>
      <Name>traefik.http.routers.plex-rtr.service</Name>
      <Mode/>
    </Label>
    <Label>
      <Value>32400</Value>
      <Name>traefik.http.services.plex-svc.loadbalancer.server.port</Name>
      <Mode/>
    </Label>
    <Label>
      <Value>chain-oauth@file</Value>
      <Name>traefik.http.routers.plex-rtr.middlewares</Name>
      <Mode/>
    </Label>
  </Labels>
  <Config Name="Host Port 1" Target="32400" Default="32400" Mode="tcp" Description="Container Port: 32400" Type="Port" Display="always" Required="true" Mask="false">32400</Config>
  <Config Name="Host Port 2" Target="3005" Default="3005" Mode="tcp" Description="Container Port: 3005" Type="Port" Display="always" Required="true" Mask="false">3005</Config>
  <Config Name="Host Port 3" Target="8324" Default="8324" Mode="tcp" Description="Container Port: 8324" Type="Port" Display="always" Required="true" Mask="false">8324</Config>
  <Config Name="Host Port 4" Target="32469" Default="32469" Mode="tcp" Description="Container Port: 32469" Type="Port" Display="always" Required="true" Mask="false">32469</Config>
  <Config Name="Host Port 5" Target="1900" Default="1900" Mode="udp" Description="Container Port: 1900" Type="Port" Display="always" Required="true" Mask="false">1900</Config>
  <Config Name="Host Port 6" Target="32410" Default="32410" Mode="udp" Description="Container Port: 32410" Type="Port" Display="always" Required="true" Mask="false">32410</Config>
  <Config Name="Host Port 7" Target="32412" Default="32412" Mode="udp" Description="Container Port: 32412" Type="Port" Display="always" Required="true" Mask="false">32412</Config>
  <Config Name="Host Port 8" Target="32413" Default="32413" Mode="udp" Description="Container Port: 32413" Type="Port" Display="always" Required="true" Mask="false">32413</Config>
  <Config Name="Host Port 9" Target="32414" Default="32414" Mode="udp" Description="Container Port: 32414" Type="Port" Display="always" Required="true" Mask="false">32414</Config>
  <Config Name="Host Path 2" Target="/transcode" Default="" Mode="rw" Description="Container Path: /transcode" Type="Path" Display="always" Required="true" Mask="false">/mnt/user/temp/</Config>
  <Config Name="Host Path 3" Target="/data" Default="" Mode="rw" Description="Container Path: /data" Type="Path" Display="always" Required="true" Mask="false">/mnt/user/media/</Config>
  <Config Name="Key 1" Target="PLEX_CLAIM" Default="Insert Token from https://plex.tv/claim" Mode="" Description="Container Variable: PLEX_CLAIM" Type="Variable" Display="always" Required="false" Mask="false">claim-zUyjdosybEs9sZ5x9geo</Config>
  <Config Name="Key 2" Target="PLEX_UID" Default="99" Mode="" Description="Container Variable: PLEX_UID" Type="Variable" Display="always" Required="false" Mask="false">99</Config>
  <Config Name="Key 3" Target="PLEX_GID" Default="100" Mode="" Description="Container Variable: PLEX_GID" Type="Variable" Display="always" Required="false" Mask="false">100</Config>
  <Config Name="Key 4" Target="VERSION" Default="latest" Mode="" Description="Container Variable: VERSION" Type="Variable" Display="always" Required="false" Mask="false">latest</Config>
  <Config Name="Key 5" Target="ADVERTISE_IP" Default="http://192.168.8.108:32400/" Mode="" Description="Container Variable: ADVERTISE_IP" Type="Variable" Display="always" Required="false" Mask="false">http://192.168.8.108:32400/</Config>
  <Config Name="Host Path 3" Target="/private" Default="" Mode="rw" Description="Container Path: /private" Type="Path" Display="always" Required="false" Mask="false">/mnt/user/personal/</Config>
  <Config Name="AppData Config Path" Target="/config" Default="/mnt/user/appdata/PlexMediaServer" Mode="rw" Description="Container Path: /config" Type="Path" Display="advanced-hide" Required="true" Mask="false">/mnt/user/appdata/PlexMediaServer</Config>
  <Config Name="Host Label 1" Target="traefik.enable" Default="true" Mode="" Description="Container Label: traefik.enable" Type="Label" Display="advanced-hide" Required="true" Mask="false">true</Config>
  <Config Name="Host Label 2" Target="traefik.http.routers.plex-rtr.entrypoints" Default="https" Mode="" Description="Container Label: traefik.http.routers.plex-rtr.entrypoints" Type="Label" Display="advanced-hide" Required="true" Mask="false">https</Config>
  <Config Name="Host Label 3" Target="traefik.http.routers.plex-rtr.rule" Default="Host(`xxxxxxxxxxxxxxxxx`)" Mode="" Description="Container Label: traefik.http.routers.plex-rtr.rule" Type="Label" Display="advanced-hide" Required="true" Mask="false">Host(`xxxxxxxxxxxxxx`)</Config>
  <Config Name="Host Label 5" Target="traefik.http.routers.plex-rtr.service" Default="plex-svc" Mode="" Description="Container Label: traefik.http.routers.plex-rtr.service" Type="Label" Display="advanced-hide" Required="true" Mask="false">plex-svc</Config>
  <Config Name="Host Label 6" Target="traefik.http.services.plex-svc.loadbalancer.server.port" Default="32400" Mode="" Description="Container Label: traefik.http.services.plex-svc.loadbalancer.server.port" Type="Label" Display="advanced-hide" Required="true" Mask="false">32400</Config>
  <Config Name="Host Label 7" Target="traefik.http.routers.plex-rtr.middlewares" Default="chain-oauth@file" Mode="" Description="Container Label: traefik.http.routers.plex-rtr.middlewares" Type="Label" Display="advanced-hide" Required="true" Mask="false">chain-oauth@file</Config>
</Container>

 

Run command if you prefer:

 

Command:
root@localhost:# /usr/local/emhttp/plugins/dynamix.docker.manager/scripts/docker run -d --name='PlexMediaServer' --net='t2_proxy' -e TZ="Europe/Berlin" -e HOST_OS="Unraid" -e 'PLEX_CLAIM'='xxxxxxxxxxxxx' -e 'PLEX_UID'='99' -e 'PLEX_GID'='100' -e 'VERSION'='latest' -e 'ADVERTISE_IP'='http://192.168.xxx.xxx:32400/' -l 'traefik.enable'='true' -l 'traefik.http.routers.plex-rtr.entrypoints'='https' -l 'traefik.http.routers.plex-rtr.rule'='Host(`xxxxxxxxxxxxxx`)' -l 'traefik.http.routers.plex-rtr.service'='plex-svc' -l 'traefik.http.services.plex-svc.loadbalancer.server.port'='32400' -l 'traefik.http.routers.plex-rtr.middlewares'='chain-oauth@file' -p '32400:32400/tcp' -p '3005:3005/tcp' -p '8324:8324/tcp' -p '32469:32469/tcp' -p '1900:1900/udp' -p '32410:32410/udp' -p '32412:32412/udp' -p '32413:32413/udp' -p '32414:32414/udp' -v '/mnt/user/temp/':'/transcode':'rw' -v '/mnt/user/media/':'/data':'rw' -v '/mnt/user/personal/':'/private':'rw' -v '/mnt/user/appdata/PlexMediaServer':'/config':'rw' -h JimmyPlex --device=/dev/dri 'mauimauer/plex:jan2021-v2'
6b6463ed4237694f5f2bf9cef6c886e73b1509c7236b2a148b1ee6ad58a5ad8f

The command finished successfully!

 

Thanks in advance

Link to post
18 hours ago, jimmy898 said:

Here below my template:

 

Which version of the Plex application is the container downloading? Don't use the latest. Try it with version: 1.21.2.3939-3945797bd because more recent ones are broken.

 

1099824850_Screenshot2021-02-26at03_31_33.thumb.png.4720b70eed105c5c58becf2e00f9bde6.png

 

Link to post

Here's what I see on the Dashboard when transcoding:

 

52066326_Screenshot2021-02-26at03_53_32.thumb.png.c7c2492cb960b3ed12a054e1d27ec269.png

 

which shows that it's using both hardware decoding and encoding. It works fine for all type of media, except this particular type (4K HDR). If you enable HDR Tone Mapping in Transcoder Settings it forces software transcoding but the colours are rich. If you disable HDR Tone Mapping it allows hardware transcoding but the colours are weak and washed out. I don't have much HDR material at the moment, anyway.

 

Link to post
6 hours ago, John_M said:

 

Which version of the Plex application is the container downloading? Don't use the latest. Try it with version: 1.21.2.3939-3945797bd because more recent ones are broken.

 

1099824850_Screenshot2021-02-26at03_31_33.thumb.png.4720b70eed105c5c58becf2e00f9bde6.png

 

 

6 hours ago, John_M said:

Here's what I see on the Dashboard when transcoding:

 

1.21.2.3939-3945797bd

 

which shows that it's using both hardware decoding and encoding. It works fine for all type of media, except this particular type (4K HDR). If you enable HDR Tone Mapping in Transcoder Settings it forces software transcoding but the colours are rich. If you disable HDR Tone Mapping it allows hardware transcoding but the colours are weak and washed out. I don't have much HDR material at the moment, anyway.

 

 

That's it, 1.21.2.3939-3945797bd version is the key!

 

Thank @John_M

 

Double checking Got HW Transcoding to work with libva/vaapi on Raden APU (Ryzen 7 4700U) I'm feeling an idiot, last 2 messages state the very same point.

 

I will stay with this version hoping for future (maybe official) full HW transconding support from Plex Team. 

Link to post
  • 1 month later...
On 2/26/2021 at 10:20 AM, jimmy898 said:

I will stay with this version

 

Although support hasn't been added by the Plex devs yet, you can switch back to the lastest version of the application and the latest version of mauimauer's container now. The only thing that doesn't work is HDR tonemapping. https://forums.plex.tv/t/got-hw-transcoding-to-work-with-libva-vaapi-on-raden-apu-ryzen-7-4700u/676546/38

 

Link to post

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.