Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The Xilinx Certified Ubuntu 20.04 LTS for Xilinx Devices image is an official Ubuntu image with certified hardware support for select Xilinx evaluation boards. This page details how to boot and use the official desktop environment image released by Canonical for Xilinx ZCU102, ZCU104, and ZCU106 evaluation boards as well as the Kria KV260 Starter Kit. You can read more about and download the certified Ubuntu hardware here.

...

SD Card

Networking

USB Peripherals

Miscellaneous

ZCU102 (Rev 1.0+)

8GB+ SD Card

Wired Ethernet cable (100Mbps+) required to download updates and additional reference designs

Micro USB-A to USB-A Adapter, (Optional) USB hub for peripherals (ex: keyboard, mouse)

A DisplayPort cable and monitor may be used for a graphical desktop experience. Else, connect via USB UART terminal or SSH.

If DisplayPort Monitor is not available, please see the DisplayPort to HDMI Adapters section below for compatible adapters.

ZCU104 (Rev 1.0+)

8GB+ Micro SD Card

(Optional) USB hub for peripherals (ex: keyboard, mouse)

ZCU106 (Rev 1.0+)

8GB+ SD Card

(Optional) USB hub for peripherals (ex: keyboard, mouse)

Kria KV260 Starter Kit

8GB+ Micro SD Card

Info

Note: The ZCU104 & ZCU106 VCU ROI TRD demonstrations additionally require the following accessories: HDMI monitor, HDMI source device (ex: DVD player), and HDMI cables. HDMI is not used on the ZCU102 design.

...

Before powering on the board, make sure all of the cables and peripherals are attached. At a minimum, attach the following:

  • ZCU10x Power Adapter

  • USB UART cable

  • (Micro) SD Card

For the best experience, additionally connect the following:

  • DisplayPort or HDMI Monitor

  • USB Keyboard & Mouse (may be attached via USB hub)

  • Ethernet networking (with Internet access)

For detailed information about preparing each of three evaluation boards for booting from the SD card, please refer to the following links:

For general information about how the boot process works for this the ZCU10x image, please refer to Booting Certified Ubuntu 20.04 LTS for Xilinx Devices. For information on how the boot process works for the Kria KV260 Starter Kit, please refer to the Kria K26 SOM wiki page.

Info

NOTE: There are important differences for using the Certified Ubuntu on Xilinx Devices release on the ZCU104 board. Please see the Special Considerations for the ZCU104 Evaluation Board section.

...

If you are using the Gnome 3 graphical interface, you can configure networking via the Network Settings options in the GUI.

...

Anchor
ubuntu-env-setup
ubuntu-env-setup
Set up the Xilinx Development & Demonstration Environment for Ubuntu 20.04 LTS

Note

This step requires Internet access. If you haven’t already set up Internet access, please follow the instructions in the Network Setup section above

Before diving into the demos, the Certified Ubuntu on Xilinx Devices environment needs to have some additional resources downloaded and installed. The primary utility for switching between configurations and managing the system is called xlnx-config. The xlnx-config utility is deployed as a Snapcraft-compatible snap.

...

