Cyberithub

How to Install Xilinx Video SDK on Ubuntu 20.04 LTS (Focal Fossa)

Advertisements

In this article, I will take you through the steps to install Xilinx Video SDK on Ubuntu 20.04 LTS (Focal Fossa). The Xilinx Video SDK is a complete software stack allowing users to seamlessly leverage the hardware accelerated features of Xilinx video codec units and enable high-density real-time transcoding for live streaming video service providers, OEMs, and Content Delivery Network (CDNs). Included in the Xilinx Video SDK are pre-compiled versions of FFmpeg and GStreamer which integrate video transcoding plug-ins for Xilinx devices, enabling simple hardware acceleration of video decoding, scaling and encoding using these popular tools.

The Xilinx Video SDK also provides a C-based application programming interface (API) which facilitates the integration of Xilinx video codec units transcoding capabilities in proprietary frameworks. The Xilinx Video SDK can be leveraged on-premises with Alveo U30 cards and in the cloud with Amazon EC2 VT1 instances. Here we will see the steps to install Xilinx Video SDK on Ubuntu 20.04 LTS in great detail.

How to Install Xilinx Video SDK on Ubuntu 20.04 LTS (Focal Fossa)

How to Install Xilinx Video SDK on Ubuntu 20.04 LTS (Focal Fossa)

Also Read: How to Install libalglib-dev package on Ubuntu 20.04 LTS (Focal Fossa)

Step 1: Prerequisites

a) Each Alveo U30 card has 2 PCIe Gen 3x4 compliant interfaces. The host sever must support PCIe bifurcation on each slot with a Alveo U30.

b) The installation instructions require a bash shell. Make sure to be using one when installing the packages.

c ) The installation instructions provided should only be used with the OEM version of the Alveo U30 card. If you do not have an OEM card, or if you are unsure of which card version you have, please contact Xilinx.

d) If you need to upgrade a system with version 0.95.0 (Alpha) or older installed, please contact Xilinx.

Step 2: Clone the Repo

First you need to download the software packages by cloning Video SDK repository using below git clone command.

cyberithub@ubuntu:~$ git clone https://github.com/Xilinx/video-sdk -b v1.0 --depth 1
Cloning into 'video-sdk'...
remote: Enumerating objects: 374, done.
remote: Counting objects: 100% (374/374), done.
remote: Compressing objects: 100% (261/261), done.
remote: Total 374 (delta 92), reused 311 (delta 87), pack-reused 0
Receiving objects: 100% (374/374), 200.91 MiB | 4.15 MiB/s, done.
Resolving deltas: 100% (92/92), done.

 

Step 3: Navigate to the directory

Then you need to navigate to the Ubuntu 20.04 specific directory which contains all the SDK packages as shown below.

cyberithub@ubuntu:~$ cd video-sdk/release/U30_Ubuntu_20.04_v1.0_20210518/
cyberithub@ubuntu:~/video-sdk/release/U30_Ubuntu_20.04_v1.0_20210518$

 

Step 4: Install Xilinx Video SDK

Now you need to run ./install.sh shell script to install Xilinx Video SDK on your System. This script will install all the required software packages as you can see below.

cyberithub@ubuntu:~/video-sdk/release/U30_Ubuntu_20.04_v1.0_20210518$ ./install.sh
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following package was automatically installed and is no longer required:
libfwupdplugin1
Use 'sudo apt autoremove' to remove it.
The following additional packages will be installed:
libasound2-dev libblkid-dev libdbus-1-dev libegl-dev libegl1-mesa-dev libffi-dev libgl-dev libgl1-mesa-dev libgles-dev libgles1 libgles2-mesa-dev
libglib2.0-dev libglib2.0-dev-bin libglu1-mesa-dev libglvnd-dev libglx-dev libibus-1.0-dev libice-dev libmount-dev libopengl-dev libpcre16-3
libpcre2-16-0 libpcre2-dev libpcre2-posix2 libpcre3-dev libpcre32-3 libpcrecpp0v5 libpthread-stubs0-dev libpulse-dev libsdl2-2.0-0 libselinux1-dev
libsepol1-dev libsm-dev libsndio-dev libsndio7.0 libudev-dev libwayland-bin libwayland-dev libx11-dev libxau-dev libxcb1-dev libxcursor-dev libxdmcp-dev
libxext-dev libxfixes-dev libxi-dev libxinerama-dev libxkbcommon-dev libxrandr-dev libxrender-dev libxss-dev libxt-dev libxv-dev libxxf86vm-dev
python3-distutils uuid-dev x11proto-core-dev x11proto-dev x11proto-input-dev x11proto-randr-dev x11proto-scrnsaver-dev x11proto-xext-dev
x11proto-xf86vidmode-dev x11proto-xinerama-dev xorg-sgml-doctools xtrans-dev zlib1g-dev

