Secrets of NVIDIA Jetson Development Unveiled

People often ask me various “small” questions in the group:

What is the memory size of Jetson TX2?

What are the dimensions of the Jetson TX2 development board? Can you provide a hole position diagram?

How many cameras can Jetson TX2 support at most?

Can Jetson TX2 support this brand of camera?

….

Secrets of NVIDIA Jetson Development Unveiled

What I particularly want to say is:

Why not check the various technical documents on NVIDIA’s official website?

Secrets of NVIDIA Jetson Development Unveiled

How can we obtain these hidden documents from NVIDIA?

Step 1: Open the website https://developer.nvidia.com/embedded/downloads (or scan the QR code with WeChat)

Secrets of NVIDIA Jetson Development Unveiled

Step 2: Register or log in (registration review may take some time, but please be patient)

Secrets of NVIDIA Jetson Development Unveiled

NVIDIA updated a wave of documents on December 7, 2017 (NVIDIA is quite diligent in updating documents), let me guide you through it:

Jetpack has been upgraded to 3.2

The main updates are:

  1. Support for Ubuntu Linux x64 16.04 has been added on the host

  2. Support for OpenCV 3.3.1

    — Note: OpenCV for Tegra has been deprecated. OpenCV 3.3.1 does not support hardware acceleration (it seems it has never supported it), but it facilitates access to basic computational functions and has been optimized for NEON and multithreading on Jetson.

  3. TensorRT 3.0 RC2 supports TensorFlow models, improving performance by 15% perf/W for DL applications.

For more specific information, please refer to the documentation in Jetpack, which includes a release note that fixes some bugs.

Newcomers often get excited when they receive Jetson and say: Give me an example to run!

Actually, after flashing Jetpack, there is sample code inside that you can compile and run, or even modify!

GCC Tool chain sources for 64-bit BSP and

GCC Tool chain for 64-bit BSP

NVIDIA provides a 64-bit ARM (aarch64) cross-compilation tool, installed on an X86_Linux host. NVIDIA provides a source package and an installation package. The source needs to be compiled before installation, while the installation package can be used directly.

Developers can compile the source package into a compiler for ARM or X86, which is said to be for advanced programmers…

What is cross-compilation? It means I can compile on the host and then transfer it to Jetson, rather than compiling directly on Jetson!

L4T Accelerated GStreamer User Guide

Let’s take a look at the directory:

Secrets of NVIDIA Jetson Development Unveiled

So, pay attention! If you are doing video encoding and decoding, or camera image capturing… please be sure to download and read this document carefully!

L4T Documentation

This compressed package contains the kernel, file system, u-boot, and driver documentation.

There is a lot of content:

Secrets of NVIDIA Jetson Development Unveiled

The kernel optimization includes:

  1. Using Git to obtain the kernel source code

  2. Manually downloading and expanding the kernel source code

  3. Building the NVIDIA kernel

  4. Preparing to build external kernel modules

  5. Building external kernel modules

  6. Kernel boot time optimization

  7. Display configuration and bringup

  8. Building AARCH 64 toolchain and glibc

The camera optimization includes:

  1. Camera software development solutions

  2. Using the Leopard IMX185 camera module on Jetson TX1 devices

  3. Sensor driver programming guide

L4T Jetson TX2 Driver Package

The Jetson TX2 28.2 64-bit download file contains the latest BSP for the Jetson TX2 development kit. It includes the bootloader (used to load U-boot, U-boot starts the kernel) and driver packages, including non-open-source drivers like the argus graphics driver (not including u-boot).

L4T Multimedia API and API reference

The multimedia API is a low-level API package that allows programmers to develop flexibly. The low-level API achieves flexibility by providing better control over the underlying hardware blocks.

The multimedia API includes:

  1. libargus imaging applications

  2. V4L2 API for encoding, decoding, scaling, and other media functions

  3. NVOSD for on-screen display

  4. Buffer tools for allocation, management, and sharing

It also includes some demo examples, such as how to use cuDNN, TensorRT, and OpenCV for object detection and classification, and using CUDA for image processing.

The multimedia API provides another application development path for those who do not use GStreamer or utilize custom frameworks.

Doesn’t it seem like the content is really rich?

Secrets of NVIDIA Jetson Development Unveiled

To be continued!

Secrets of NVIDIA Jetson Development Unveiled

Leave a Comment