Debian vs Ubuntu for Hardware Transcoding

I am in a pickle. I have a Plex Media Server on Debian 11 CLI (Bullseye). I’ve had a Nvidia card installed since I built the tower (originally a 960, now upgraded to a 3050). I’ve never been able to get hardware transcoding up and running and I would really like to make use of the new hardware.

My question is more around what I’ve seen involving Debian…everyone uses docker. I do not. Should I use Ubuntu? It seems that is the “go to” linux OS for hardware transcoding. Should I install Ubuntu instead?

1 Like

HW Transcoding works for me on Debian with Quadro P600 card.
did you install nvidia drivers?
what’s nvidia-smi output?

1 Like

Debian or Ubuntu makes no difference.

Docker was used in the earlier days for NAS boxes before the HDR tone mapping files were included with PMS core. A couple months ago, that changed and PMS now includes the tone mapping libraries.

All you need to do is install the Nvidia drivers and confirm PMS is a member of the group which owns /dev/dri/render* (which the installation scripting does)

2 Likes

That’s what I was hoping for. Yet I’m running into issues. I’ve installed the nvidia driver from the repo, however when I attempt to run nvidia-smi:

deirfyes@debianplex:~$ sudo nvidia-smi
[sudo] password for deirfyes:
NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

deirfyes@debianplex:~$ ll /dev/dri/render*
ls: cannot access ‘/dev/dri/render*’: No such file or directory
deirfyes@debianplex:~$ ^C
deirfyes@debianplex:~$ ll /dev/dri
ls: cannot access ‘/dev/dri’: No such file or directory
deirfyes@debianplex:~$ ll /dev | grep dri
deirfyes@debianplex:~$

deirfyes@debianplex:~$ sudo apt install nvidia-driver
Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
nvidia-driver is already the newest version (525.60.13-1).

I have been chasing my tail for over a week (for like the 9th time) with this and have yet to figure out what I’m missing. Every guide I’ve followed to get this installed and working to get HW transcoding working is coming up empty.

To clarify, HW transcoding didn’t work with the 960 either. I struggled with this when I built the system about a year ago and just gave up. Most of my files don’t require transcoding currently, but would like to add more content that may need it.

Did you update-intramfs after installing and reboot the machine?

Which card? Maybe it doesn’t support HW transcoding per: ?

None of the guides ever said to run that. And when I do run it:

deirfyes@debianplex:~$ sudo update-intramfs
[sudo] password for deirfyes:
sudo: update-intramfs: command not found

Searching for that command, did you mean update-initramfs?

I’ve never ran this command before. Let me dig into it and see if I can figure out what I need to do with it.

I have a Nvidia RTX 3050. Definitely on the lists.

Encode:
GeForce RTX 3050 Ampere GA106 7th Gen D 1 1 1 3

Decode:
GeForce RTX 3050 Ampere GA106 5th Gen D 1 1 1

Just a note: I don’t have a GUI for my server and is headless.

deirfyes@debianplex:~$ sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-6.0.0-0.deb11.6-amd64
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8125b-2.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8125a-3.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8107e-2.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8107e-1.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168fp-3.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168h-2.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168h-1.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168g-3.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168g-2.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8106e-2.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8106e-1.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8411-2.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8411-1.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8402-1.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168f-2.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168f-1.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8105e-1.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168e-3.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168e-2.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168e-1.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168d-2.fw for module r8169
W: Possible missing firmware /lib/firmware/rtl_nic/rtl8168d-1.fw for module r8169

Am I going to need the firmware that is listed here?

Which CPU - Maker and SKU number do you have?

as for updating initram-fs

[chuck@lizum ~.2000]$ command update-initramfs 
You must specify at least one of -c, -u, or -d.


Usage: update-initramfs {-c|-d|-u} [-k version] [-v] [-b directory]

Options:
 -k version	Specify kernel version or 'all'
 -c		Create a new initramfs
 -u		Update an existing initramfs
 -d		Remove an existing initramfs
 -b directory	Set alternate boot directory
 -v		Be verbose

See update-initramfs(8) for further details.

[chuck@lizum ~.2001]$ 

update-initramfs is built in.

The reason I asked is because you had provided:

The 2nd i was missing in what you had provided. Got it figured out though and ran update-initramfs -u.

