Vitis-AI 3.0 DPU TRD for QNX 7.1
Terry O'Neal (Unlicensed)
William Cassells (Unlicensed)
jbb (Unlicensed)
This page describes the process for installing, building, and testing support for the Vitis-AI 3.0 Deep Learning Processing Unit (DPU) under the BlackBerry QNX RTOS. Both the Vitis and Vivado flows are described below.
The content of this wiki page is not supported by Xilinx Technical Support. Please contact your AMD or QNX FAE for more information.
Table of Contents
Introduction
Blackberry QNX provides support for the Zynq UltraScale+ DPU when using their ZCU102 BSP for the QNX Neutrino RTOS. This support is enabled by way of updates to the “QNX® SDP 7.1 Xilinx Vitis-AI” package as referenced in the Required QNX RTOS Software Packages section below. Using the instructions below, support for other boards and customs designs can be added as well.
The process for building and evaluating the packages to exercise the DPU and associated examples of C++ and Python based samples with static and video input images is described in the sections below.
The instructions below are being carried out on a Windows host computer. If you are using a Linux host, your steps might look a bit different.
Required QNX Software
It is assumed that the user has installed the following tools from QNX:
QNX Software Development Platform Version: 7.1.0 , available through QNX Software Center
For general information about the ZCU102 BSP that is used for this project, you should refer to the ZCU102 BSP User Guide.
QNX Software Center is used to install all of the QNX software and manage your QNX license keys.
Required QNX RTOS Software Packages
To build the QNX reference design for the ZCU102, the following runtime software packages are required from Blackberry QNX.
The packages are available through the QNX Software Center application and are available upon request for current QNX customers. Please contact your QNX or Xilinx FAE for assistance.
Make sure you also update your QNX SDP 7.1 installation to the latest version
Note that some of the packages are available as “Experimental” or are grouped under “Partner” software - make sure to select visibility of both Experimental and Partner packages in the QNX Software Center application to see these packages.
Package Type | Package Name | Build ID (min) | Version |
---|
Package Type | Package Name | Build ID (min) | Version |
---|---|---|---|
QNX Software Development Platform 7.1 | QNX® SDP 7.1 Neutrino RTOS and QNX Momentics Tool Suite | 472 |
|
BSP | QNX® SDP 7.1 BSP for Xilinx Zynq UltraScale+ MPSoC ZCU102 | 16 |
|
AMD-Xilinx | QNX® SDP 7.1 Xilinx Vitis-AI | 807 | Vitis-AI 3.0 |
AMD-Xilinx | QNX® SDP 7.1 Xilinx XRT | 807 | XRT 2.14.354 (2022.2) |
Graphics | QNX SDP 7.1 Screen Board Support ZCU10x | 535 |
|
OSR | Numpy | 30 | Request latest from BlackBerry |
OpenCV | 40 | Request latest from BlackBerry | |
OS utilities | Python 3.1 | 61 |
|
Once the packages are installed, the installed tab in Software Center should include all of the packages shown below, at a minimum. In this example, a new QNX 7.1 SDP installation named “qnx710_vai3.0_2” was used:
Xilinx Vitis-AI Design Files
The reference designs used for validation can be found here for both the Vitis and Vivado flows for edge devices:
For the Vitis flow, this tutorial assumes you will use a pre-built SD image linked below, so you DO NOT need to download the reference design sources unless you want to build and customize the design from source. In the case that you want to build the design, you should download the reference design for the IP Named DPUCZDX8G for the “MPSoC / Kria K26” platforms.
For the Vivado flow, there is not a pre-built image available, so you DO need to download the reference design to build the project.
See the Vitis Flow and Vivado Flow sections below for more details.
To build either of the flows from scratch, you will need to install the 2022.2 AMD-Xilinx design tools.
Vitis Flow
When using the Vitis flow, a Vitis acceleration platform is used (2022.2 ZCU102 Vitis Base Platform in this case) , and the Vitis linker is used to insert the DPU IP as a “compute unit” into the Vitis platform shell.
For this flow, there is a pre-built SD card image available here:
This can be used to jump-start the development as you do not need to rebuild a BOOT.BIN. You can simply write this image to an SD card and then update the FAT partition after you have completed the QNX BSP build steps below. Alternatively, you can mount the FAT partition of the WIC image, extract the BOOT.BIN and dpu.xclbin, and copy those to the FAT partition of your SD card.
The instructions below assume that the prebuilt SD image above is used to program the SD card before adding the QNX-specific files. You can used BalenaEtcher, dd, or equivalent to burn the image to the card.
Example using BalenaEtcher to burn the SD image to a card:
After burning the SD image set the card aside for use later below. After we build QNX, we will overlay the SD image with some QNX specific files.
Vivado Flow
When using the Vivado flow , a traditional Vivado design is used, and the DPU IP is added directly to the Vivado block design. There is no Vitis platform required.
For this flow , you will need to generate the required BOOT.BIN as a pre-built image is not available. To use the pre-built .xsa without running the Vivado tools, you can simply build the PetaLinux project as described in the Vivado flow documentation:
Limitations
When using the Vivado Flow, there are two XRT libraries that are still required (see steps below) due to fact that the VART library is common between the two flows. Therefore, the XRT package mentioned above must be installed for either use-case.
Building the Vitis AI Enabled QNX BSP
The QNX BSP Project can be built from the command line or using the QNX Momentics IDE. The Momentics flow running under Windows will be described below. See the ZCU102 BSP User Guide for more information on command line flows.
Create the ZCU102 BSP Project
Launch Momentics and create a new workspace.
Create a new project based on the ZCU102 BSP
File->Import
Choose QNX->QNX Source Package and BSP. Click Next
Browse for the ZCU102 BSP ZIP Archive
<QNX SDP install path>\bsp\BSP_xilinx-zynq-zcu102_br-710_be-710_SVN964557_JBN16.zip
Click Open, then Next Twice
Give the project a suitable name
Click Finish
You should now have a new Project open in the Momentics IDE similar to the following:
Modify the Build File
The QNX .build file is used to generate the QNX Initial File System (QNX-IFS) and specify startup scripts. It must be modified to include the necessary components to use Vitis AI and XRT. Each individual section will be covered here, and a full example .build will be provided at the end of the section. For this example, we’ll use zcu102-graphics.build
as a starting point. This file is found in the images
sub-directory of the QNX BSP project.
In the images directory, using the Momentics IDE Project Explorer:
rename zcu102.build to zcu102.build.original (right click on the file name and select “rename”)
copy zcu102-graphics.build to zcu102.build
Open zcu102.build in a text editor (double click on it in the Project Explorer) and make the additions in the sections below.
In the Appendix below, you can find the contents of the .build file after all of individual changes specified below are applied.
Add Vitis-AI Support
The following steps are required for both Vitis and Vivado flows.
Add VAI libraries
Several libraries need to be installed in the root file system. Add the following lines to the build file after the .script section. If the Vitis-AI Library layer is not needed, the lines after# Vitis-AI Library
below can be excluded to save space, or only certain models can be included.########################################################################### ## Vitis-AI ########################################################################### # Utilities & Drivers /bin/show_dpu=show_dpu # Vitis-AI libs /usr/lib/libjson-c.so=libjson-c.so /usr/lib/libprotobuf.so=libprotobuf.so /usr/lib/libprotoc.so=libprotoc.so /usr/lib/libc++.so=libc++.so /usr/lib/libiconv.so=libiconv.so /usr/lib/libintl.so=libintl.so /usr/lib/libboost_system.so=libboost_system.so /usr/lib/libboost_atomic.so=libboost_atomic.so /usr/lib/libboost_filesystem.so=libboost_filesystem.so /usr/lib/libglog.so=libglog.so /usr/lib/libgflags.so=libgflags.so /lib/libcatalog.so=libcatalog.so /lib/libunilog.so=libunilog.so /lib/libtarget_factory.so=libtarget_factory.so /lib/libxir.so=libxir.so /lib/libvart.so=libvart.so /lib/libvart-dpu-runner.so=libvart-dpu-runner.so # Vitis-AI Library libs /lib/libvitis_ai_library-extra_ops.so=libvitis_ai_library-extra_ops.so /lib/libvitis_ai_library-model_config.so=libvitis_ai_library-model_config.so /lib/libvitis_ai_library-math.so=libvitis_ai_library-math.so /lib/libvitis_ai_library-runner_helper.so=libvitis_ai_library-runner_helper.so /lib/libvitis_ai_library-dpu_task.so=libvitis_ai_library-dpu_task.so /lib/libvitis_ai_library-cpu_task.so=libvitis_ai_library-cpu_task.so /lib/libvitis_ai_library-graph_runner.so=libvitis_ai_library-graph_runner.so /lib/libvitis_ai_library-xmodel_jit.so=libvitis_ai_library-xmodel_jit.so /lib/libvitis_ai_library-xmodel_image.so=libvitis_ai_library-xmodel_image.so /lib/libvitis_ai_library-xnnpp.so=libvitis_ai_library-xnnpp.so # Vitis-AI Library model-specific libraries /lib/libvitis_ai_library-classification.so=libvitis_ai_library-classification.so /lib/libvitis_ai_library-tfssd.so=libvitis_ai_library-tfssd.so /lib/libvitis_ai_library-facedetect.so=libvitis_ai_library-facedetect.so /lib/libvitis_ai_library-facefeature.so=libvitis_ai_library-facefeature.so /lib/libvitis_ai_library-lanedetect.so=libvitis_ai_library-lanedetect.so /lib/libvitis_ai_library-yolov2.so=libvitis_ai_library-yolov2.so /lib/libvitis_ai_library-yolov3.so=libvitis_ai_library-yolov3.so /lib/libvitis_ai_library-RGBDsegmentation.so=libvitis_ai_library-RGBDsegmentation.so /lib/libvitis_ai_library-facelandmark.so=libvitis_ai_library-facelandmark.so /lib/libvitis_ai_library-facequality5pt.so=libvitis_ai_library-facequality5pt.so /lib/libvitis_ai_library-ssd.so=libvitis_ai_library-ssd.so /lib/libvitis_ai_library-segmentation.so=libvitis_ai_library-segmentation.so /lib/libvitis_ai_library-covid19segmentation.so=libvitis_ai_library-covid19segmentation.so /lib/libvitis_ai_library-3Dsegmentation.so=libvitis_ai_library-3Dsegmentation.so /lib/libvitis_ai_library-refinedet.so=libvitis_ai_library-refinedet.so /lib/libvitis_ai_library-openpose.so=libvitis_ai_library-openpose.so /lib/libvitis_ai_library-hourglass.so=libvitis_ai_library-hourglass.so /lib/libvitis_ai_library-posedetect.so=libvitis_ai_library-posedetect.so /lib/libvitis_ai_library-reid.so=libvitis_ai_library-reid.so /lib/libvitis_ai_library-rcan.so=libvitis_ai_library-rcan.so /lib/libvitis_ai_library-reidtracker.so=libvitis_ai_library-reidtracker.so /lib/libvitis_ai_library-multitask.so=libvitis_ai_library-multitask.so /lib/libvitis_ai_library-multitaskv3.so=libvitis_ai_library-multitaskv3.so /lib/libvitis_ai_library-platedetect.so=libvitis_ai_library-platedetect.so /lib/libvitis_ai_library-platenum.so=libvitis_ai_library-platenum.so /lib/libvitis_ai_library-platerecog.so=libvitis_ai_library-platerecog.so /lib/libvitis_ai_library-carplaterecog.so=libvitis_ai_library-carplaterecog.so /lib/libvitis_ai_library-medicalsegmentation.so=libvitis_ai_library-medicalsegmentation.so /lib/libvitis_ai_library-medicaldetection.so=libvitis_ai_library-medicaldetection.so /lib/libvitis_ai_library-facerecog.so=libvitis_ai_library-facerecog.so /lib/libvitis_ai_library-facedetectrecog.so=libvitis_ai_library-facedetectrecog.so /lib/libvitis_ai_library-pointpillars.so=libvitis_ai_library-pointpillars.so /lib/libvitis_ai_library-pointpillars_nuscenes.so=libvitis_ai_library-pointpillars_nuscenes.so /lib/libvitis_ai_library-pointpainting.so=libvitis_ai_library-pointpainting.so /lib/libvitis_ai_library-centerpoint.so=libvitis_ai_library-centerpoint.so /lib/libvitis_ai_library-retinaface.so=libvitis_ai_library-retinaface.so /lib/libvitis_ai_library-mnistclassification.so=libvitis_ai_library-mnistclassification.so /lib/libvitis_ai_library-medicalsegcell.so=libvitis_ai_library-medicalsegcell.so /lib/libvitis_ai_library-bcc.so=libvitis_ai_library-bcc.so /lib/libvitis_ai_library-pmg.so=libvitis_ai_library-pmg.so /lib/libvitis_ai_library-general1.so=libvitis_ai_library-general1.so /lib/libvitis_ai_library-multi_runner.so=libvitis_ai_library-multi_runner.so /lib/libvitis_ai_library-arflow.so=libvitis_ai_library-arflow.so /lib/libvitis_ai_library-bevdet.so=libvitis_ai_library-bevdet.so /lib/libvitis_ai_library-c2d2_lite.so=libvitis_ai_library-c2d2_lite.so /lib/libvitis_ai_library-cflownet.so=libvitis_ai_library-cflownet.so /lib/libvitis_ai_library-clocs.so=libvitis_ai_library-clocs.so /lib/libvitis_ai_library-efficientdet_d2.so=libvitis_ai_library-efficientdet_d2.so /lib/libvitis_ai_library-fairmot.so=libvitis_ai_library-fairmot.so /lib/libvitis_ai_library-fusion_cnn.so=libvitis_ai_library-fusion_cnn.so /lib/libvitis_ai_library-monodepth2.so=libvitis_ai_library-monodepth2.so /lib/libvitis_ai_library-movenet.so=libvitis_ai_library-movenet.so /lib/libvitis_ai_library-ocr.so=libvitis_ai_library-ocr.so /lib/libvitis_ai_library-ofa_yolo.so=libvitis_ai_library-ofa_yolo.so /lib/libvitis_ai_library-pmrid.so=libvitis_ai_library-pmrid.so /lib/libvitis_ai_library-polypsegmentation.so=libvitis_ai_library-polypsegmentation.so /lib/libvitis_ai_library-solo.so=libvitis_ai_library-solo.so /lib/libvitis_ai_library-textmountain.so=libvitis_ai_library-textmountain.so /lib/libvitis_ai_library-tracker.so=libvitis_ai_library-tracker.so /lib/libvitis_ai_library-ultrafast.so=libvitis_ai_library-ultrafast.so /lib/libvitis_ai_library-vehicleclassification.so=libvitis_ai_library-vehicleclassification.so /lib/libvitis_ai_library-yolov6.so=libvitis_ai_library-yolov6.so /lib/libvitis_ai_library-yolovx.so=libvitis_ai_library-yolovx.so /lib/libxmodel_postprocessor_common.so=libxmodel_postprocessor_common.so /lib/libxmodel_postprocessor_classification.so=libxmodel_postprocessor_classification.so /lib/libxmodel_postprocessor_densebox.so=libxmodel_postprocessor_densebox.so /lib/libxmodel_postprocessor_plate_number.so=libxmodel_postprocessor_plate_number.so /lib/libxmodel_postprocessor_face_recognition.so=libxmodel_postprocessor_face_recognition.so /lib/libxmodel_postprocessor_face_quality.so=libxmodel_postprocessor_face_quality.so /lib/libxmodel_postprocessor_face_landmark.so=libxmodel_postprocessor_face_landmark.so /lib/libxmodel_postprocessor_open_pose.so=libxmodel_postprocessor_open_pose.so /lib/libxmodel_postprocessor_segmentation.so=libxmodel_postprocessor_segmentation.so /lib/libxmodel_postprocessor_ssd.so=libxmodel_postprocessor_ssd.so /lib/libxmodel_postprocessor_yolov3.so=libxmodel_postprocessor_yolov3.so /lib/libxmodel_preprocessor_common.so=libxmodel_preprocessor_common.so /lib/libxmodel_preprocessor_vgg.so=libxmodel_preprocessor_vgg.so /lib/libxmodel_preprocessor_efficientnet.so=libxmodel_preprocessor_efficientnet.so
Add sample applications
There are a few sample applications packaged with the Vitis-AI package. Add these lines to the build file after the Vitis-AI libraries./usr/bin/resnet50=resnet50 /usr/bin/test_jpeg_facedetect=test_jpeg_facedetect /usr/bin/segmentation=segmentation
Add Python support
Add the following to include python support. This is optional and only required for exercising the VAI python APIs.
The current packages do not support Python testing due to a version mismatch with the latest QNX Python version 3.11. Once updated packages are available, this section will be updated.
/usr/lib/libpython3.11.so=libpython3.11.so
/usr/lib/libffi.so=libffi.so
[search=${QNX_TARGET}/${PROCESSOR}/usr/lib/python3.11/site-packages]/usr/lib/python3.11/site-packages/xir.so=xir.so
[search=${QNX_TARGET}/${PROCESSOR}/usr/lib/python3.11/site-packages]/usr/lib/python3.11/site-packages/vart.so=vart.so
/usr/bin/dirname=dirname
/usr/bin/python3=python3
/usr/bin/python3.11=python3.11
Add OpenCV support
Vitis-AI requires access to OpenCV, so add the following OpenCV libraries to the IFS.################################# # OpenCV ################################# [prefix=/usr/lib] libopencv_calib3d.so libopencv_core.so libopencv_dnn.so libopencv_features2d.so libopencv_flann.so libopencv_highgui.so libopencv_imgcodecs.so libopencv_imgproc.so libopencv_ml.so libopencv_objdetect.so libopencv_photo.so libopencv_stitching.so libopencv_videoio.so libopencv_video.so #Restore default prefix [prefix=/proc/boot]
Setup Vitis Flow
The following steps should be taken for the Vitis flow only.
Add AXI_INTC support to the QNX startup process.
The Vitis platform used to implement the Vitis Flow reference design (2022.2 ZCU102 Vitis Base Platform) includes an AXI_INTC interrupt controller in the programmable logic to aggregate up to 32 interrupts from different compute units, including the DPU. The output of the AXI_INTC connects to the GIC through the PL->PS interrupt bus. Therefore, we need to tell the QNX startup process to enable and configure the AXI_INTC.
In the .bootstrap section, modify the startup-xzynq-zcu10x command to add an argument to configure the base address (0x80020000) and cascaded GIC interrupt (121) of AXI_INTC IP in the PL.startup-xzynq-zcu10x -v -a0x80020000,121,0
Start the zocl driver at boot time.
XRT relies on the zocl device driver (or QNX device resource manager) to manage communications and data transfer with the connected compute units, including the DPU. Therefore, we need to start up the driver and inform it what interrupts are assigned to it.
In the .script section, AFTER /sbin/screen is run, and before the QSPI flash section, add the following command to start the zocl driver for XRT. The interrupts are design-specific and matches the configuration of the matches the ZCU102 base Vitis platform used in the DPU TRD which has 32 interrupts connected into the AXI_INTC IP.zocl -U 523:523 -i 8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8203,8204,8205,8206,8207,8208,8209,8210,8211,8212,8213,8214,8215,8216,8217,8218,8219,8220,8221,8222,8223 &
Add XRT libs/drivers/apps to the filesystem.
Several different libraries, the zocl driver and the xbutil utility need to be installed in the root file system. Add the following lines to the build file after the .script section. We add them after the# Shared libraries
section and before the## Tracelog
section:########################################################################## ## Xilinx XRT ########################################################################### /lib/libxrt_coreutil.so=libxrt_coreutil.so /lib/libxrt_core.so=libxrt_core.so /lib/libxrt++.so=libxrt++.so /lib/libxilinxopencl.so=libxilinxopencl.so /lib/libxdp_core.so=libxdp_core.so /lib/libxdp_appdebug_plugin.so=libxdp_appdebug_plugin.so /lib/libxdp_debug_plugin.so=libxdp_debug_plugin.so /lib/libxdp_device_offload_plugin.so=libxdp_device_offload_plugin.so /lib/libxdp_hal_api_interface_plugin.so=libxdp_hal_api_interface_plugin.so /lib/libxdp_hal_device_offload_plugin.so=libxdp_hal_device_offload_plugin.so /lib/libxdp_hal_plugin.so=libxdp_hal_plugin.so /lib/libxdp_lop_plugin.so=libxdp_lop_plugin.so /lib/libxdp_native_plugin.so=libxdp_native_plugin.so /lib/libxdp_noc_plugin.so=libxdp_noc_plugin.so /lib/libxdp_opencl_counters_plugin.so=libxdp_opencl_counters_plugin.so /lib/libxdp_opencl_trace_plugin.so=libxdp_opencl_trace_plugin.so /lib/libxdp_pl_deadlock_plugin.so=libxdp_pl_deadlock_plugin.so /lib/libxdp_power_plugin.so=libxdp_power_plugin.so /lib/libxdp_system_compiler_plugin.so=libxdp_system_compiler_plugin.so /lib/libxdp_user_plugin.so=libxdp_user_plugin.so /lib/libxdp_vart_plugin.so=libxdp_vart_plugin.so /lib/libsecpol.so=libsecpol.so /lib/libcatalog.so=libcatalog.so /usr/lib/libc++.so=libc++.so /usr/lib/libboost_filesystem.so=libboost_filesystem.so /usr/lib/libboost_system.so=libboost_system.so /usr/lib/libboost_program_options.so=libboost_program_options.so /usr/lib/libboost_atomic.so=libboost_atomic.so /bin/zocl=zocl /usr/bin/xbutil=xbutil
Add XLNX_VART_FIRMWARE environment variable
Because dpu.xclbin is on the SD card, we need to set an environment variable so that VAI knows where to find it. Add the following line inside the section where /etc/profile is defined:export XLNX_VART_FIRMWARE=/dpu.xclbin
Setup Vivado Flow
The following steps should be taken for the Vivado flow only.
Add XRT Minimal Libraries
Since the VART library is shared between the two flows, a minimal set of XRT libraries is required even for the Vivado flow. Add the following after the # Shared libraries
section and before the ## Tracelog
section:
##########################################################################
## Xilinx XRT
###########################################################################
/lib/libxrt_coreutil.so=libxrt_coreutil.so
/lib/libxrt_core.so=libxrt_core.so
Add the DPU Driver
First, in the section where we added the Vitis-AI libraries, add the DPU driver:
/bin/dpu=dpu
Next, in the .script section AFTER /sbin/screen is run and before the QSPI flash section, add the following command to start the DPU driver for Vivado flow.
##########################################################################
## Xilinx DPU driver
##########################################################################
dpu -U 523:523 -a 0x8F000000 -i 121,122,123,124 &
In this example the base address and interrupt information match that of the default VAI 3.0 DPU TRD for the Vivado flow:
DPU Base Address (-a)
0x8F00_0000
Interrupts (-i)
In this design, there are four interrupts from the DPU IP - one for each DPU core, and one for the Softmax core. Interrupts are connected directly from the DPU IP to the PS GIC via the upper
PL->PS Interrupt interface (ps_ps_irq0[3:0])Source/Int #/GIC #: DPU0/0x59/121, DPU1/0x5a/122, DPU2/0x5b/123, SFM/0x5c/124
The number of interrupts given to the -i argument must match the number of DPU cores plus the Softmax core if enabled. Otherwise, the driver will not start.
If -i is not specified, then polling mode will be used.
Add Extra Utilities
Next, add some useful utilities at the end of the .build file:
# Extra commands
/usr/bin/mkdir=mkdir
/usr/bin/curl=curl
/usr/lib/libcurl.so=libcurl.so
/usr/lib/libcares.so=libcares.so
/usr/bin/ldd=ldd
/lib/libjpeg.so=libjpeg.so
/usr/lib/libpng.so=libpng.so
/usr/lib/libpng16.so=libpng16.so
/usr/lib/libtiff.so=libtiff.so
/usr/bin/tar=tar
/usr/lib/libxml2.so=libxml2.so
/usr/lib/liblzma.so=liblzma.so
/usr/lib/libbz2.so=libbz2.so
/usr/bin/unzip=unzip
Mount the FAT partition
To mount the FAT partition, first, add the following script to the .build file right after the .script section:
#SDcard boot partition mount
[uid=0 gid=0 perms=0540] /bin/mountSDcard.sh = {
echo "Mounting SD Card at /"
if [[ -e /dev/hd0t11 ]]; then
mount -w -t dos -o exe=all /dev/hd0t11 /
elif [[ -e /dev/hd0t12 ]]; then
mount -w -t dos -o exe=all /dev/hd0t12 /
elif [[ -e /dev/hd0t14 ]]; then
mount -w -t dos -o exe=all /dev/hd0t14 /
elif [[ -e /dev/hd0t131 ]]; then
echo "Mounting SD Card as dos type even though detected type is ext4"
mount -w -t dos -o exe=all /dev/hd0t131 /
else
echo "Could not mount SD Card"
fi
}
Now call the script from the main startup .script right before the call to start the main shell:
/bin/mountSDcard.sh
# Start the main shell
[+session] ksh /proc/boot/.console.sh &
The FAT partition should show up as /dev/hd0t11, /dev/hd0t12, or /dev/hd0t14 depending on how the flags are set on the partition. It has been observed that certain SD cards, depending on how the boot flags are set, may show up as /dev/hd0t131 which is technically denoting an ext4 partition. This is handled by the script above.
The FAT partition will be mounted at / in the QNX filesystem.
Finally, save zcu102.build.
Build the BSP
Make sure that the correct SDK is selected before executing the next two steps. In Momentics, do the following to change the SDK
Window->Preferences
Select QNX
Set the “Select SDK” dropdown to the SDK you installed the packages referenced above.
Click “Apply and Close”
You will be prompted to restart the workspace if you selected a new SDK
First, make sure you have saved zcu102.build.
Right click on the project name and select "Clean Project”
Right click on the project name and select "Build Project"
Wait for the build to complete. This process will take several minutes.
Once complete, the QNX-IFS (QNX Initial File System) will be available in the images folder.
Preparing the Hardware
Creating the SD Card
From the BSP images directory, you need to copy the QNX-IFS
and boot.scr
files to a bootable FAT partition on the SD card. If you used the VAI 3.0 SD Image referenced above to create the SD card for the Vitis flow, you should rename the original boot.scr before copying in case you want to go back to a Linux boot.
Copy QNX-IFS to FAT partition.
Copy boot.scr to FAT partition.
If not already there, copy the dpu.xclbin from the Vitis project to the FAT partition.
create a directory called /etc on the FAT partition. This is needed so that VAI can have write access to /etc.
For more information regarding creating a bootable SD card without using the VAI 3.0 SD card image, please refer to the ZCU102 QNX BSP User Guide section called “Prepare a bootable SD card”.
This is what your SD card should look like after all the above steps:
Booting up the Board
Insert the card in the ZCU102 and power on the board.
As part of the default boot process, the boot script will mount the SD card at /.
The console for the ZCU102 should look like this after a successful boot:
To use the Ethernet interface, you will need make sure that the MAC address for the board is programmed into the on-board EEPROM. During boot, if you see an error about the MAC address not being set, refer to the ZCU102 BSP User Guide for details regarding programming the MAC address into the EEPROM
At this point, your board is ready to run Vitis AI 3.0 applications.
Running the Test Applications
The VAI 3.0 package includes three pre-compiled test applications that demonstrate three types of machine learning models:
resnet50 for object classification
desnsebox for face detection
for semantic segmentation
These applications have been included in QNX-IFS during the build process. However, we need some other files to exercise the tests, including machine learning model files (.xmodel) and test images/videos. For simplicity, the instructions here assume that you will download any necessary files on your development machine and copy them to the SD card. The applications are provided so that a basic Vitis-AI 3.0 system validation can be done. The building of custom Vitis-AI applications in the QNX environment is outside of the scope of this document.
Downloading the Files
Power off the target, and take your SD card back to your development machine. Next, use a browser or other means to download the files listed below:
resnet50 model: https://www.xilinx.com/bin/public/openDownload?filename=resnet50-zcu102_zcu104_kv260-r3.0.0.tar.gz
resnet50 classes: https://github.com/Xilinx/Vitis-AI/blob/v3.0/examples/vai_runtime/resnet50/words.txt
VAI Runtime example images: https://www.xilinx.com/bin/public/openDownload?filename=vitis_ai_runtime_r3.0.0_image_video.tar.gz
On the FAT partition, create a folder called
vai-test
Extract
resnet50-zcu102_zcu104_kv260-r3.0.0.tar.gz
on your machine, and copy theresnet50
directory to/vai-test
directory on the SD CardCopy
words.txt
to/vai-test/resnet50
Extract
vitis_ai_runtime_r3.0.0_image_video.tar.gz
and copy theimages
directory to/vai-test
If you want to include images of your own test test the classification process, you can add them to /vai-test/images
- the test application will process all files found in the /vai-test/images
directory. See the words.txt file to understand what this version of the resnet50 model can detect.
Eject the SD card, and reinsert it into the ZCU102
Classification
The pre-built ResNet50 test application is built from sources found here: Vitis-AI/examples/vai_runtime/resnet50 at 3.0 · Xilinx/Vitis-AI
In the serial console, cd to the the resnet50 directory you created and run the resnet50 example. Provide the .xmodel you downloaded as an argument:
cd /vai-test/resnet50
resnet50 ./resnet50.xmodel
Input Image
Output Results
WARNING: Logging before InitGoogleLogging() is written to STDERR
I0101 00:07:34.774007 1 main.cc:304] create running for subgraph: subgraph_conv1
Image : 001.jpg
top[0] prob = 0.982662 name = brain coral
top[1] prob = 0.008502 name = coral reef
top[2] prob = 0.006621 name = jackfruit, jak, jack
top[3] prob = 0.000543 name = puffer, pufferfish, blowfish, globefish
top[4] prob = 0.000330 name = eel
cvShowImage() is not implemented in highgui module.
Your output should be similar to what is shown above. If so, Vitis AI is installed properly in your system.
Face Detection
Coming soon
Semantic Segmentation
Coming soon
Python Examples
Coming soon
Appendix
Vitis Flow Build File
The following is an example zcu102.build that incorporates all of the steps detailed in the sections above for the Vitis Flow. The original file is zcu102-graphics.build from the ZCU102 BSP, Build 16.
###################################################################################
#
# QNX Neutrino on the Xilinx Zynq UltraScale+ MPSoC ZCU102 Evaluation Kit,
# based on ARM Cortex A53
#
####################################################################################
#[+keeplinked]
[+compress]
[image=0x100000]
[virtual=aarch64le,raw] .bootstrap = {
# Startup parameters
# "-a <AXI INTC base address>,<GIC IRQ #>[,<GIC IRQ trigger mode>]"
#
# Configure the AXI INTC controller(s) present in the PL image.
# <GIC IRQ trigger mode> should be 0 for level-triggered (the default)
# or 1 for edge-triggered.
# A maximum of 4 INTC controllers can be configured.
# Ex: Configure an INTC with base address 0x80042000 connected to level-triggered GIC IRQ 141.
# Also configure a second INTC with base address 0x80043000 connected to edge-triggered GIC IRQ 142.
# startup-xzynq-zcu10x -v -a0x80042000,141 -a0x80043000,142,1
startup-xzynq-zcu10x -v -a0x80020000,121,0
PATH=/proc/boot:/bin:/usr/bin:/sbin:/usr/sbin:/usr/lib LD_LIBRARY_PATH=/proc/boot:/lib:/usr/lib:/lib/dll:/lib/dll/pci procnto-smp-instr -v
}
[+script] .script = {
display_msg Welcome to QNX Neutrino 7.1.0 on the Xilinx MPSoC ZCU102 (ARM Cortex-A53)
# Setup Environment variables
ENV=/etc/profile
# Start some common servers
slogger2
pipe
#######################################################################
## MPSoC clock manager
#######################################################################
display_msg Starting clock manager...
clock-xzynq -v
#######################################################################
## Random service
#######################################################################
display_msg Starting random service...
random -t
waitfor /dev/random 5
#######################################################################
## Serial driver
#######################################################################
display_msg Starting Serial driver (UART0 and UART1)...
devc-serxzynq -e -F -S 0xFF000000,53 0xFF010000,54
reopen /dev/ser1
#######################################################################
## SD driver
#######################################################################
display_msg Starting SDMMC driver for SD card (SDIO1)...
devb-sdmmc-xzynq sdio addr=0xFF170000,irq=81
#######################################################################
## USB
#######################################################################
display_msg Starting USB OTG...
io-usb-otg -d hcd-xzynq-xhci ioport=0xFE200000,irq=97
display_msg Starting USB mass storage driver...
devb-umass cam pnp
#######################################################################
## PCI Server
#######################################################################
PCI_HW_MODULE=/lib/dll/pci/pci_hw-xzynq-zcu102.so
PCI_BKWD_COMPAT_MODULE=/lib/dll/pci/pci_bkwd_compat.so
PCI_SLOG_MODULE=/lib/dll/pci/pci_slog2.so
PCI_DEBUG_MODULE=/lib/dll/pci/pci_debug2.so
PCI_BASE_VERBOSITY=0
display_msg Starting PCI Server...
pci-server -c --bus-scan-limit=1
#######################################################################
## QSPI flash driver
#######################################################################
display_msg Starting QSPI flash driver...
devf-qspi-xzynq-zcu102 -r bus_speed=100000000,input_clk=200000000 &
#######################################################################
## I2C devices
#######################################################################
display_msg Starting I2C drivers (/dev/i2c0 and /dev/i2c1)...
i2c-xzynq -p 0xFF020000 -i 49 --u 0
i2c-xzynq -p 0xFF030000 -i 50 --u 1
#######################################################################
## CAN
#######################################################################
display_msg Starting CAN driver (/dev/can2/)...
dev-can-xzynq mpsoccan2
#######################################################################
## Networking
#######################################################################
display_msg Starting Network driver...
sh -c "io-pkt-v6-hc -dxzynq-ultrascale mac=`getmac-i2c-zcu102`"
if_up -p xzynq0
dhclient -m -lf /dev/shmem/dhclient.leases -pf /dev/shmem/dhclient.pid -nw xzynq0
#######################################################################
## SPI driver
#######################################################################
display_msg Starting SPI0 and SPI1...
spi-master -u 0 -d xzynq-zcu102 base=0xFF040000,irq=51,clock=150000000
spi-master -u 1 -d xzynq-zcu102 base=0xFF050000,irq=52,clock=150000000
#######################################################################
## On Chip Memory driver
#######################################################################
display_msg Starting OCM driver...
ocm-xzynq
# Start inetd for telnet access
inetd
#######################################################################
## Graphics
#######################################################################
display_msg Starting Screen Graphics...
/sbin/screen -c /usr/lib/graphics/zcu10x/graphics.conf
zocl -U 523:523 -i 8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8203,8204,8205,8206,8207,8208,8209,8210,8211,8212,8213,8214,8215,8216,8217,8218,8219,8220,8221,8222,8223 &
# Make sure QSPI flash is up before continuing
waitfor /dev/fs0p0
/bin/mountSDcard.sh
# Start the main shell
[+session] ksh /proc/boot/.console.sh &
}
#SDcard boot partition mount
[uid=0 gid=0 perms=0540] /bin/mountSDcard.sh = {
echo "Mounting SD Card at /"
if [[ -e /dev/hd0t11 ]]; then
mount -w -t dos -o exe=all /dev/hd0t11 /
elif [[ -e /dev/hd0t12 ]]; then
mount -w -t dos -o exe=all /dev/hd0t12 /
elif [[ -e /dev/hd0t14 ]]; then
mount -w -t dos -o exe=all /dev/hd0t14 /
elif [[ -e /dev/hd0t131 ]]; then
echo "Mounting SD Card as dos type even though detected type is ext4"
mount -w -t dos -o exe=all /dev/hd0t131 /
else
echo "Could not mount SD Card"
fi
}
# Redirect console messages
[type=link] /bin/sh=/bin/ksh
[type=link] /dev/console=/dev/ser1
[type=link] /tmp=/dev/shmem
[type=link] /var/log=/tmp
[type=link] /usr/tmp=/tmp
# Shared libraries
/lib/libc.so=libc.so
/lib/libgcc_s.so.1=libgcc_s.so.1
/usr/lib/ldqnx-64.so.2=ldqnx-64.so.2
/lib/libregex.so=libregex.so
/lib/libqh.so=libqh.so
/lib/libm.so=libm.so
/lib/libsecpol.so=libsecpol.so
/usr/lib/libncursesw.so=libncursesw.so
##########################################################################
## Xilinx XRT
###########################################################################
/lib/libxrt_coreutil.so=libxrt_coreutil.so
/lib/libxrt_core.so=libxrt_core.so
/lib/libxrt++.so=libxrt++.so
/lib/libxilinxopencl.so=libxilinxopencl.so
/lib/libxdp_core.so=libxdp_core.so
/lib/libxdp_appdebug_plugin.so=libxdp_appdebug_plugin.so
/lib/libxdp_debug_plugin.so=libxdp_debug_plugin.so
/lib/libxdp_device_offload_plugin.so=libxdp_device_offload_plugin.so
/lib/libxdp_hal_api_interface_plugin.so=libxdp_hal_api_interface_plugin.so
/lib/libxdp_hal_device_offload_plugin.so=libxdp_hal_device_offload_plugin.so
/lib/libxdp_hal_plugin.so=libxdp_hal_plugin.so
/lib/libxdp_lop_plugin.so=libxdp_lop_plugin.so
/lib/libxdp_native_plugin.so=libxdp_native_plugin.so
/lib/libxdp_noc_plugin.so=libxdp_noc_plugin.so
/lib/libxdp_opencl_counters_plugin.so=libxdp_opencl_counters_plugin.so
/lib/libxdp_opencl_trace_plugin.so=libxdp_opencl_trace_plugin.so
/lib/libxdp_pl_deadlock_plugin.so=libxdp_pl_deadlock_plugin.so
/lib/libxdp_power_plugin.so=libxdp_power_plugin.so
/lib/libxdp_system_compiler_plugin.so=libxdp_system_compiler_plugin.so
/lib/libxdp_user_plugin.so=libxdp_user_plugin.so
/lib/libxdp_vart_plugin.so=libxdp_vart_plugin.so
/lib/libsecpol.so=libsecpol.so
/lib/libcatalog.so=libcatalog.so
/usr/lib/libc++.so=libc++.so
/usr/lib/libboost_filesystem.so=libboost_filesystem.so
/usr/lib/libboost_system.so=libboost_system.so
/usr/lib/libboost_program_options.so=libboost_program_options.so
/usr/lib/libboost_atomic.so=libboost_atomic.so
# Utilities & Drivers
/bin/zocl=zocl
/usr/bin/xbutil=xbutil
###########################################################################
## Vitis-AI
###########################################################################
# Utilities & drivers
/bin/show_dpu=show_dpu
# Vitis-AI libs
/usr/lib/libjson-c.so=libjson-c.so
/usr/lib/libprotobuf.so=libprotobuf.so
/usr/lib/libprotoc.so=libprotoc.so
/usr/lib/libc++.so=libc++.so
/usr/lib/libiconv.so=libiconv.so
/usr/lib/libintl.so=libintl.so
/usr/lib/libboost_system.so=libboost_system.so
/usr/lib/libboost_atomic.so=libboost_atomic.so
/usr/lib/libboost_filesystem.so=libboost_filesystem.so
/usr/lib/libglog.so=libglog.so
/usr/lib/libgflags.so=libgflags.so
/lib/libcatalog.so=libcatalog.so
/lib/libunilog.so=libunilog.so
/lib/libtarget_factory.so=libtarget_factory.so
/lib/libxir.so=libxir.so
/lib/libvart.so=libvart.so
/lib/libvart-dpu-runner.so=libvart-dpu-runner.so
# Vitis-AI Library libs
/lib/libvitis_ai_library-extra_ops.so=libvitis_ai_library-extra_ops.so
/lib/libvitis_ai_library-model_config.so=libvitis_ai_library-model_config.so
/lib/libvitis_ai_library-math.so=libvitis_ai_library-math.so
/lib/libvitis_ai_library-runner_helper.so=libvitis_ai_library-runner_helper.so
/lib/libvitis_ai_library-dpu_task.so=libvitis_ai_library-dpu_task.so
/lib/libvitis_ai_library-cpu_task.so=libvitis_ai_library-cpu_task.so
/lib/libvitis_ai_library-graph_runner.so=libvitis_ai_library-graph_runner.so
/lib/libvitis_ai_library-xmodel_jit.so=libvitis_ai_library-xmodel_jit.so
/lib/libvitis_ai_library-xmodel_image.so=libvitis_ai_library-xmodel_image.so
/lib/libvitis_ai_library-xnnpp.so=libvitis_ai_library-xnnpp.so
/lib/libvitis_ai_library-classification.so=libvitis_ai_library-classification.so
/lib/libvitis_ai_library-tfssd.so=libvitis_ai_library-tfssd.so
/lib/libvitis_ai_library-facedetect.so=libvitis_ai_library-facedetect.so
/lib/libvitis_ai_library-facefeature.so=libvitis_ai_library-facefeature.so
/lib/libvitis_ai_library-lanedetect.so=libvitis_ai_library-lanedetect.so
/lib/libvitis_ai_library-yolov2.so=libvitis_ai_library-yolov2.so
/lib/libvitis_ai_library-yolov3.so=libvitis_ai_library-yolov3.so
/lib/libvitis_ai_library-RGBDsegmentation.so=libvitis_ai_library-RGBDsegmentation.so
/lib/libvitis_ai_library-facelandmark.so=libvitis_ai_library-facelandmark.so
/lib/libvitis_ai_library-facequality5pt.so=libvitis_ai_library-facequality5pt.so
/lib/libvitis_ai_library-ssd.so=libvitis_ai_library-ssd.so
/lib/libvitis_ai_library-segmentation.so=libvitis_ai_library-segmentation.so
/lib/libvitis_ai_library-covid19segmentation.so=libvitis_ai_library-covid19segmentation.so
/lib/libvitis_ai_library-3Dsegmentation.so=libvitis_ai_library-3Dsegmentation.so
/lib/libvitis_ai_library-refinedet.so=libvitis_ai_library-refinedet.so
/lib/libvitis_ai_library-openpose.so=libvitis_ai_library-openpose.so
/lib/libvitis_ai_library-hourglass.so=libvitis_ai_library-hourglass.so
/lib/libvitis_ai_library-posedetect.so=libvitis_ai_library-posedetect.so
/lib/libvitis_ai_library-reid.so=libvitis_ai_library-reid.so
/lib/libvitis_ai_library-rcan.so=libvitis_ai_library-rcan.so
/lib/libvitis_ai_library-reidtracker.so=libvitis_ai_library-reidtracker.so
/lib/libvitis_ai_library-multitask.so=libvitis_ai_library-multitask.so
/lib/libvitis_ai_library-multitaskv3.so=libvitis_ai_library-multitaskv3.so
/lib/libvitis_ai_library-platedetect.so=libvitis_ai_library-platedetect.so
/lib/libvitis_ai_library-platenum.so=libvitis_ai_library-platenum.so
/lib/libvitis_ai_library-platerecog.so=libvitis_ai_library-platerecog.so
/lib/libvitis_ai_library-carplaterecog.so=libvitis_ai_library-carplaterecog.so
/lib/libvitis_ai_library-medicalsegmentation.so=libvitis_ai_library-medicalsegmentation.so
/lib/libvitis_ai_library-medicaldetection.so=libvitis_ai_library-medicaldetection.so
/lib/libvitis_ai_library-facerecog.so=libvitis_ai_library-facerecog.so
/lib/libvitis_ai_library-facedetectrecog.so=libvitis_ai_library-facedetectrecog.so
/lib/libvitis_ai_library-pointpillars.so=libvitis_ai_library-pointpillars.so
/lib/libvitis_ai_library-pointpillars_nuscenes.so=libvitis_ai_library-pointpillars_nuscenes.so
/lib/libvitis_ai_library-pointpainting.so=libvitis_ai_library-pointpainting.so
/lib/libvitis_ai_library-centerpoint.so=libvitis_ai_library-centerpoint.so
/lib/libvitis_ai_library-retinaface.so=libvitis_ai_library-retinaface.so
/lib/libvitis_ai_library-mnistclassification.so=libvitis_ai_library-mnistclassification.so
/lib/libvitis_ai_library-medicalsegcell.so=libvitis_ai_library-medicalsegcell.so
/lib/libvitis_ai_library-bcc.so=libvitis_ai_library-bcc.so
/lib/libvitis_ai_library-pmg.so=libvitis_ai_library-pmg.so
/lib/libvitis_ai_library-general1.so=libvitis_ai_library-general1.so
/lib/libvitis_ai_library-multi_runner.so=libvitis_ai_library-multi_runner.so
/lib/libvitis_ai_library-arflow.so=libvitis_ai_library-arflow.so
/lib/libvitis_ai_library-bevdet.so=libvitis_ai_library-bevdet.so
/lib/libvitis_ai_library-c2d2_lite.so=libvitis_ai_library-c2d2_lite.so
/lib/libvitis_ai_library-cflownet.so=libvitis_ai_library-cflownet.so
/lib/libvitis_ai_library-clocs.so=libvitis_ai_library-clocs.so
/lib/libvitis_ai_library-efficientdet_d2.so=libvitis_ai_library-efficientdet_d2.so
/lib/libvitis_ai_library-fairmot.so=libvitis_ai_library-fairmot.so
/lib/libvitis_ai_library-fusion_cnn.so=libvitis_ai_library-fusion_cnn.so
/lib/libvitis_ai_library-monodepth2.so=libvitis_ai_library-monodepth2.so
/lib/libvitis_ai_library-movenet.so=libvitis_ai_library-movenet.so
/lib/libvitis_ai_library-ocr.so=libvitis_ai_library-ocr.so
/lib/libvitis_ai_library-ofa_yolo.so=libvitis_ai_library-ofa_yolo.so
/lib/libvitis_ai_library-pmrid.so=libvitis_ai_library-pmrid.so
/lib/libvitis_ai_library-polypsegmentation.so=libvitis_ai_library-polypsegmentation.so
/lib/libvitis_ai_library-solo.so=libvitis_ai_library-solo.so
/lib/libvitis_ai_library-textmountain.so=libvitis_ai_library-textmountain.so
/lib/libvitis_ai_library-tracker.so=libvitis_ai_library-tracker.so
/lib/libvitis_ai_library-ultrafast.so=libvitis_ai_library-ultrafast.so
/lib/libvitis_ai_library-vehicleclassification.so=libvitis_ai_library-vehicleclassification.so
/lib/libvitis_ai_library-yolov6.so=libvitis_ai_library-yolov6.so
/lib/libvitis_ai_library-yolovx.so=libvitis_ai_library-yolovx.so
/lib/libxmodel_postprocessor_common.so=libxmodel_postprocessor_common.so
/lib/libxmodel_postprocessor_classification.so=libxmodel_postprocessor_classification.so
/lib/libxmodel_postprocessor_densebox.so=libxmodel_postprocessor_densebox.so
/lib/libxmodel_postprocessor_plate_number.so=libxmodel_postprocessor_plate_number.so
/lib/libxmodel_postprocessor_face_recognition.so=libxmodel_postprocessor_face_recognition.so
/lib/libxmodel_postprocessor_face_quality.so=libxmodel_postprocessor_face_quality.so
/lib/libxmodel_postprocessor_face_landmark.so=libxmodel_postprocessor_face_landmark.so
/lib/libxmodel_postprocessor_open_pose.so=libxmodel_postprocessor_open_pose.so
/lib/libxmodel_postprocessor_segmentation.so=libxmodel_postprocessor_segmentation.so
/lib/libxmodel_postprocessor_ssd.so=libxmodel_postprocessor_ssd.so
/lib/libxmodel_postprocessor_yolov3.so=libxmodel_postprocessor_yolov3.so
/lib/libxmodel_preprocessor_common.so=libxmodel_preprocessor_common.so
/lib/libxmodel_preprocessor_vgg.so=libxmodel_preprocessor_vgg.so
/lib/libxmodel_preprocessor_efficientnet.so=libxmodel_preprocessor_efficientnet.so
# Sample apps
/usr/bin/resnet50=resnet50
/usr/bin/test_jpeg_facedetect=test_jpeg_facedetect
/usr/bin/segmentation=segmentation
# Python Support
/usr/lib/libpython3.11.so=libpython3.11.so
/usr/lib/libffi.so=libffi.so
[search=${QNX_TARGET}/${PROCESSOR}/usr/lib/python3.11/site-packages]/usr/lib/python3.11/site-packages/xir.so=xir.so
[search=${QNX_TARGET}/${PROCESSOR}/usr/lib/python3.11/site-packages]/usr/lib/python3.11/site-packages/vart.so=vart.so
/usr/bin/dirname=dirname
/usr/bin/python3=python3
/usr/bin/python3.11=python3.11
###########################################################################
# OpenCV
###########################################################################
[prefix=/usr/lib]
libopencv_calib3d.so
libopencv_core.so
libopencv_dnn.so
libopencv_features2d.so
libopencv_flann.so
libopencv_highgui.so
libopencv_imgcodecs.so
libopencv_imgproc.so
libopencv_ml.so
libopencv_objdetect.so
libopencv_photo.so
libopencv_stitching.so
libopencv_videoio.so
libopencv_video.so
#Restore default prefix
[prefix=/proc/boot]
###########################################################################
## Tracelog
###########################################################################
/lib/libtracelog.so=libtracelog.so
###########################################################################
## Slogger2
###########################################################################
/lib/libslog2.so=libslog2.so
/lib/libslog2parse.so=libslog2parse.so
###########################################################################
## uncomment for SPI driver
###########################################################################
/lib/dll/spi-xzynq-zcu102.so=spi-xzynq-zcu102.so
###########################################################################
## uncomment for NETWORK driver
###########################################################################
/lib/dll/devnp-xzynq-ultrascale.so=devnp-xzynq-ultrascale.so
/lib/dll/devnp-e1000.so=devnp-e1000.so
/lib/libsocket.so=libsocket.so
/usr/lib/libz.so=libz.so
/usr/lib/libssl.so=libssl.so
/usr/lib/libcrypto.so=libcrypto.so
/usr/lib/libqcrypto.so=libqcrypto.so
/lib/dll/qcrypto-openssl.so=qcrypto-openssl.so
/usr/lib/libnbutil.so=libnbutil.so
###########################################################################
## uncomment for USB
###########################################################################
/lib/dll/devu-hcd-xzynq-xhci.so=devu-hcd-xzynq-xhci.so
/lib/libusbdi.so=libusbdi.so
###########################################################################
## BLOCK drivers libraries
###########################################################################
/lib/libcam.so=libcam.so
/lib/dll/io-blk.so=io-blk.so
/lib/dll/cam-disk.so=cam-disk.so
/lib/dll/cam-cdrom.so=cam-cdrom.so
/lib/dll/fs-qnx6.so=fs-qnx6.so
/lib/dll/fs-dos.so=fs-dos.so
###########################################################################
## GPIO
###########################################################################
/lib/libgpio-xzynq.so=libgpio-xzynq.so
###########################################################################
## PCIe server Support
###########################################################################
/lib/libpanelw.so=libpanelw.so
/lib/libncurses.so=libncurses.so
/lib/libpci.so=libpci.so
# For the PCI server we need to separately search the SDP folder and the
# install folder so we get both the full set of PCI modules (from the SDP)
# and the patched pci_hw modules (from install). The order here matters,
# we need to check ../install first to get the correct pci_hw*.so symlinks.
[-followlink search=${QNX_TARGET}/${PROCESSOR}/lib/dll] /lib/dll/pci=pci
###########################################################################
## Graphics support - screen
###########################################################################
/lib/dll/screen-gles2blt.so=screen-gles2blt.so
/lib/dll/screen-debug.so=screen-debug.so
/lib/dll/screen-zynq-alloc.so=screen-zynq-alloc.so
/usr/lib/libWFD.so=libWFD.so
/lib/libgestures.so=libgestures.so
/lib/libmemobj.so=libmemobj.so
/lib/libscrmem.so=libscrmem.so
/lib/libinputevents.so=libinputevents.so
/lib/libkalman.so=libkalman.so
/usr/lib/libscreen.so=libscreen.so
/lib/libhiddi.so=libhiddi.so
###########################################################################
## Graphics base libraries
###########################################################################
/lib/dll/libwfdcfg-sample.so=libwfdcfg-sample.so
/lib/dll/screen-gles1.so=screen-gles1.so
/usr/lib/libEGL.so=libEGL.so
/usr/lib/libGLESv1_CL.so=libGLESv1_CL.so
/usr/lib/libGLESv1_CM.so=libGLESv1_CM.so
/usr/lib/libGLESv2.so=libGLESv2.so
###########################################################################
## Font libraries
###########################################################################
/usr/lib/libfontconfig.so=libfontconfig.so
/usr/lib/libfreetype.so=libfreetype.so
###########################################################################
## Image Codecs
# uncomment for image loading
###########################################################################
#[search=${QNX_TARGET}/etc/system/config]/etc/system/config/img.conf=img.conf
#/lib/libimg.so=libimg.so
#/lib/libjpeg.so=libjpeg.so
#/lib/dll/img_codec_bmp.so=img_codec_bmp.so
#/lib/dll/img_codec_gif.so=img_codec_gif.so
#/lib/dll/img_codec_jpg.so=img_codec_jpg.so
#/lib/dll/img_codec_pcx.so=img_codec_pcx.so
#/lib/dll/img_codec_png.so=img_codec_png.so
#/lib/dll/img_codec_sgi.so=img_codec_sgi.so
#/lib/dll/img_codec_tga.so=img_codec_tga.so
#/lib/dll/img_codec_tif.so=img_codec_tif.so
#/lib/dll/img_codec_wbmp.so=img_codec_wbmp.so
#/usr/lib/libgif.so=libgif.so
#/usr/lib/liblzma.so=liblzma.so
#/usr/lib/libpng.so=libpng.so
#/usr/lib/libpng16.so=libpng16.so
#/usr/lib/libtiff.so=libtiff.so
###########################################################################
## Input libraries
###########################################################################
/lib/libmtouch-calib.so=libmtouch-calib.so
/lib/libmtouch-devi.so=libmtouch-devi.so
/lib/libmtouch-fake.so=libmtouch-fake.so
/lib/libmtouch-hid.so=libmtouch-hid.so
/lib/libmtouch-inject.so=libmtouch-inject.so
###########################################################################
## Board specific graphics files
###########################################################################
/usr/lib/graphics/zcu10x/graphics.conf=graphics/zcu10x/graphics.conf
/usr/lib/graphics/zcu10x/libwfdcfg-zcu10x.so=graphics/zcu10x/libwfdcfg-zcu10x.so
/usr/lib/graphics/zcu10x/libWFDzynq.so=graphics/zcu10x/libWFDzynq.so
/usr/lib/graphics/zcu10x/libmali.so=graphics/zcu10x/libmali.so
/usr/lib/graphics/zcu10x/libmali-kbase.so=graphics/zcu10x/libmali-kbase.so
[dperms=0755]
###########################################################################
## helper scripts
###########################################################################
[search=../install/scripts] /usr/sbin/reflash-image.sh=reflash-image.sh
###########################################################################
## libqcrypto support
###########################################################################
[perms=644] /etc/qcrypto.conf = {
openssl tags=*
}
###########################################################################
## uncomment for board clock manager
###########################################################################
/sbin/clock-xzynq=clock-xzynq
###########################################################################
## uncomment for SD driver
###########################################################################
/sbin/devb-sdmmc-xzynq=devb-sdmmc-xzynq
###########################################################################
## uncomment for QSPI flash driver
###########################################################################
/sbin/devf-qspi-xzynq-zcu102=devf-qspi-xzynq-zcu102
/usr/bin/flashctl=flashctl
###########################################################################
## uncomment for NETWORK driver
###########################################################################
/sbin/io-pkt-v6-hc=io-pkt-v6-hc
/bin/getmac-i2c-zcu102=getmac-i2c-zcu102
###########################################################################
## dhclient support
###########################################################################
/sbin/dhclient=dhclient
[search=${QNX_TARGET}/sbin perms=a+x] /sbin/dhclient-script=dhclient-script
[search=${QNX_TARGET}/etc]/etc/dhclient.conf=dhclient.conf
###########################################################################
## uncomment for USB
###########################################################################
/sbin/io-usb-otg=io-usb-otg
/sbin/usb=usb
/sbin/devb-umass=devb-umass
###########################################################################
## uncomment for REMOTE_DEBUG
###########################################################################
/sbin/devc-pty=devc-pty
/usr/sbin/qconn=qconn
/usr/bin/pdebug=pdebug
###########################################################################
## uncomment for Serial driver
###########################################################################
/sbin/devc-serxzynq=devc-serxzynq
###########################################################################
## uncomment for I2C, SPI and OCM drivers
###########################################################################
/sbin/i2c-xzynq=i2c-xzynq
/sbin/spi-master=spi-master
/sbin/ocm-xzynq=ocm-xzynq
###########################################################################
## PCI support
###########################################################################
/sbin/pci-server=pci-server
/sbin/pci-tool=pci-tool
/sbin/rsrcdb_query=rsrcdb_query
[search=${QNX_TARGET}/etc/system/config/pci] /etc/system/config/pci/pcidatabase.com-tab_delimited.txt=pcidatabase.com-tab_delimited.txt
###########################################################################
## uncomment for CAN driver
###########################################################################
/bin/dev-can-xzynq=dev-can-xzynq
/bin/canctl=canctl
###########################################################################
## Screen executables
###########################################################################
/sbin/screen=screen
/usr/bin/sw-vsync=sw-vsync
/usr/bin/gles2-gears=gles2-gears
/usr/bin/calib-touch=calib-touch
/usr/bin/events=events
###########################################################################
## Network services (telnet) support
###########################################################################
[type=link] /var/log=/tmp
[type=link] /var/run=/tmp
[type=link] /var/lock=/tmp
/etc/esh = {
}
/etc/hosts=${QNX_TARGET}/etc/hosts
/etc/services=${QNX_TARGET}/etc/services
/etc/inetd.conf = {
ftp stream tcp nowait root /usr/sbin/ftpd in.ftpd -l
telnet stream tcp nowait root /usr/sbin/telnetd in.telnetd
}
/etc/ftpusers=${QNX_TARGET}/etc/ftpusers
/etc/ftpd.conf = {
/* Make things a+rw by default */
umask all 0000
}
[uid=0 gid=0 perms=0644] /etc/passwd = {
root:x:0:0:Superuser:/root:/bin/sh
sshd:x:15:6:sshd:/var/chroot/sshd:/bin/false
qnxuser:x:1000:1000:QNX User:/home/qnxuser:/bin/sh
}
# Enabled Username/Password: root/root, qnxuser/qnxuser
[uid=0 gid=0 perms=0600] /etc/shadow = {
root:@S@NKlWES1quMp1wmqugkUSnFEpPGn58kIs4wQOgDDNs06vimR+bbGPUKM+9P6jbFUzo3Rm+Qe5MS+17xKhwaeJEg==@Mjg5ZTJiMTM0YTRjYTE2ZGFjMDdhZTFlY2NlMDVmNmE=:1468494669:0:0
sshd:*:1231323780:0:0
qnxuser:@S@HZERXjgixvb3157FFeraShhvTVw+10ccUtVUVZbi0fUwpzlzBZFw5gHiFd1XHKit8D39Whe749XAY8fV4P5ANQ==@Y2ZlOTg3M2RhNTM4Y2M2ODY0OWZhODdiNDRkMmU5Nzg=:1468488235:0:0
}
[uid=0 gid=0 perms=0644] /etc/group = {
root:x:0:root
sshd:x:6:
qnxuser:x:qnxuser
}
###########################################################################
## PAM configurations addon build file
###########################################################################
[uid=0 gid=0 perms=4755] /bin/login=login
[uid=0 gid=0 perms=4755] /bin/passwd=passwd
[uid=0 gid=0 perms=4755] /bin/su=su
[uid=0 gid=0 perms=0755] /usr/sbin/sshd=sshd
[uid=0 gid=0 perms=0755] /usr/sbin/ftpd=ftpd
[uid=0 gid=0 perms=0755] /usr/sbin/inetd=inetd
[uid=0 gid=0 perms=0755] /usr/sbin/telnetd=telnetd
[uid=0 gid=0 type=dir dperms=0755] /usr
[uid=0 gid=0 type=dir dperms=0755] /usr/lib
[uid=0 gid=0 type=dir dperms=0755] /etc
[uid=0 gid=0 type=dir dperms=0755] /etc/pam.d
[uid=0 gid=0 perms=0644] /etc/pam.d/login=${QNX_TARGET}/etc/pam.d/login
[uid=0 gid=0 perms=0644] /etc/pam.d/passwd=${QNX_TARGET}/etc/pam.d/passwd
[uid=0 gid=0 perms=0644] /etc/pam.d/su=${QNX_TARGET}/etc/pam.d/su
[uid=0 gid=0 perms=0644] /etc/pam.d/ftpd=${QNX_TARGET}/etc/pam.d/ftpd
[uid=0 gid=0 perms=0755] /usr/lib/libpam.so=libpam.so
[uid=0 gid=0 perms=0755] /usr/lib/pam_ftpusers.so=pam_ftpusers.so
[uid=0 gid=0 perms=0755] /usr/lib/pam_rootok.so=pam_rootok.so
[uid=0 gid=0 perms=0755] /usr/lib/pam_qnx.so=pam_qnx.so
#[uid=0 gid=0 perms=0755] /usr/lib/pam_deny.so=pam_deny.so
#[uid=0 gid=0 perms=0755] /usr/lib/pam_echo.so=pam_echo.so
#[uid=0 gid=0 perms=0755] /usr/lib/pam_exec.so=pam_exec.so
#[uid=0 gid=0 perms=0755] /usr/lib/pam_group.so=pam_group.so
#[uid=0 gid=0 perms=0755] /usr/lib/pam_mac.so=pam_mac.so
#[uid=0 gid=0 perms=0755] /usr/lib/pam_permit.so=pam_permit.so
#[uid=0 gid=0 perms=0755] /usr/lib/pam_radius.so=pam_radius.so
#[uid=0 gid=0 perms=0755] /usr/lib/pam_self.so=pam_self.so
##########################################################################
## Set environment
###########################################################################
# Create a profile so telnet sessions will get environment variables
/etc/profile={
# env settings for new PCIe server
export PCI_HW_MODULE=/lib/dll/pci/pci_hw-xzynq-zcu102.so
export PCI_BKWD_COMPAT_MODULE=/lib/dll/pci/pci_bkwd_compat.so
export PCI_SLOG_MODULE=/lib/dll/pci/pci_slog2.so
export PCI_DEBUG_MODULE=/lib/dll/pci/pci_debug2.so
export PCI_BASE_VERBOSITY=0
# If running on a pre Rev 1 board with pre ES2 silicon, uncomment the next line
#export PCI_HW_CONFIG_FILE=/etc/pci_hw.cfg
export HOME=/
export SYSNAME=nto
export TERM=qansi
export PATH=/proc/boot:/bin:/usr/bin:/sbin:/usr/sbin:/usr/lib
export LD_LIBRARY_PATH=/proc/boot:/lib:/usr/lib:/lib/dll:/lib/dll/pci
export XLNX_VART_FIRMWARE=/dpu.xclbin
}
[uid=0 gid=0 perms=0444] /etc/pci_hw.cfg = {
[slots]
10ee;7024;0;1
# next 2 lines are for pre Rev 1/ES2 silicon only
#[XZYNQ]
#DYN_OFFSET_CALIBRATION = disable
}
###########################################################################
## disk commands
###########################################################################
/sbin/chkqnx6fs=chkqnx6fs
/bin/df=df
/bin/du=du
/sbin/fdisk=fdisk
/sbin/mkdosfs=mkdosfs
/sbin/mkqnx6fs=mkqnx6fs
/bin/mount=mount
/bin/sync=sync
/bin/umount=umount
###########################################################################
## network commands
###########################################################################
/usr/bin/arp=arp
/usr/sbin/fs-nfs3=fs-nfs3
/bin/hostname=hostname
/sbin/ifconfig=ifconfig
/usr/sbin/if_up=if_up
/usr/bin/netstat=netstat
/usr/sbin/nicinfo=nicinfo
/usr/bin/ping=ping
/usr/bin/qtalk=qtalk
/sbin/route=route
/usr/bin/setconf=setconf
###########################################################################
## Slogger
###########################################################################
/bin/slogger2=slogger2
/bin/slog2info=slog2info
###########################################################################
## Start the main shell
###########################################################################
[perms=0744] .console.sh={
#######################################################################
## REMOTE_DEBUG (gdb or Momentics)
## - refer to the help documentation for the gdb, qconn and the IDE
## for more information on remote debugging
## - the commands shown require that NETWORK is enabled too
#######################################################################
echo "Starting devc-pty..."
devc-pty
# Wait for socket before starting qconn
waitfor /dev/socket 4
echo "Starting qconn..."
qconn
ksh -l
}
###########################################################################
## general commands
###########################################################################
/usr/bin/awk=awk
/bin/cat=cat
/bin/chmod=chmod
/usr/bin/cksum=cksum
/bin/cp=cp
/usr/bin/date=date
/bin/dd=dd
/sbin/devb-ram=devb-ram
/usr/bin/diff=diff
/usr/bin/env=env
/usr/bin/grep=grep
/bin/isendrecv=isendrecv
/bin/ksh=ksh
/bin/ln=ln
/bin/ls=ls
/bin/mv=mv
/bin/on=on
/bin/pidin=pidin
/sbin/pipe=pipe
/usr/bin/printf=printf
/usr/sbin/random=random
/bin/rm=rm
/sbin/shutdown=shutdown
/bin/slay=slay
/usr/bin/sleep=sleep
/bin/stty=stty
/usr/bin/top=top
/usr/bin/touch=touch
/bin/uname=uname
/usr/bin/use=use
/bin/waitfor=waitfor
/usr/bin/wc=wc
/usr/bin/which=which
# Extra commands
/usr/bin/mkdir=mkdir
/usr/bin/curl=curl
/usr/lib/libcurl.so=libcurl.so
/usr/lib/libcares.so=libcares.so
/usr/bin/ldd=ldd
/lib/libjpeg.so=libjpeg.so
/usr/lib/libpng.so=libpng.so
/usr/lib/libpng16.so=libpng16.so
/usr/lib/libtiff.so=libtiff.so
/usr/bin/tar=tar
/usr/lib/libxml2.so=libxml2.so
/usr/lib/liblzma.so=liblzma.so
/usr/lib/libbz2.so=libbz2.so
/usr/bin/unzip=unzip
###########################################################################
## END OF BUILD SCRIPT
###########################################################################
Vivado Flow Build File
The following is an example zcu102.build that incorporates all of the steps detailed in the sections above for the Vivado Flow. The original file is zcu102-graphics.build from the ZCU102 BSP, Build 16.
###################################################################################
#
# QNX Neutrino on the Xilinx Zynq UltraScale+ MPSoC ZCU102 Evaluation Kit,
# based on ARM Cortex A53
#
####################################################################################
#[+keeplinked]
[+compress]
[image=0x100000]
[virtual=aarch64le,raw] .bootstrap = {
# Startup parameters
# "-a <AXI INTC base address>,<GIC IRQ #>[,<GIC IRQ trigger mode>]"
#
# Configure the AXI INTC controller(s) present in the PL image.
# <GIC IRQ trigger mode> should be 0 for level-triggered (the default)
# or 1 for edge-triggered.
# A maximum of 4 INTC controllers can be configured.
# Ex: Configure an INTC with base address 0x80042000 connected to level-triggered GIC IRQ 141.
# Also configure a second INTC with base address 0x80043000 connected to edge-triggered GIC IRQ 142.
# startup-xzynq-zcu10x -v -a0x80042000,141 -a0x80043000,142,1
startup-xzynq-zcu10x -v
PATH=/proc/boot:/bin:/usr/bin:/sbin:/usr/sbin:/usr/lib LD_LIBRARY_PATH=/proc/boot:/lib:/usr/lib:/lib/dll:/lib/dll/pci procnto-smp-instr -v
}
[+script] .script = {
display_msg Welcome to QNX Neutrino 7.1.0 on the Xilinx MPSoC ZCU102 (ARM Cortex-A53)
# Setup Environment variables
ENV=/etc/profile
# Start some common servers
slogger2
pipe
#######################################################################
## MPSoC clock manager
#######################################################################
display_msg Starting clock manager...
clock-xzynq -v
#######################################################################
## Random service
#######################################################################
display_msg Starting random service...
random -t
waitfor /dev/random 5
#######################################################################
## Serial driver
#######################################################################
display_msg Starting Serial driver (UART0 and UART1)...
devc-serxzynq -e -F -S 0xFF000000,53 0xFF010000,54
reopen /dev/ser1
#######################################################################
## SD driver
#######################################################################
display_msg Starting SDMMC driver for SD card (SDIO1)...
devb-sdmmc-xzynq sdio addr=0xFF170000,irq=81
#######################################################################
## USB
#######################################################################
display_msg Starting USB OTG...
io-usb-otg -d hcd-xzynq-xhci ioport=0xFE200000,irq=97
display_msg Starting USB mass storage driver...
devb-umass cam pnp
#######################################################################
## PCI Server
#######################################################################
PCI_HW_MODULE=/lib/dll/pci/pci_hw-xzynq-zcu102.so
PCI_BKWD_COMPAT_MODULE=/lib/dll/pci/pci_bkwd_compat.so
PCI_SLOG_MODULE=/lib/dll/pci/pci_slog2.so
PCI_DEBUG_MODULE=/lib/dll/pci/pci_debug2.so
PCI_BASE_VERBOSITY=0
display_msg Starting PCI Server...
pci-server -c --bus-scan-limit=1
#######################################################################
## QSPI flash driver
#######################################################################
display_msg Starting QSPI flash driver...
devf-qspi-xzynq-zcu102 -r bus_speed=100000000,input_clk=200000000 &
#######################################################################
## I2C devices
#######################################################################
display_msg Starting I2C drivers (/dev/i2c0 and /dev/i2c1)...
i2c-xzynq -p 0xFF020000 -i 49 --u 0
i2c-xzynq -p 0xFF030000 -i 50 --u 1
#######################################################################
## CAN
#######################################################################
display_msg Starting CAN driver (/dev/can2/)...
dev-can-xzynq mpsoccan2
#######################################################################
## Networking
#######################################################################
display_msg Starting Network driver...
sh -c "io-pkt-v6-hc -dxzynq-ultrascale mac=`getmac-i2c-zcu102`"
if_up -p xzynq0
dhclient -m -lf /dev/shmem/dhclient.leases -pf /dev/shmem/dhclient.pid -nw xzynq0
#######################################################################
## SPI driver
#######################################################################
display_msg Starting SPI0 and SPI1...
spi-master -u 0 -d xzynq-zcu102 base=0xFF040000,irq=51,clock=150000000
spi-master -u 1 -d xzynq-zcu102 base=0xFF050000,irq=52,clock=150000000
#######################################################################
## On Chip Memory driver
#######################################################################
display_msg Starting OCM driver...
ocm-xzynq
# Start inetd for telnet access
inetd
#######################################################################
## Graphics
#######################################################################
display_msg Starting Screen Graphics...
/sbin/screen -c /usr/lib/graphics/zcu10x/graphics.conf
##########################################################################
## Xilinx DPU driver
##########################################################################
dpu -U 523:523 -a 0x8F000000 -i 121,122,123,124 &
# Make sure QSPI flash is up before continuing
waitfor /dev/fs0p0
/bin/mountSDcard.sh
# Start the main shell
[+session] ksh /proc/boot/.console.sh &
}
#SDcard boot partition mount
[uid=0 gid=0 perms=0540] /bin/mountSDcard.sh = {
echo "Mounting SD Card at /"
if [[ -e /dev/hd0t11 ]]; then
mount -w -t dos -o exe=all /dev/hd0t11 /
elif [[ -e /dev/hd0t12 ]]; then
mount -w -t dos -o exe=all /dev/hd0t12 /
elif [[ -e /dev/hd0t14 ]]; then
mount -w -t dos -o exe=all /dev/hd0t14 /
elif [[ -e /dev/hd0t131 ]]; then
echo "Mounting SD Card as dos type even though detected type is ext4"
mount -w -t dos -o exe=all /dev/hd0t131 /
else
echo "Could not mount SD Card"
fi
}
# Redirect console messages
[type=link] /bin/sh=/bin/ksh
[type=link] /dev/console=/dev/ser1
[type=link] /tmp=/dev/shmem
[type=link] /var/log=/tmp
[type=link] /usr/tmp=/tmp
# Shared libraries
/lib/libc.so=libc.so
/lib/libgcc_s.so.1=libgcc_s.so.1
/usr/lib/ldqnx-64.so.2=ldqnx-64.so.2
/lib/libregex.so=libregex.so
/lib/libqh.so=libqh.so
/lib/libm.so=libm.so
/lib/libsecpol.so=libsecpol.so
/usr/lib/libncursesw.so=libncursesw.so
###########################################################################
## Minimal XRT
###########################################################################
/lib/libxrt_coreutil.so=libxrt_coreutil.so
/lib/libxrt_core.so=libxrt_core.so
###########################################################################
## Vitis-AI
###########################################################################
# Utilities & drivers
/bin/show_dpu=show_dpu
/bin/dpu=dpu
# Vitis-AI libs
/usr/lib/libjson-c.so=libjson-c.so
/usr/lib/libprotobuf.so=libprotobuf.so
/usr/lib/libprotoc.so=libprotoc.so
/usr/lib/libc++.so=libc++.so
/usr/lib/libiconv.so=libiconv.so
/usr/lib/libintl.so=libintl.so
/usr/lib/libboost_system.so=libboost_system.so
/usr/lib/libboost_atomic.so=libboost_atomic.so
/usr/lib/libboost_filesystem.so=libboost_filesystem.so
/usr/lib/libglog.so=libglog.so
/usr/lib/libgflags.so=libgflags.so
/lib/libcatalog.so=libcatalog.so
/lib/libunilog.so=libunilog.so
/lib/libtarget_factory.so=libtarget_factory.so
/lib/libxir.so=libxir.so
/lib/libvart.so=libvart.so
/lib/libvart-dpu-runner.so=libvart-dpu-runner.so
# Vitis-AI Library libs
/lib/libvitis_ai_library-extra_ops.so=libvitis_ai_library-extra_ops.so
/lib/libvitis_ai_library-model_config.so=libvitis_ai_library-model_config.so
/lib/libvitis_ai_library-math.so=libvitis_ai_library-math.so
/lib/libvitis_ai_library-runner_helper.so=libvitis_ai_library-runner_helper.so
/lib/libvitis_ai_library-dpu_task.so=libvitis_ai_library-dpu_task.so
/lib/libvitis_ai_library-cpu_task.so=libvitis_ai_library-cpu_task.so
/lib/libvitis_ai_library-graph_runner.so=libvitis_ai_library-graph_runner.so
/lib/libvitis_ai_library-xmodel_jit.so=libvitis_ai_library-xmodel_jit.so
/lib/libvitis_ai_library-xmodel_image.so=libvitis_ai_library-xmodel_image.so
/lib/libvitis_ai_library-xnnpp.so=libvitis_ai_library-xnnpp.so
/lib/libvitis_ai_library-classification.so=libvitis_ai_library-classification.so
/lib/libvitis_ai_library-tfssd.so=libvitis_ai_library-tfssd.so
/lib/libvitis_ai_library-facedetect.so=libvitis_ai_library-facedetect.so
/lib/libvitis_ai_library-facefeature.so=libvitis_ai_library-facefeature.so
/lib/libvitis_ai_library-lanedetect.so=libvitis_ai_library-lanedetect.so
/lib/libvitis_ai_library-yolov2.so=libvitis_ai_library-yolov2.so
/lib/libvitis_ai_library-yolov3.so=libvitis_ai_library-yolov3.so
/lib/libvitis_ai_library-RGBDsegmentation.so=libvitis_ai_library-RGBDsegmentation.so
/lib/libvitis_ai_library-facelandmark.so=libvitis_ai_library-facelandmark.so
/lib/libvitis_ai_library-facequality5pt.so=libvitis_ai_library-facequality5pt.so
/lib/libvitis_ai_library-ssd.so=libvitis_ai_library-ssd.so
/lib/libvitis_ai_library-segmentation.so=libvitis_ai_library-segmentation.so
/lib/libvitis_ai_library-covid19segmentation.so=libvitis_ai_library-covid19segmentation.so
/lib/libvitis_ai_library-3Dsegmentation.so=libvitis_ai_library-3Dsegmentation.so
/lib/libvitis_ai_library-refinedet.so=libvitis_ai_library-refinedet.so
/lib/libvitis_ai_library-openpose.so=libvitis_ai_library-openpose.so
/lib/libvitis_ai_library-hourglass.so=libvitis_ai_library-hourglass.so
/lib/libvitis_ai_library-posedetect.so=libvitis_ai_library-posedetect.so
/lib/libvitis_ai_library-reid.so=libvitis_ai_library-reid.so
/lib/libvitis_ai_library-rcan.so=libvitis_ai_library-rcan.so
/lib/libvitis_ai_library-reidtracker.so=libvitis_ai_library-reidtracker.so
/lib/libvitis_ai_library-multitask.so=libvitis_ai_library-multitask.so
/lib/libvitis_ai_library-multitaskv3.so=libvitis_ai_library-multitaskv3.so
/lib/libvitis_ai_library-platedetect.so=libvitis_ai_library-platedetect.so
/lib/libvitis_ai_library-platenum.so=libvitis_ai_library-platenum.so
/lib/libvitis_ai_library-platerecog.so=libvitis_ai_library-platerecog.so
/lib/libvitis_ai_library-carplaterecog.so=libvitis_ai_library-carplaterecog.so
/lib/libvitis_ai_library-medicalsegmentation.so=libvitis_ai_library-medicalsegmentation.so
/lib/libvitis_ai_library-medicaldetection.so=libvitis_ai_library-medicaldetection.so
/lib/libvitis_ai_library-facerecog.so=libvitis_ai_library-facerecog.so
/lib/libvitis_ai_library-facedetectrecog.so=libvitis_ai_library-facedetectrecog.so
/lib/libvitis_ai_library-pointpillars.so=libvitis_ai_library-pointpillars.so
/lib/libvitis_ai_library-pointpillars_nuscenes.so=libvitis_ai_library-pointpillars_nuscenes.so
/lib/libvitis_ai_library-pointpainting.so=libvitis_ai_library-pointpainting.so
/lib/libvitis_ai_library-centerpoint.so=libvitis_ai_library-centerpoint.so
/lib/libvitis_ai_library-retinaface.so=libvitis_ai_library-retinaface.so
/lib/libvitis_ai_library-mnistclassification.so=libvitis_ai_library-mnistclassification.so
/lib/libvitis_ai_library-medicalsegcell.so=libvitis_ai_library-medicalsegcell.so
/lib/libvitis_ai_library-bcc.so=libvitis_ai_library-bcc.so
/lib/libvitis_ai_library-pmg.so=libvitis_ai_library-pmg.so
/lib/libvitis_ai_library-general1.so=libvitis_ai_library-general1.so
/lib/libvitis_ai_library-multi_runner.so=libvitis_ai_library-multi_runner.so
/lib/libvitis_ai_library-arflow.so=libvitis_ai_library-arflow.so
/lib/libvitis_ai_library-bevdet.so=libvitis_ai_library-bevdet.so
/lib/libvitis_ai_library-c2d2_lite.so=libvitis_ai_library-c2d2_lite.so
/lib/libvitis_ai_library-cflownet.so=libvitis_ai_library-cflownet.so
/lib/libvitis_ai_library-clocs.so=libvitis_ai_library-clocs.so
/lib/libvitis_ai_library-efficientdet_d2.so=libvitis_ai_library-efficientdet_d2.so
/lib/libvitis_ai_library-fairmot.so=libvitis_ai_library-fairmot.so
/lib/libvitis_ai_library-fusion_cnn.so=libvitis_ai_library-fusion_cnn.so
/lib/libvitis_ai_library-monodepth2.so=libvitis_ai_library-monodepth2.so
/lib/libvitis_ai_library-movenet.so=libvitis_ai_library-movenet.so
/lib/libvitis_ai_library-ocr.so=libvitis_ai_library-ocr.so
/lib/libvitis_ai_library-ofa_yolo.so=libvitis_ai_library-ofa_yolo.so
/lib/libvitis_ai_library-pmrid.so=libvitis_ai_library-pmrid.so
/lib/libvitis_ai_library-polypsegmentation.so=libvitis_ai_library-polypsegmentation.so
/lib/libvitis_ai_library-solo.so=libvitis_ai_library-solo.so
/lib/libvitis_ai_library-textmountain.so=libvitis_ai_library-textmountain.so
/lib/libvitis_ai_library-tracker.so=libvitis_ai_library-tracker.so
/lib/libvitis_ai_library-ultrafast.so=libvitis_ai_library-ultrafast.so
/lib/libvitis_ai_library-vehicleclassification.so=libvitis_ai_library-vehicleclassification.so
/lib/libvitis_ai_library-yolov6.so=libvitis_ai_library-yolov6.so
/lib/libvitis_ai_library-yolovx.so=libvitis_ai_library-yolovx.so
/lib/libxmodel_postprocessor_common.so=libxmodel_postprocessor_common.so
/lib/libxmodel_postprocessor_classification.so=libxmodel_postprocessor_classification.so
/lib/libxmodel_postprocessor_densebox.so=libxmodel_postprocessor_densebox.so
/lib/libxmodel_postprocessor_plate_number.so=libxmodel_postprocessor_plate_number.so
/lib/libxmodel_postprocessor_face_recognition.so=libxmodel_postprocessor_face_recognition.so
/lib/libxmodel_postprocessor_face_quality.so=libxmodel_postprocessor_face_quality.so
/lib/libxmodel_postprocessor_face_landmark.so=libxmodel_postprocessor_face_landmark.so
/lib/libxmodel_postprocessor_open_pose.so=libxmodel_postprocessor_open_pose.so
/lib/libxmodel_postprocessor_segmentation.so=libxmodel_postprocessor_segmentation.so
/lib/libxmodel_postprocessor_ssd.so=libxmodel_postprocessor_ssd.so
/lib/libxmodel_postprocessor_yolov3.so=libxmodel_postprocessor_yolov3.so
/lib/libxmodel_preprocessor_common.so=libxmodel_preprocessor_common.so
/lib/libxmodel_preprocessor_vgg.so=libxmodel_preprocessor_vgg.so
/lib/libxmodel_preprocessor_efficientnet.so=libxmodel_preprocessor_efficientnet.so
# Sample apps
/usr/bin/resnet50=resnet50
/usr/bin/test_jpeg_facedetect=test_jpeg_facedetect
/usr/bin/segmentation=segmentation
# Python support
/usr/lib/libpython3.11.so=libpython3.11.so
/usr/lib/libffi.so=libffi.so
[search=${QNX_TARGET}/${PROCESSOR}/usr/lib/python3.11/site-packages]/usr/lib/python3.11/site-packages/xir.so=xir.so
[search=${QNX_TARGET}/${PROCESSOR}/usr/lib/python3.11/site-packages]/usr/lib/python3.11/site-packages/vart.so=vart.so
/usr/bin/dirname=dirname
/usr/bin/python3=python3
/usr/bin/python3.11=python3.11
###########################################################################
# OpenCV
###########################################################################
[prefix=/usr/lib]
libopencv_calib3d.so
libopencv_core.so
libopencv_dnn.so
libopencv_features2d.so
libopencv_flann.so
libopencv_highgui.so
libopencv_imgcodecs.so
libopencv_imgproc.so
libopencv_ml.so
libopencv_objdetect.so
libopencv_photo.so
libopencv_stitching.so
libopencv_videoio.so
libopencv_video.so
#Restore default prefix
[prefix=/proc/boot]
###########################################################################
## Tracelog
###########################################################################
/lib/libtracelog.so=libtracelog.so
###########################################################################
## Slogger2
###########################################################################
/lib/libslog2.so=libslog2.so
/lib/libslog2parse.so=libslog2parse.so
###########################################################################
## uncomment for SPI driver
###########################################################################
/lib/dll/spi-xzynq-zcu102.so=spi-xzynq-zcu102.so
###########################################################################
## uncomment for NETWORK driver
###########################################################################
/lib/dll/devnp-xzynq-ultrascale.so=devnp-xzynq-ultrascale.so
/lib/dll/devnp-e1000.so=devnp-e1000.so
/lib/libsocket.so=libsocket.so
/usr/lib/libz.so=libz.so
/usr/lib/libssl.so=libssl.so
/usr/lib/libcrypto.so=libcrypto.so
/usr/lib/libqcrypto.so=libqcrypto.so
/lib/dll/qcrypto-openssl.so=qcrypto-openssl.so
/usr/lib/libnbutil.so=libnbutil.so
###########################################################################
## uncomment for USB
###########################################################################
/lib/dll/devu-hcd-xzynq-xhci.so=devu-hcd-xzynq-xhci.so
/lib/libusbdi.so=libusbdi.so
###########################################################################
## BLOCK drivers libraries
###########################################################################
/lib/libcam.so=libcam.so
/lib/dll/io-blk.so=io-blk.so
/lib/dll/cam-disk.so=cam-disk.so
/lib/dll/cam-cdrom.so=cam-cdrom.so
/lib/dll/fs-qnx6.so=fs-qnx6.so
/lib/dll/fs-dos.so=fs-dos.so
###########################################################################
## GPIO
###########################################################################
/lib/libgpio-xzynq.so=libgpio-xzynq.so
###########################################################################
## PCIe server Support
###########################################################################
/lib/libpanelw.so=libpanelw.so
/lib/libncurses.so=libncurses.so
/lib/libpci.so=libpci.so
# For the PCI server we need to separately search the SDP folder and the
# install folder so we get both the full set of PCI modules (from the SDP)
# and the patched pci_hw modules (from install). The order here matters,
# we need to check ../install first to get the correct pci_hw*.so symlinks.
[-followlink search=${QNX_TARGET}/${PROCESSOR}/lib/dll] /lib/dll/pci=pci
###########################################################################
## Graphics support - screen
###########################################################################
/lib/dll/screen-gles2blt.so=screen-gles2blt.so
/lib/dll/screen-debug.so=screen-debug.so
/lib/dll/screen-zynq-alloc.so=screen-zynq-alloc.so
/usr/lib/libWFD.so=libWFD.so
/lib/libgestures.so=libgestures.so
/lib/libmemobj.so=libmemobj.so
/lib/libscrmem.so=libscrmem.so
/lib/libinputevents.so=libinputevents.so
/lib/libkalman.so=libkalman.so
/usr/lib/libscreen.so=libscreen.so
/lib/libhiddi.so=libhiddi.so
###########################################################################
## Graphics base libraries
###########################################################################
/lib/dll/libwfdcfg-sample.so=libwfdcfg-sample.so
/lib/dll/screen-gles1.so=screen-gles1.so
/usr/lib/libEGL.so=libEGL.so
/usr/lib/libGLESv1_CL.so=libGLESv1_CL.so
/usr/lib/libGLESv1_CM.so=libGLESv1_CM.so
/usr/lib/libGLESv2.so=libGLESv2.so
###########################################################################
## Font libraries
###########################################################################
/usr/lib/libfontconfig.so=libfontconfig.so
/usr/lib/libfreetype.so=libfreetype.so
###########################################################################
## Image Codecs
# uncomment for image loading
###########################################################################
#[search=${QNX_TARGET}/etc/system/config]/etc/system/config/img.conf=img.conf
#/lib/libimg.so=libimg.so
#/lib/libjpeg.so=libjpeg.so
#/lib/dll/img_codec_bmp.so=img_codec_bmp.so
#/lib/dll/img_codec_gif.so=img_codec_gif.so
#/lib/dll/img_codec_jpg.so=img_codec_jpg.so
#/lib/dll/img_codec_pcx.so=img_codec_pcx.so
#/lib/dll/img_codec_png.so=img_codec_png.so
#/lib/dll/img_codec_sgi.so=img_codec_sgi.so
#/lib/dll/img_codec_tga.so=img_codec_tga.so
#/lib/dll/img_codec_tif.so=img_codec_tif.so
#/lib/dll/img_codec_wbmp.so=img_codec_wbmp.so
#/usr/lib/libgif.so=libgif.so
#/usr/lib/liblzma.so=liblzma.so
#/usr/lib/libpng.so=libpng.so
#/usr/lib/libpng16.so=libpng16.so
#/usr/lib/libtiff.so=libtiff.so
###########################################################################
## Input libraries
###########################################################################
/lib/libmtouch-calib.so=libmtouch-calib.so
/lib/libmtouch-devi.so=libmtouch-devi.so
/lib/libmtouch-fake.so=libmtouch-fake.so
/lib/libmtouch-hid.so=libmtouch-hid.so
/lib/libmtouch-inject.so=libmtouch-inject.so
###########################################################################
## Board specific graphics files
###########################################################################
/usr/lib/graphics/zcu10x/graphics.conf=graphics/zcu10x/graphics.conf
/usr/lib/graphics/zcu10x/libwfdcfg-zcu10x.so=graphics/zcu10x/libwfdcfg-zcu10x.so
/usr/lib/graphics/zcu10x/libWFDzynq.so=graphics/zcu10x/libWFDzynq.so
/usr/lib/graphics/zcu10x/libmali.so=graphics/zcu10x/libmali.so
/usr/lib/graphics/zcu10x/libmali-kbase.so=graphics/zcu10x/libmali-kbase.so
[dperms=0755]
###########################################################################
## helper scripts
###########################################################################
[search=../install/scripts] /usr/sbin/reflash-image.sh=reflash-image.sh
###########################################################################
## libqcrypto support
###########################################################################
[perms=644] /etc/qcrypto.conf = {
openssl tags=*
}
###########################################################################
## uncomment for board clock manager
###########################################################################
/sbin/clock-xzynq=clock-xzynq
###########################################################################
## uncomment for SD driver
###########################################################################
/sbin/devb-sdmmc-xzynq=devb-sdmmc-xzynq
###########################################################################
## uncomment for QSPI flash driver
###########################################################################
/sbin/devf-qspi-xzynq-zcu102=devf-qspi-xzynq-zcu102
/usr/bin/flashctl=flashctl
###########################################################################
## uncomment for NETWORK driver
###########################################################################
/sbin/io-pkt-v6-hc=io-pkt-v6-hc
/bin/getmac-i2c-zcu102=getmac-i2c-zcu102
###########################################################################
## dhclient support
###########################################################################
/sbin/dhclient=dhclient
[search=${QNX_TARGET}/sbin perms=a+x] /sbin/dhclient-script=dhclient-script
[search=${QNX_TARGET}/etc]/etc/dhclient.conf=dhclient.conf
###########################################################################
## uncomment for USB
###########################################################################
/sbin/io-usb-otg=io-usb-otg
/sbin/usb=usb
/sbin/devb-umass=devb-umass
###########################################################################
## uncomment for REMOTE_DEBUG
###########################################################################
/sbin/devc-pty=devc-pty
/usr/sbin/qconn=qconn
/usr/bin/pdebug=pdebug
###########################################################################
## uncomment for Serial driver
###########################################################################
/sbin/devc-serxzynq=devc-serxzynq
###########################################################################
## uncomment for I2C, SPI and OCM drivers
###########################################################################
/sbin/i2c-xzynq=i2c-xzynq
/sbin/spi-master=spi-master
/sbin/ocm-xzynq=ocm-xzynq
###########################################################################
## PCI support
###########################################################################
/sbin/pci-server=pci-server
/sbin/pci-tool=pci-tool
/sbin/rsrcdb_query=rsrcdb_query
[search=${QNX_TARGET}/etc/system/config/pci] /etc/system/config/pci/pcidatabase.com-tab_delimited.txt=pcidatabase.com-tab_delimited.txt
###########################################################################
## uncomment for CAN driver
###########################################################################
/bin/dev-can-xzynq=dev-can-xzynq
/bin/canctl=canctl
###########################################################################
## Screen executables
###########################################################################
/sbin/screen=screen
/usr/bin/sw-vsync=sw-vsync
/usr/bin/gles2-gears=gles2-gears
/usr/bin/calib-touch=calib-touch
/usr/bin/events=events
###########################################################################
## Network services (telnet) support
###########################################################################
[type=link] /var/log=/tmp
[type=link] /var/run=/tmp
[type=link] /var/lock=/tmp
/etc/esh = {
}
/etc/hosts=${QNX_TARGET}/etc/hosts
/etc/services=${QNX_TARGET}/etc/services
/etc/inetd.conf = {
ftp stream tcp nowait root /usr/sbin/ftpd in.ftpd -l
telnet stream tcp nowait root /usr/sbin/telnetd in.telnetd
}
/etc/ftpusers=${QNX_TARGET}/etc/ftpusers
/etc/ftpd.conf = {
/* Make things a+rw by default */
umask all 0000
}
[uid=0 gid=0 perms=0644] /etc/passwd = {
root:x:0:0:Superuser:/root:/bin/sh
sshd:x:15:6:sshd:/var/chroot/sshd:/bin/false
qnxuser:x:1000:1000:QNX User:/home/qnxuser:/bin/sh
}
# Enabled Username/Password: root/root, qnxuser/qnxuser
[uid=0 gid=0 perms=0600] /etc/shadow = {
root:@S@NKlWES1quMp1wmqugkUSnFEpPGn58kIs4wQOgDDNs06vimR+bbGPUKM+9P6jbFUzo3Rm+Qe5MS+17xKhwaeJEg==@Mjg5ZTJiMTM0YTRjYTE2ZGFjMDdhZTFlY2NlMDVmNmE=:1468494669:0:0
sshd:*:1231323780:0:0
qnxuser:@S@HZERXjgixvb3157FFeraShhvTVw+10ccUtVUVZbi0fUwpzlzBZFw5gHiFd1XHKit8D39Whe749XAY8fV4P5ANQ==@Y2ZlOTg3M2RhNTM4Y2M2ODY0OWZhODdiNDRkMmU5Nzg=:1468488235:0:0
}
[uid=0 gid=0 perms=0644] /etc/group = {
root:x:0:root
sshd:x:6:
qnxuser:x:qnxuser
}
###########################################################################
## PAM configurations addon build file
###########################################################################
[uid=0 gid=0 perms=4755] /bin/login=login
[uid=0 gid=0 perms=4755] /bin/passwd=passwd
[uid=0 gid=0 perms=4755] /bin/su=su
[uid=0 gid=0 perms=0755] /usr/sbin/sshd=sshd
[uid=0 gid=0 perms=0755] /usr/sbin/ftpd=ftpd
[uid=0 gid=0 perms=0755] /usr/sbin/inetd=inetd
[uid=0 gid=0 perms=0755] /usr/sbin/telnetd=telnetd
[uid=0 gid=0 type=dir dperms=0755] /usr
[uid=0 gid=0 type=dir dperms=0755] /usr/lib
[uid=0 gid=0 type=dir dperms=0755] /etc
[uid=0 gid=0 type=dir dperms=0755] /etc/pam.d
[uid=0 gid=0 perms=0644] /etc/pam.d/login=${QNX_TARGET}/etc/pam.d/login
[uid=0 gid=0 perms=0644] /etc/pam.d/passwd=${QNX_TARGET}/etc/pam.d/passwd
[uid=0 gid=0 perms=0644] /etc/pam.d/su=${QNX_TARGET}/etc/pam.d/su
[uid=0 gid=0 perms=0644] /etc/pam.d/ftpd=${QNX_TARGET}/etc/pam.d/ftpd
[uid=0 gid=0 perms=0755] /usr/lib/libpam.so=libpam.so
[uid=0 gid=0 perms=0755] /usr/lib/pam_ftpusers.so=pam_ftpusers.so
[uid=0 gid=0 perms=0755] /usr/lib/pam_rootok.so=pam_rootok.so
[uid=0 gid=0 perms=0755] /usr/lib/pam_qnx.so=pam_qnx.so
#[uid=0 gid=0 perms=0755] /usr/lib/pam_deny.so=pam_deny.so
#[uid=0 gid=0 perms=0755] /usr/lib/pam_echo.so=pam_echo.so
#[uid=0 gid=0 perms=0755] /usr/lib/pam_exec.so=pam_exec.so
#[uid=0 gid=0 perms=0755] /usr/lib/pam_group.so=pam_group.so
#[uid=0 gid=0 perms=0755] /usr/lib/pam_mac.so=pam_mac.so
#[uid=0 gid=0 perms=0755] /usr/lib/pam_permit.so=pam_permit.so
#[uid=0 gid=0 perms=0755] /usr/lib/pam_radius.so=pam_radius.so
#[uid=0 gid=0 perms=0755] /usr/lib/pam_self.so=pam_self.so
##########################################################################
## Set environment
###########################################################################
# Create a profile so telnet sessions will get environment variables
/etc/profile={
# env settings for new PCIe server
export PCI_HW_MODULE=/lib/dll/pci/pci_hw-xzynq-zcu102.so
export PCI_BKWD_COMPAT_MODULE=/lib/dll/pci/pci_bkwd_compat.so
export PCI_SLOG_MODULE=/lib/dll/pci/pci_slog2.so
export PCI_DEBUG_MODULE=/lib/dll/pci/pci_debug2.so
export PCI_BASE_VERBOSITY=0
# If running on a pre Rev 1 board with pre ES2 silicon, uncomment the next line
#export PCI_HW_CONFIG_FILE=/etc/pci_hw.cfg
export HOME=/
export SYSNAME=nto
export TERM=qansi
export PATH=/proc/boot:/bin:/usr/bin:/sbin:/usr/sbin:/usr/lib
export LD_LIBRARY_PATH=/proc/boot:/lib:/usr/lib:/lib/dll:/lib/dll/pci
export XLNX_VART_FIRMWARE=/dpu.xclbin
}
[uid=0 gid=0 perms=0444] /etc/pci_hw.cfg = {
[slots]
10ee;7024;0;1
# next 2 lines are for pre Rev 1/ES2 silicon only
#[XZYNQ]
#DYN_OFFSET_CALIBRATION = disable
}
###########################################################################
## disk commands
###########################################################################
/sbin/chkqnx6fs=chkqnx6fs
/bin/df=df
/bin/du=du
/sbin/fdisk=fdisk
/sbin/mkdosfs=mkdosfs
/sbin/mkqnx6fs=mkqnx6fs
/bin/mount=mount
/bin/sync=sync
/bin/umount=umount
###########################################################################
## network commands
###########################################################################
/usr/bin/arp=arp
/usr/sbin/fs-nfs3=fs-nfs3
/bin/hostname=hostname
/sbin/ifconfig=ifconfig
/usr/sbin/if_up=if_up
/usr/bin/netstat=netstat
/usr/sbin/nicinfo=nicinfo
/usr/bin/ping=ping
/usr/bin/qtalk=qtalk
/sbin/route=route
/usr/bin/setconf=setconf
###########################################################################
## Slogger
###########################################################################
/bin/slogger2=slogger2
/bin/slog2info=slog2info
###########################################################################
## Start the main shell
###########################################################################
[perms=0744] .console.sh={
#######################################################################
## REMOTE_DEBUG (gdb or Momentics)
## - refer to the help documentation for the gdb, qconn and the IDE
## for more information on remote debugging
## - the commands shown require that NETWORK is enabled too
#######################################################################
echo "Starting devc-pty..."
devc-pty
# Wait for socket before starting qconn
waitfor /dev/socket 4
echo "Starting qconn..."
qconn
ksh -l
}
###########################################################################
## general commands
###########################################################################
/usr/bin/awk=awk
/bin/cat=cat
/bin/chmod=chmod
/usr/bin/cksum=cksum
/bin/cp=cp
/usr/bin/date=date
/bin/dd=dd
/sbin/devb-ram=devb-ram
/usr/bin/diff=diff
/usr/bin/env=env
/usr/bin/grep=grep
/bin/isendrecv=isendrecv
/bin/ksh=ksh
/bin/ln=ln
/bin/ls=ls
/bin/mv=mv
/bin/on=on
/bin/pidin=pidin
/sbin/pipe=pipe
/usr/bin/printf=printf
/usr/sbin/random=random
/bin/rm=rm
/sbin/shutdown=shutdown
/bin/slay=slay
/usr/bin/sleep=sleep
/bin/stty=stty
/usr/bin/top=top
/usr/bin/touch=touch
/bin/uname=uname
/usr/bin/use=use
/bin/waitfor=waitfor
/usr/bin/wc=wc
/usr/bin/which=which
# Extra commands
/usr/bin/mkdir=mkdir
/usr/bin/curl=curl
/usr/lib/libcurl.so=libcurl.so
/usr/lib/libcares.so=libcares.so
/usr/bin/ldd=ldd
/lib/libjpeg.so=libjpeg.so
/usr/lib/libpng.so=libpng.so
/usr/lib/libpng16.so=libpng16.so
/usr/lib/libtiff.so=libtiff.so
/usr/bin/tar=tar
/usr/lib/libxml2.so=libxml2.so
/usr/lib/liblzma.so=liblzma.so
/usr/lib/libbz2.so=libbz2.so
/usr/bin/unzip=unzip
###########################################################################
## END OF BUILD SCRIPT
###########################################################################
Related content
© Copyright 2019 - 2022 Xilinx Inc. Privacy Policy