..................................................

The following NEW packages will be installed:
xvbm
0 upgraded, 1 newly installed, 0 to remove and 46 not upgraded.
Need to get 0 B/10.7 kB of archives.
After this operation, 67.6 kB of additional disk space will be used.
Get:1 /home/cyberithub/video-sdk/release/U30_Ubuntu_20.04_v1.0_20210518/xvbm-1.0.0-Linux.deb xvbm amd64 1.0.0 [10.7 kB]
Selecting previously unselected package xvbm.
(Reading database ... 216878 files and directories currently installed.)
Preparing to unpack .../xvbm-1.0.0-Linux.deb ...
Unpacking xvbm (1.0.0) ...
Setting up xvbm (1.0.0) ...
================= Installed XVBM =================

 

Step 5: Program the Binary Images

Next you need to program the binary images in the nonvolatile flash memories of the devices on your Alveo U30 cards by running sudo ./u30flashall.sh script as shown below.

cyberithub@ubuntu:~/video-sdk/release/U30_Ubuntu_20.04_v1.0_20210518$ sudo ./u30flashall.sh
XILINX_XRT : /opt/xilinx/xrt
PATH : /opt/xilinx/xrt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
LD_LIBRARY_PATH : /opt/xilinx/xrt/lib:
PYTHONPATH : /opt/xilinx/xrt/python:
Discovering installed devices....

 

Step 6: Restart Your System

Once the above steps are completed successfully, you need to restart your system by using sudo init 6 to have the cards use the new binaries as shown below.

cyberithub@ubuntu:~/video-sdk/release/U30_Ubuntu_20.04_v1.0_20210518$ sudo init 6

 

Step 7: Check for Updates

Once the system is restarted, you can check if all the cards are up to date by navigating to the same Ubuntu 20.04 directory and running sudo ./u30flashall.sh script as shown below. If all cards are up to date, the script will report so and terminate.

cyberithub@ubuntu:~$ cd video-sdk/release/U30_Ubuntu_20.04_v1.0_20210518/
cyberithub@ubuntu:~/video-sdk/release/U30_Ubuntu_20.04_v1.0_20210518$ sudo ./u30flashall.sh
[sudo] password for cyberithub:
XILINX_XRT : /opt/xilinx/xrt
PATH : /opt/xilinx/xrt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
LD_LIBRARY_PATH : /opt/xilinx/xrt/lib:
PYTHONPATH : /opt/xilinx/xrt/python:
Discovering installed devices....

 

Step 8: Verify Installation

Finally you can test and verify the installation by running ./u30validateall.sh validation script as shown below. For each of the tests running on each of the devices in your system, you should see a message indicating “Validated successfully [1 device(s)]”. Once everything is validated, you are now ready to use the Alveo U30 cards installed in your system.

cyberithub@ubuntu:~/video-sdk/release/U30_Ubuntu_20.04_v1.0_20210518$ ./u30validateall.sh
XILINX_XRT : /opt/xilinx/xrt
PATH : /opt/xilinx/xrt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
LD_LIBRARY_PATH : /opt/xilinx/xrt/lib:
PYTHONPATH : /opt/xilinx/xrt/python:
systemctl stop xrmd
rm -f /dev/shm/xrm.data
Discovering installed devices....
systemctl stop xrmd
rm -f /dev/shm/xrm.data
systemctl start xrmd

Leave a Comment