deirfyes@debianplex:~$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
Address sizes: 48 bits physical, 48 bits virtual
CPU(s): 12
On-line CPU(s) list: 0-11
Thread(s) per core: 2
Core(s) per socket: 6
Socket(s): 1
NUMA node(s): 1
Vendor ID: AuthenticAMD
CPU family: 25
Model: 33
Model name: AMD Ryzen 5 5600X 6-Core Processor
Stepping: 0
Frequency boost: enabled
CPU MHz: 2200.000
CPU max MHz: 4650.2920
CPU min MHz: 2200.0000
BogoMIPS: 7385.80
Virtualization: AMD-V
L1d cache: 192 KiB
L1i cache: 192 KiB
L2 cache: 3 MiB
L3 cache: 32 MiB
NUMA node0 CPU(s): 0-11

Thanks. That explains part 1. AMD does not have Intel Quick Sync :wink:

As for your card

After you update-initramfs and reboot, does nvidia-smi find the card?

1 Like

I’m waiting for my user count to drop to reboot. It’ll probably be in the morning when everyone is still asleep. I’ll update then.

I have thought about going back to Intel (3 or 4 plex servers ago I had an i5-7th gen), but I’m an AMD fanboy at heart.

Also, thank you for the help with all of this!

Post reboot:
deirfyes@debianplex:~$ sudo nvidia-smi
NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

Also, still not finding /dev/dri. Any particular reason why that folder isn’t showing up?

If the nvidia drivers are not finding the card then it’s “all stop” until that happens.

see if the card is being seen at all:

sudo lspci | grep -i nvidia

How this works:

  1. The kernel boots
  2. It enumerates what’s found in the CPU in /dev (all the devices)
  3. It scans the PCI bus. It enumerates all those devices
  4. As it looks at each remaining device, if it has a driver for it, it enumerates it in /dev

The Intel QSV is a rendering surface. It therefore goes in /dev/dri (renderD128)
The Nvidia is also a rendering surface. It goes there too (renderD129)

deirfyes@debianplex:~$ sudo lspci | grep -i nvidia
[sudo] password for deirfyes:
09:00.0 VGA compatible controller: NVIDIA Corporation Device 2507 (rev a1)
09:00.1 Audio device: NVIDIA Corporation Device 228e (rev a1)

Definitely sees the device.

Which model is this please? RTX 3050 or the 960 ? (2507 should be the 3050)

Please go look at file: /var/log/nvidia-installer.log

Attach that here please (use a ZIP file if you need to)

I am using the 3050 currently. The 960 was the previous card and I could never get this to work with it either.

root@debianplex:/var/log# ll | grep nvidia*
drwxr-xr-x 2 root root 4096 Nov 30 06:43 nvidia-mps
root@debianplex:/var/log#

I don’t have a nvidia-installer.log…anywhere for that matter:
root@debianplex:/var/log# find / -name nvidia-installer.log
root@debianplex:/var/log#

something really stupid going on here.

  1. List the nvidia packages installed (dpkg -l | grep nvidia )

  2. If the nvidia-encode & nvidia-decode drivers are showing, in addition to the 515 or 525 drivers then

sudo ubuntu-drivers autoinstall

Oh…you don’t have to tell me that. I’m at my wits end with this.