snap and which is available from the Canonical Snap store (http://snapcraft.io).

For more information about using xlnx-config, please refer to the xlnx-config wiki page.

  • Install the custom Xilinx gstreamer

  • Downloads For ZCU104 & ZCU106 users, download a Vitis AI Model

To install the xlnx-config snap, execute the following command from a terminal: 

Code Block
languagebash
$ sudo snap install xlnx-config --classic

...

Info

The Xilinx team updates the xlnx-config snap

...

Code Block
$ xlnx-config.sysinit
Info

NOTE: The Xilinx team updates the xlnx-config snap with new features over time. It is important to keep it up-to-datewith new features over time. It is important to keep it up-to-date.

Info

For Kria users who are familiar with the xmutil command, the xlnx-config utility provides access to these commands using the -x or --xmutil argument. For more information on using xmutil, please refer to the xmutil GitHub page and the xlnx-config developer page.

The heart of the Xilinx demonstrations ZCU10x demonstration experience is the Xilinx Deep Learning Processing Unit (DPU). In addition to setting up the system, the xlnx-config snap provides the DPU via dpu.xclbin to other snaps that depend on it. The xlnx-config snap also provides infrastructure which allows users to package up other hardware platforms to enable other custom development and demonstration workflows.  For more information about creating and installing custom demonstration platforms via xlnx-config, see the Overview of the Out-of-the-Box Demos section.

Install the Custom Xilinx gstreamer

By default, the Ubuntu 20.04 LTS root filesystem includes the open source upstream version of gstreamer that is packaged with Ubuntu 20.04 LTS. In order to take advantage of the unique features provided by Xilinx multimedia IP, xlnx-config.sysinit installs a customized Xilinx-specific version of gstreamer with specialized extensions and plugins. 

Download a Vitis AI Model

During xlnx-config.sysinit, the densebox_640_360 model is downloaded from the Xilinx Model Zoo to facilitate running of the VCU ROI TRD Demo.  

...

Each evaluation board boot image contains a default bitstream & device tree combination that is configured during the first boot.  Each platform includes the Xilinx Deep Learning Processing Unit (DPU) in the Zynq UltraScale+ Programmable Logic (PL). These platforms also include a software stack  (XRT + Vitis AI) required to take advantage of it.  All of the out-of-the-box images are based on Xilinx 2020.2 tools, IP, drivers, and firmware. The default platforms for the three boards are: 

...

Evaluation Board

...

Reference Hardware Platform

...

ZCU102

...

Vitis AI v1.3 MPSoC DPU TRD

...

ZCU104

...

2020.2 VCU HDMI ROI TRD

...

ZCU106

...

2020.2 VCU HDMI ROI TRD

Running the ZCU10x DPU Demos

Each of the Out-of-the-Box demo designs includes the Xilinx DPU for machine learning inference.  The ZCU104 & ZCU106 designs include a 4096x1 configuration. The ZCU102 includes 4096x3 configuration. Each DPU configuration has an identical feature set and they are compatible with the pre-built models in the Xilinx Model Zoo that target the ZCU10x boards.

Running the Vitis AI Library Samples Snap

The xlnx-vai-lib-samples snap includes a pre-built subset of the Vitis AI Library sample applications available as source in the Vitis AI Github repository.  After installing the snap, users can experiment with twenty-seven different Vitis AI samples and over 90 different pre-built models.

For more information regarding using the xlnx-vai-lib-samples snap, please visit the xlnx-vail-lib-samples developer page.

Building the Vitis AI Library Sample Applications from Source

For users that would like to build the Vitis AI Library sample applications from source on the target, please visit the Building Vitis-AI Sample Applications on Certified Ubuntu 20.04 LTS for Xilinx Devices page for detailed steps.

Using the ZCU104 & ZCU106  VCU Region of Interest (ROI) TRD Demo

Note

This step requires an HDMI video source, HDMI display, and HDMI cables

The primary goal of the VCU ROI design is to demonstrate the use of the Xilinx Deep learning Processor Unit (DPU) block for extracting the Region of Interest (ROI) data from input video frames.  This information is then used to perform ROI-based encoding using the Video Codec Unit (VCU) encoder hard block present in Zynq UltraScale+ EV devices.

For instruction for running the VCU ROI TRD Demo, please visit the Running the VCU ROI Demo on Certified Ubuntu 20.04 LTS for Xilinx Devices page for detailed steps.

Creating a Custom Hardware Platform

COMING SOON!

Getting Help

Xilinx recommends posting on the Xilinx Embedded Linux Forum for any questions related to the Certified Ubuntu 20.04 LTS on Xilinx Devices release.

Info

When posting on the Xilinx forums, please be sure to tag your post with the “Embedded_Ubuntu” keyword tag

...

Resources & References

This section outlines how to begin extending your usage beyond the initial Getting Started instructions.

For even more tips and tricks, see the Tips & Tricks page.

General Unsupported Usage Exceptions

The following configurations and use models are not supported:

  • Portrait mode is unsupported

  • Wake on USB (eg, pressing a key on a keyboard or clicking a button on a mouse) is not supported

...

This appends options to the kernel command line - the latest value is the one actually used. For this example, we're overriding the default CMA value of 1000M with cma=256M: 

...

Code Block
ubuntu@zynqmp:~$ sudo sh -c 'echo "LINUX_KERNEL_CMDLINE=\"cma=256M\" > /etc/default/u-boot-xlnx' 
ubuntu@zynqmp:~$ sudo dpkg-reconfigure u-boot-zynqmp 

...

Usage Example section on the xlnx-config developer page.

After installing the xlnx-config snap, you can use it to set up the remainder of the system by executing the following command in a terminal:

Code Block
$ xlnx-config.sysinit
Note

In rare cases, users have reported running into “Waiting for cache lock” issues when the sysinit script attempts to install packages. This is due to the standard Ubuntu “unattended upgrades” process starting up before sysinit. If this happens, the systinit script will take much longer than usual while it waits for permission to begin installing packages.

xlnx-config.sysinit takes care of the following items, depending on the system it's run on:

Install the Custom Xilinx gstreamer

By default, the Ubuntu 20.04 LTS root filesystem includes the open source upstream version of gstreamer that is packaged with Ubuntu 20.04 LTS. In order to take advantage of the unique features provided by Xilinx multimedia IP, xlnx-config.sysinit installs a customized Xilinx-specific version of gstreamer with specialized extensions and plugins. 

Download a Vitis AI Model (ZCU104 and ZCU106 Only)

During xlnx-config.sysinit, the densebox_640_360 model is downloaded from the Xilinx Model Zoo to facilitate running of the VCU ROI TRD Demo on ZCU10x platforms.  

Anchor
ubuntu-demo-overview
ubuntu-demo-overview
Overview of the Out-of-the-Box Demos

Each ZCU10x evaluation board boot image contains a default bitstream & device tree combination that is configured during the first boot.  Each ZCU10x platform includes the Xilinx Deep Learning Processing Unit (DPU) in the Zynq UltraScale+ Programmable Logic (PL). These platforms also include a software stack  (XRT + Vitis AI) required to take advantage of it.  The Kria KV260 Starter Kit includes a series of Vitis platforms to support various accelerated applications (AAs). All of the out-of-the-box images are based on Xilinx 2020.2 (2020.2.2 for Kria) tools, IP, drivers, and firmware.

The default platforms for the three boards are: 

Evaluation Board

Reference Hardware Platform

ZCU102

Vitis AI v1.3 MPSoC DPU TRD

ZCU104

2020.2 VCU HDMI ROI TRD

ZCU106

2020.2 VCU HDMI ROI TRD

Kria KV260 Starter Kit

2020.2.2 Kria KV260 Vitis Platforms

Info

The KV260 will boot into Ubuntu without loading a bitstream. See Running the Kria KV260 Demos below for more information.

Running the ZCU10x DPU Demos

Each of the Out-of-the-Box demo designs includes the Xilinx DPU for machine learning inference.  The ZCU104 & ZCU106 designs include a 4096x1 configuration. The ZCU102 includes 4096x3 configuration. Each DPU configuration has an identical feature set and they are compatible with the pre-built models in the Xilinx Model Zoo that target the ZCU10x boards.

Running the Vitis AI Library Samples Snap

The xlnx-vai-lib-samples snap includes a pre-built subset of the Vitis AI Library sample applications available as source in the Vitis AI Github repository.  After installing the snap, users can experiment with twenty-seven different Vitis AI samples and over 90 different pre-built models. For users on the ZCU10x platforms, this is all you need to do. Users on the Kria KV260 Starter Kit will require a compatible bitstream. The xlnx-nlp-smartvision snap includes a bitstream that is compatible with the xlnx-vai-lib-samples application.

For more information regarding using the xlnx-vai-lib-samples snap, please visit the xlnx-vail-lib-samples developer page.

Building the Vitis AI Library Sample Applications from Source

For users that would like to build the Vitis AI Library sample applications from source on the target, please visit the Building Vitis-AI Sample Applications on Certified Ubuntu 20.04 LTS for Xilinx Devices page for detailed steps.

Using the ZCU104 & ZCU106  VCU Region of Interest (ROI) TRD Demo

Note

This step requires an HDMI video source, HDMI display, and HDMI cables

The primary goal of the VCU ROI design is to demonstrate the use of the Xilinx Deep learning Processor Unit (DPU) block for extracting the Region of Interest (ROI) data from input video frames.  This information is then used to perform ROI-based encoding using the Video Codec Unit (VCU) encoder hard block present in Zynq UltraScale+ EV devices.

For instruction for running the VCU ROI TRD Demo on the supported platforms, please visit the Running the VCU ROI Demo on Certified Ubuntu 20.04 LTS for Xilinx Devices page for detailed steps.

Anchor
kv260_demos
kv260_demos
Running the Kria KV260 Demos

The NLP SmartVision accelerated application is available as an Ubuntu snap. For more information, see the NLP SmartVision Snap wiki page.

Creating a Custom Hardware Platform

For the ZCU10x boards, users can replace the out-of-box hardware platform with customized versions. The xlnx-config snap helps facilitate switching between platforms.

For more information on how to package your custom boot assets into a Platform Assets Container (PAC) that xlnx-config can consume,, please refer to the xlnx-config Usage Example for ZCU10x.

Getting Help

Xilinx recommends posting on the Xilinx Embedded Linux Forum for any questions related to the Certified Ubuntu 20.04 LTS on Xilinx Devices release.

Info

When posting on the Xilinx forums, please use the “Add Topic” feature to tag your post with the “EMBEDDED UBUNTU” topic (no underscore)

...

Resources & References

This section outlines how to begin extending your usage beyond the initial Getting Started instructions.

For even more tips and tricks, see the Tips & Tricks page.

General Unsupported Usage Exceptions

The following configurations and use models are not supported:

  • Portrait mode is unsupported

  • Wake on USB (eg, pressing a key on a keyboard or clicking a button on a mouse) is not supported

Anchor
bootargs
bootargs
Changing the Kernel bootargs Used By U-Boot

If your application or configuration requires specific arguments you can configure U-Boot to pass these arguments automatically.

Example bootargs lines

To update only the CMA value (256M in this case, 1000M is the default):

Code Block
sudo sh -c 'echo "LINUX_KERNEL_CMDLINE=\"cma=256M\"" > /etc/default/u-boot-xlnx'

To update only the root filesystem location:

Code Block
sudo sh -c 'echo "LINUX_KERNEL_CMDLINE=\"root=\\/dev\\/sda1\"" > /etc/default/u-boot-xlnx'

To update multiple arguments (CMA and root filesystem location):

Code Block
sudo sh -c 'echo "LINUX_KERNEL_CMDLINE=\"cma=256M\ root=\\/dev\\/sda1\"" > /etc/default/u-boot-xlnx'

After updating the Linux kernel boot arguments, be sure to update the U-Boot configuration so that these arguments are passed to the Linux kernel on the next reboot

Code Block
ubuntu@zynqmp:~$ sudo dpkg-reconfigure u-boot-zynqmp 

Remember to reboot the system for the changes to take place.

Note

Note: Remember that this overrides all arguments being passed to the Linux kernel so it is important to express all of the arguments you need in the same line. It is not a cumulative process.

Note

Note: Be sure to delimit quotation marks around the LINUX_KERNEL_CMDLINE values. This is so that multiple arguments can be passed at the same time. If only one argument is being specified then they can be ommitted.

...

argument is being specified then they can be omitted. If command line arguments are being used which include forward slashes ( / ) such as those found in filesystem paths, they must be delimited twice.

Example: sudo sh -c 'echo "LINUX_KERNEL_CMDLINE=\"cma=256M\ root=\\/dev\\/sda1\"" > /etc/default/u-boot-xlnx'

Installing & Using the Xilinx PPA

...

Package Name

Version

Description & Notes

bootgen-xlnx

2020.2-0ubuntu~20.04.1

Xilinx BootGen tool used for creating bootable images

fpga-manager-xlnx

2020.2ubuntu2~20.04

Libraries and tools required to use the FPGA Manager framework on Xilinx platforms

libegl-mali-xlnx

9p0.01rel0-0ubuntu5~20.04.1

libEGL libraries for the Mali GPU

linux-firmware-xilinx-vcu

2020.2-0ubuntu1~20.04.1

Firmware required for the VCU operation

u-boot-xlnx

2020.2-0ubuntu11~20.04

Xilinx U-Boot bootloader - u-boot-zynqmp

vitis-ai

1.3.2-0ubuntu5~20.04.1

Vitis AI libraries & Vitis AI DNNDK legacy libraries

xf86-video-armsoc-endlessm

1.4.1-0ubuntu6~20.04.1

Open source driver for Arm GPU from the Endless OS Foundation xf86-video-armsoc repository.

xilinx-vcu-ctrl

2020.2-0ubuntu~20.04.1

Applications for encoding & decoding video streams (ctrlsw_decoder and ctrlsw_decoder and ctrlsw_encoder)

xilinx-vcu-omx

2020.2-0ubuntu4~20.04.1

OMX decoder and encoder tools (omx_decoder and omx_encoder)

xlnx-firmware

0.1ubuntu17~20.04

Boot assets (bitstream, firmware, bootloaders, dtb, etc.)
HDMI Rx firmware

xrt

202020.2.8.726-0ubuntu7~20.04

Libraries required to support XRT on Arm platforms_encoder)

