Sam Thorogood

Plex, Ubuntu & Quadro Cards on AMD

This is the tiniest post since I couldn't find any useful information online and I bought the card anyway as a gamble, which paid off.

I recently replaced my home server with an ASRock Rack motherboard—2x 10gbe, remote management, and so on. Because, why not.

What I didn't realize though is that Plex basically has no support for hardware transcoding on AMD chips, so various transcodes really struggled despite the upgrade, as they were now CPU-bound.

So I picked up a Quadro P400, the cheapest Nvidia card I could find. I think the P620 is probably the same but higher clocked.

Versions

This was done on:

Steps

  1. Buy a Quadro card.

  2. Install the card in your machine.

  3. Run this command:

    sudo apt install --no-install-recommends nvidia-driver-470
    

    …the --no-install-recommends prevents all of Gnome and a windowserver being installed.

  4. Wait a while since it seems to compile a bunch of code.

  5. Restart your machine, because lsmod | grep nvidia shows nothing 🥺

  6. After restarting, check the output of lsmod | grep nvidia:

    nvidia_uvm           1036288  2
    nvidia_drm             57344  0
    nvidia_modeset       1196032  1 nvidia_drm
    nvidia              35270656  14 nvidia_uvm,nvidia_modeset
    drm_kms_helper        184320  1 nvidia_drm
    drm                   491520  4 drm_kms_helper,nvidia,nvidia_drm
    
  7. Let Plex do transcoding!

    You'll see in its dashboard "Transcode (hw)", and far less CPU use while it's happening. (You can force this by converting a file to a different format, even if e.g., your browser supports the current file. I find my TV far less good at formats than Chrome.)

    To be clear, Plex just started using the GPU without any setup on my part—I just made sure the "Use hardware acceleration when available" setting (and friends) were checked under "Transcode" in Settings.

Remote Access & Video Cards

The ASRock Rack motherboard has a remote management port, so you can use the machine interactively over the network. However, by default, the motherboard will use any installed as its default video output, and that prevents the board from 'stealing' the output for remote access.

This is a pretty easy fix, you just need to update the BIOS settings to default to "onboard" first. I forgot to do this before installing the card, so I had to plug a monitor in after-the-fact and set it manually.

That's all

Providing internet knowledge, one bit at a time.