root@debianplex:/var/log# dpkg -l | grep nvidia
ii glx-alternative-nvidia 1.2.1~deb11u1 amd64 allows the selection of NVIDIA as GLX provider
ii libegl-nvidia0:amd64 525.60.13-1 amd64 NVIDIA binary EGL library
ii libgl1-nvidia-glvnd-glx:amd64 525.60.13-1 amd64 NVIDIA binary OpenGL/GLX library (GLVND variant)
ii libgles-nvidia1:amd64 525.60.13-1 amd64 NVIDIA binary OpenGL|ES 1.x library
ii libgles-nvidia2:amd64 525.60.13-1 amd64 NVIDIA binary OpenGL|ES 2.x library
ii libglx-nvidia0:amd64 525.60.13-1 amd64 NVIDIA binary GLX library
ii libnvidia-allocator1:amd64 525.60.13-1 amd64 NVIDIA allocator runtime library
ii libnvidia-cfg1:amd64 525.60.13-1 amd64 NVIDIA binary OpenGL/GLX configuration library
ii libnvidia-compiler:amd64 525.60.13-1 amd64 NVIDIA runtime compiler library
ii libnvidia-eglcore:amd64 525.60.13-1 amd64 NVIDIA binary EGL core libraries
ii libnvidia-encode1:amd64 525.60.13-1 amd64 NVENC Video Encoding runtime library
ii libnvidia-fbc1:amd64 525.60.13-1 amd64 NVIDIA OpenGL-based Framebuffer Capture runtime library
ii libnvidia-glcore:amd64 525.60.13-1 amd64 NVIDIA binary OpenGL/GLX core libraries
ii libnvidia-glvkspirv:amd64 525.60.13-1 amd64 NVIDIA binary Vulkan Spir-V compiler library
ii libnvidia-ml1:amd64 525.60.13-1 amd64 NVIDIA Management Library (NVML) runtime library
ii libnvidia-nvvm4:amd64 525.60.13-1 amd64 NVIDIA NVVM
ii libnvidia-opticalflow1:amd64 525.60.13-1 amd64 NVIDIA Optical Flow runtime library
ii libnvidia-ptxjitcompiler1:amd64 525.60.13-1 amd64 NVIDIA PTX JIT Compiler
ii libnvidia-rtcore:amd64 525.60.13-1 amd64 NVIDIA binary Vulkan ray tracing (rtcore) library
ii libnvidia-wayland-client:amd64 525.60.13-1 amd64 NVIDIA client for wayland library
ii nvidia-alternative 525.60.13-1 amd64 allows the selection of NVIDIA as GLX provider
ii nvidia-cuda-mps 525.60.13-1 amd64 NVIDIA CUDA Multi Process Service (MPS)
ii nvidia-detect 525.60.13-1 amd64 NVIDIA GPU detection utility
ii nvidia-driver 525.60.13-1 amd64 NVIDIA metapackage
ii nvidia-driver-bin 525.60.13-1 amd64 NVIDIA driver support binaries
ii nvidia-driver-libs:amd64 525.60.13-1 amd64 NVIDIA metapackage (OpenGL/GLX/EGL/GLES libraries)
ii nvidia-egl-common 525.60.13-1 amd64 NVIDIA binary EGL driver - common files
ii nvidia-egl-icd:amd64 525.60.13-1 amd64 NVIDIA EGL installable client driver (ICD)
ii nvidia-installer-cleanup 20151021+13 amd64 cleanup after driver installation with the nvidia-installer
ii nvidia-kernel-common 20151021+13 amd64 NVIDIA binary kernel module support files
ii nvidia-kernel-open-dkms 525.60.13-1 amd64 NVIDIA binary kernel module DKMS source open flavor
ii nvidia-kernel-support 525.60.13-1 amd64 NVIDIA binary kernel module support files
ii nvidia-legacy-check 525.60.13-1 amd64 check for NVIDIA GPUs requiring a legacy driver
ii nvidia-libopencl1:amd64 525.60.13-1 amd64 NVIDIA OpenCL ICD Loader library
ii nvidia-modprobe 525.60.13-1 amd64 utility to load NVIDIA kernel modules and create device nodes
ii nvidia-opencl-common 525.60.13-1 amd64 NVIDIA OpenCL driver - common files
ii nvidia-opencl-icd:amd64 525.60.13-1 amd64 NVIDIA OpenCL installable client driver (ICD)
ii nvidia-persistenced 525.60.13-1 amd64 daemon to maintain persistent software state in the NVIDIA driver
ii nvidia-settings 525.60.13-1 amd64 tool for configuring the NVIDIA graphics driver
ii nvidia-smi 525.60.13-1 amd64 NVIDIA System Management Interface
ii nvidia-support 20151021+13 amd64 NVIDIA binary graphics driver support files
ii nvidia-vdpau-driver:amd64 525.60.13-1 amd64 Video Decode and Presentation API for Unix - NVIDIA driver
ii nvidia-vulkan-common 525.60.13-1 amd64 NVIDIA Vulkan driver - common files
ii nvidia-vulkan-icd:amd64 525.60.13-1 amd64 NVIDIA Vulkan installable client driver (ICD)
ii nvidia-xconfig 525.60.13-1 amd64 deprecated X configuration tool for non-free NVIDIA drivers
ii xserver-xorg-video-nvidia 525.60.13-1 amd64 NVIDIA binary Xorg driver

I’m not seeing the Decode, but I do see the encode library
ii libnvidia-encode1:amd64

I’m on debian 11, not sure this would work here

sorry, Fruedian slip

sudo apt install nvidia-driver