Zynq UltraScale + MPSoC Ubuntu + VCU + Gstreamer - Building and Running "Ubuntu Desktop" from Sources
This page is deprecated and is no longer being updated. The content is being retained for reference. For more information about running Ubuntu on Zynq UltraScale+ MPSoC, please refer to Canonical Ubuntu
Document History
Date | Author | Version | Description Of Version |
---|---|---|---|
20 June 2019 | Surender Polsani | 1.0 |
|
Summary
The ZCU106 is a general-purpose evaluation board for rapid-prototyping based on the ZU7EV silicon part and package in the 16 nm FinFET Zynq® UltraScale+™ MPSoC. The ZU7EV device integrates a quad core Arm® Cortex™-A53 processing system (PS) and a dual core Arm Cortex-R5 real-time processor, which provides application developers an unprecedented level of heterogeneous multiprocessing. The ZCU106 evaluation board provides a flexible prototyping platform with high-speed DDR4 memory interfaces, FMC expansion ports, multi-gigabit per second serial transceivers, video codec unit (VCU), several peripheral interfaces, and FPGA fabric for customized designs.
This Tech-Tip covers step by step instructions to build and boot Ubuntu Desktop on the Zynq® UltraScale+™ MPSoC with VCU and Gstreamer targeting the ZCU106 board.
HDMI Video Display Design:
NOTE: In this wiki we are using VCU TRD DM7 Design and TRD bsp for latest changes applied on VCU and gstreamer.
The following Zynq® UltraScale+™ MPSoC PS and PL components are used in this design
- Quad-core ARM® Cortex™-A53 Application Processing Unit
- Graphics Processing Unit
- DDR controller.
- UART
- SD/eMMC interface
- Gigabit Ethernet
- USB 3.0
- Video Codec Unit
- HDMI Tx
Software Stack used for this design
- SMP Linux on APU subsystem
- Ubuntu Desktop root file system
- Gstreamer Framework
- Openmax
- VCU Firmware
- ARM-Mali, OpenGL ES2.0, OSG
Requirements
- Xilinx ZCU106 evaluation kit with power supply
- Class 10 SD card (8 GB)
- Ethernet Cable (for Internet connectivity, installing packages using apt-get utility)
- Micro USB to Standard USB cable
- 4K Monitor or Full HD HDMI Monitor and HDMI cable
- USB Hub to connect USB mouse/USB keyboard /USB keyboard with mouse integrated, etc.
Files Provided | |
Archived file
|
Procedure to build from sources
This section covers the following topics
- Creating the Hardware design using Vivado.
- Exporting the hardware design to Petalinux
- Configuring the hardware
- Creating petalinux project
- Configuring the kernel
- Configuring the Rootfs
- Creating the bootable Linux images
- Preparing the SD card with the built Images or ready to test images
- ZCU106 Board setup
- Steps to execute the Demo
Creating hardware design using Vivado
This section explains the procedure to create the hardware design using 2019.1 Vivado Design suite.
- Open the Vivado Design Suite and run the project.tcl file which will generate the block design which uses Zynq UltraScale+ MPSoC IP.
- Download and Extract the Zcu106_Ubuntu_Desktop_Release_2019_1.zip file to on to your Linux directory
$ unzip Zcu106_Ubuntu_Desktop_Release_2019_1.zip
Note: For user convenience prebuilt hardware description file is provided along with the design files.User can use the vcu_hdmitx_wrapper.hdf file found under the /Zcu106_Ubuntu_Desktop_Release_2019_1/ HDF_file directory and skip to the section"Preparing Linux images using Petalinux 2019_1". - Launch the Vivado Design Suite 2019.1 (On Linux)
- The Vivado Design Suite opens to the Welcome window. From the Welcome window you can create a new project, open an existing project, or enter Tcl commands directly into the Vivado Design Suite as well as access documentation and example
- In the TCL console of the Vivado Welcome screen, change the directory to /Zcu106_Ubuntu_Desktop_Release_2019_1/Hardware where the all the project files present.
$ cd /Ubuntu_Desktop_Release_2019_1/Hardware - Source the scripts/vcu_hdmitx_proj.tcl file in the Vivado GUI TCL console by following the below command.
source scripts/vcu_hdmitx_proj.tcl
Fig: source the project.tcl file |
This TCL script will do the following
- Automatically create a Vivado project
- Creates a new block design and automatically populates the Zynq UltraScale+ MPSoC PS System,and PL required components and connections.
- After the block diagram opens run Generate Bitstream.
- After the process is completed the, vcu_hdmitx__wrapper.hdf will be generated under the /Zcu106_Ubuntu_Desktop_Release_2019_1/Hardware/vcu_hdmitx/vcu_hdmitx.sdk directory.
Preparing Linux Images using Petalinux 2019.1
- This section describes how to build the Linux images for zcu106 target platform using latest release Petalinux SDK of version 2019.1
Creating the petalinux project
- Create the petalinux project using the respective bsp provided with Design Files
- Download the Petalinux petalinux-v2019.1-installer.run and use bsp which is present at /Zcu106_Ubuntu_Desktop_Release_2019_1/petalinux_bsp/
- Install the Petalinux by running the above downloaded installer
$ ./petalinux-v2019.1-installer.run
Note: please refer the Petalinux user guide. - After installation is done set the Petalinux environment by running below command in bash shell
$ source <Petalinux_installation_path>/settings.sh
Note: use source <Petalinux_installation_path>/settings.csh command for c shell. - Cross check if PETALINUX environment variable is set to the above installation path by using below command
$ echo $PETALINUX - Create the Petalinux project with the below command
$ petalinux-create -t project –s <path to the bsp which is provided with the design files >/xilinx-vcu-trd-zcu106-v2019.1-final.bsp
Note: The bsp is available in design files /Zcu106_Ubuntu_Desktop_Release_2019.1/Petalinux_bsp/ folder. - Change the directory to created Petalinux project.
$ cd <pet