Zimaboard/ZimaBlade + RTX 3050, Implement Video Hardware Decoding

Introduction:

Application value of extended graphics card on Zimaboard / Zimablade:

  1. Improve graphics processing performance

Since the graphics processing capability of the ZimaBoard single-board server itself is limited, adding an independent graphics card can greatly improve its performance in image processing, video codec, 3D rendering, etc., thereby expanding its application range.

  1. Support for higher resolution monitors

The built-in graphics card can generally only support lower-resolution monitors, and adding a high-performance graphics card can enable Zimaboard / Zimablade to support higher-resolution and high-refresh-rate monitors, providing a better visual experience.

  1. Connect multiple monitors

The independent graphics card supports multi-monitor output, so ZimaBoard can be connected to 2 or more monitors by adding a graphics card to meet more complex display requirements.

  1. Accelerated hardware virtualization

ZimaBoard equipped with a graphics card can use GPU acceleration to run virtual machines and containers more smoothly and improve performance in virtualization scenarios.

  1. Improve network transmission speed

Some discrete graphics cards have a network interface, which can offload part of the network communication tasks, reduce the CPU load, and speed up the encoding and decoding process of network data.

  1. Support for more complex workloads

The improvement of the computing power of the graphics card can enable Zimaboard / Zimablade to run more complex computing workloads, such as machine learning, scientific computing, etc., and expand its application scenarios.

Equipment Preparation:

1 x Zimaboard 832

1 x Display

1 x Mini DP

1 x Keyboard

1 x Network Cable

1 x RTX3050

1 x PSU

A. Install Graphics Card Driver:

Connect all equipment, install the following image version:

Image Download Link:ZimaBoard-CasaOS-20230202-16.iso - Google Drive

Log in to the CLI via desktop or laptop SSH

Login Account Password: casaos/casaos

Read the casaos IP address:

ip route

On your computer, enter this IP to access casaos

Open the terminal, login to the account, and install the graphics card driver

1. Switch to root privileges to facilitate subsequent driver installation

sudo -i

casaos

2. View and upgrade kernel version

View kernel version:

uname -r

Upgrade kernel version:

apt update

apt install linux-image-generic

apt full-upgrade

After upgrade is complete, restart the device

reboot

3. Install gcc compiler environment

apt install build-essential

  1. Install dependencies

sudo apt-get install linux-headers-$(uname -r) software-properties-common -y
  1. Install graphics card driver

Download Link:

https://download.nvidia.com/XFree86/Linux-x86_64/

Use wget command to download NVIDIA driver installer

Use chmod +x to set executable permissions

Run installer package to launch graphical installation

wget https://download.nvidia.com/XFree86/Linux-x86_64/535.98/NVIDIA-Linux-x86_64-535.98.run
chmod +x NVIDIA-Linux-x86_64-535.98.run
./NVIDIA-Linux-x86_64-535.98.run

  1. Check graphics card driver installed successfully

nvidia-smi

B. Install NVIDIA Container Toolkit

1.Add repository and GPG Key

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
      && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
      && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
            sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
            sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

2. Installnvidia-container-toolkit

sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

3. Configure runtime

sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

4. Set default runtime (optional)

nano /etc/docker/daemon.json

Add:

{
  "default-runtime": "nvidia",
  "runtimes": {
     "nvidia": {

Restart docker

sudo systemctl restart docker

5. Add port

C. Open Jellyfin

Choose the transcoding format you need
image

Select video to transcode
image

Summary:

Adding an independent graphics card can greatly improve the graphics processing capability, display support and computing performance of Zimaboard / Zimablade, making it more widely used and meeting more abundant usage requirements. This is of great help in enhancing the versatility of Zimaboard/Zimablade as a personal server.

1 Like

Yes! Great writeup! These machines always surprise me what can be done. And the community are so good at exploring options! :slight_smile:

I’ve played with using my spare 970 lol!


1 Like