xilinx-vcu-omx

2020.2-0ubuntu4~20.04.1

OMX decoder and encoder tools (omx_decoder and omx_encoder)

xlnx-firmware

0.1ubuntu17~20.04

Boot assets (bitstream, firmware, bootloaders, dtb, etc.)
HDMI Rx firmware

xrt

202020.2.8.726-0ubuntu7~20.04

Libraries required to support XRT on Arm platforms

oem-limerick-kria-meta

0.6

Ubuntu meta-package for support of the Certified Ubuntu on Xilinx Devices image on Kria platforms

fpga-manager-xlnx

2020.2ubuntu2~20.04

Xilinx support for FPGA Manager in the Linux kernel

xlnx-kria-firmware

0.6

Kria SOM device tree and device tree overlays

Checking the Xilinx Kernel Configuration

...

  • Before running xlnx-config.sysinit from the Gnome Desktop:

    • Ensure that nothing else is running in the background.

    • Change the desktop resolution to 1280x720.

  • Do not update the desktop background

  • If you want the best desktop experience but are not interested in using the VCU, you can reduce the amount of contiguous memory(CMA) that is allocated by changing the kernel bootargs. 256M is recommended. Please refer to the Changing the Kernel bootargs Used By U-Boot section.

  • If the desktop gets into an unstable state, you can try restarting it from the console with the following command:

    Code Block
    sudo systemctl restart gdm
  • If you’re working from the serial port console or through ssh, you can shutdown the desktop to maximize available memory:

    Code Block
    languagebash
    sudo systemctl stop gdm

Anchor
ubuntu-kv260-special-notes
ubuntu-kv260-special-notes
Special Considerations for the Kria KV260 Vision AI Starter Kit

COMING SOON!

Anchor
DP_Adapter
DP_Adapter
DisplayPort to HDMI Adapters 

...