Server Version#: Ubuntu 18.04.3 LTS (GNU/Linux 4.15.0-74-generic x86_64)
Player Version#: plexmediaserver_1.18.5.2260-056ab4be9_amd64
As the title suggests, I installed a GTX 1050 into my DELL R720
I’ve followed multiple guides on how to get hardware transcoding working, but it just doesn’t seem to want to.
The card is detected by the OS
lspci | grep VGA
00:0f.0 VGA compatible controller: VMware SVGA II Adapter
0b:00.0 VGA compatible controller: NVIDIA Corporation GP107 [GeForce GTX 1050] (rev a1)
But PLEX doesn’t seem to recognize it:
Jan 22, 2020 08:38:40.202 [0x7f7a50ff9700] DEBUG - Codecs: hardware transcoding: testing API nvenc
Jan 22, 2020 08:38:40.328 [0x7f7a50ff9700] DEBUG - Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: Unknown error occurred
…
Jan 22, 2020 08:38:41.355 [0x7f7aa6ffd700] DEBUG - TPU: hardware transcoding: enabled, but no hardware decode accelerator found
Jan 22, 2020 08:38:41.356 [0x7f7aa6ffd700] DEBUG - TPU: hardware transcoding: zero-copy support not present
Jan 22, 2020 08:38:41.356 [0x7f7aa6ffd700] DEBUG - TPU: hardware transcoding: final decoder: , final encoder:
I’d like to stay away from using a docker if at all possible.
How to read that is pretty simple. The obvious names are just that.
HaveHardware=1 tells me the CPU has QSV transcoding visible at /dev/dri/renderD128.
The installation script is 100% passive so cannot tell if it works. It trusts the kernel wouldn’t have listed it if not.
The challenge to verify is whether or not file /dev/dri/renderD128 is a member of the video group & user plex getent group plex also reports video.
Where this process will fails is when
The CPU is capable of QSV - Kernel assigns first at renderD128
A graphics card is inserted - Kernel will assign at renderD129
I didn’t want to get into detecting if multiple devices (CPU & GPU) are present.
My intent was to report if something was visible & accessible by the rendering video group at the default location.
the plex group doesn’t have the video user in it, but the video group does have plex, is that what you’re looking for?
$ getent group plex
plex:x:999:
$ getent group video
video:x:44:plex
$ ls -la /dev/dri
total 0
drwxr-xr-x 3 root root 140 Jan 23 02:22 .
drwxr-xr-x 18 root root 4020 Jan 23 02:22 ..
drwxr-xr-x 2 root root 120 Jan 23 02:22 by-path
crw-rw---- 1 root video 226, 0 Jan 23 02:32 card0
crw-rw---- 1 root video 226, 1 Jan 23 02:32 card1
crw-rw---- 1 root video 226, 128 Jan 23 02:32 renderD128
crw-rw---- 1 root video 226, 129 Jan 23 02:32 renderD129
I also get the following error when I attempt to run nvidia-smi, from some reading online, people are telling me that points to a faulty GPU… but if I take the card out of the R720 and put it in my windows 10 machine, it works without issue. I haven’t tried a different slot on the riser card or a different riser card yet (the only other available PCIe slots are only 8x)
$ nvidia-smi
Unable to determine the device handle for GPU 0000:03:00.0: Unknown Error
How can I tell if either of these is accurate? It’s running in an ESXi environment, so spinning up another ubuntu VM to test is no problem at all… I installed/reinstalled drivers about 4-5 times, maybe something got screwed up along the way. Should I be using a specific driver for my card, or ubuntu-drivers autoinstall ?
If the card were defective, I can only assume that it wouldn’t work when I put it in a physical windows host.
Maybe I’ll try assigning it to a windows VM and see if that works.
Hi bmacmillan. I am a complete noob at Linux but after digging around the net, I hobbled together hack that works. I hope the team at Plex can incorporate this into their next build and make it more user friendly.
My setup is an 8th gen Intel NUC. I do run ESXi and Ubuntu as one of the guest VM. I enabled pass-through of the Intel Iris graphics to the Ubuntu server, and it does detect and have the appropriate intel driver for it. I ran into the same exact thing as you in the /dev/dri folder - card0, card1, renderD128, and renderD129.
I think what is going on is card0 and renderD128 refer to the built-in SVGA driver from ESXi for it to run the console. You cannot disable this. The card1 and renderD129 refer to the GPU, in my case, the intel Iris graphics. Plex was insisting on using card0/renderD128.
After digging around for awhile, I used ln command to link to the correct hardware:
Give it a shot and see if it will work for you too. And if Plex developers are reading this, please make this as an option which card to use in the software. It would have saved noob like me so much time!
Linux noobs should refrain from giving advice on device entries in /dev without fully understanding how they got there and why they are named as they are.
I don’t know the Preferences.xml option to set to specify the device to use but will ask on Monday.