NVIDIA Tegra Jetson TX2

sumo
yocto
nvidia

#1

Board description

NVIDIA Jetson TX2 hardware with computer vision, GPU and multimedia support.

image

URL: https://www.nvidia.com/en-us/autonomous-machines/embedded-systems-dev-kits-modules/
Wiki: https://elinux.org/Jetson_TX2

Test results

The Yocto Project releases in the table below have been tested by the Mender community. Please update it if you have tested this integration on other Yocto Project releases:

Yocto Project Build Runtime
sumo (2.5) :test_works: :test_works:
thud (2.6) :test_works: :test_works:

Build Means that the Yocto Project build using this Mender integration completes without errors and outputs images.
Runtime Means that Mender has been verified to work on the board. For U-Boot-based boards, the integration checklist has been verified.

Getting started

Prerequisites

  • A supported Linux distribution and dependencies installed on your workstation/laptop as described in the Yocto Mega Manual
    • NOTE. Instructions depend on which Yocto version you intend to use.
  • Google repo tool installed and in your PATH .

Setup Yocto environment

Set the Yocto Project branch you are building for:

# set to your branch, make sure it is supported (see table above)
export BRANCH="sumo" 

Create a directory for your mender-tegra setup to live in and clone the
meta information.

mkdir mender-tegra && cd mender-tegra

Initialize repo manifest:

repo init -u https://github.com/mendersoftware/meta-mender-community \
           -m meta-mender-tegra/scripts/manifest-tegra.xml \
           -b ${BRANCH}

Fetch layers in manifest:

repo sync

Setup build environment

Initialize the build environment:

source setup-environment tegra

Building the image

You can now proceed with building an image:

MACHINE=jetson-tx2 bitbake core-image-base

Replace core-image-base with your desired image target.

See the corresponding meta-mender-tegra/templates/local.conf file within meta-mender-tegra folder of meta-mender-community project for template local.conf variables.

Using the build output

After a successful build, the images and build artifacts are placed in tmp/deploy/images/jetson-tx2.

The disk image package for Jetson has a name like core-image-minimal-jetson-tx2.tegraflash.zip. This file can be used along with recovery mode on the Jetson TX2 to initially provision the device. To enter recovery mode:

  • Power cycle
  • Hold down the RST button and REC button.
  • Release the RST button while continuing to hold the REC button.
  • Wait two seconds, then release the REC BUTTON.

Copy the deploy.sh script from the meta-mender/tegra/scripts/deploy.sh to the base directory (the one below build) and run.

On the other hand, if you already have Mender running on your device and want to deploy a rootfs update using this build, you should use the Mender Artifact files, which have .mender suffix. You can either deploy this Artifact in managed mode with the Mender server as described in Deploy to physical devices or by using the Mender client only in Standalone deployments.

References

  • meta-tegra: The base BSP layer with support for NVIDIA tegra. See completed pull request here for modifications to support mender.
  • meta-mender-tegra layer in meta-mender-community: Customization for mender on tegra, including u-boot and partitioning. See completed pull request here for initial modifications to support NVIDIA tegra.
  • The official Mender documentation explains how Mender works. This is simply a board-specific complement to the official documentation.

Known issues

NVIDIA tegra platforms other than jetson tx2 should work with most changes however they will require additional partitioning changes. Specifically settings in local.conf.append and a specific flash custom layout file similar to flash_l4t_t186.custom.xml which are a modified version of the default PARTITION_FILE used by meta-tegra.


#2

@dwalkes thanks for sharing really looks like nice piece of HW. Would be also possible to add support for this board to meta-mender-community? All other boards like rpi, orangepi have support int this repo. It’s very simple to add support for new boards. We need to create new group (like tegra) add only meta-tegra and your changes from meta-mender-tegra few tweaks here and there and this is it.What do you think? Thanks.


#3

@MarekBelisko, good idea, I will move my meta-mender-tegra changes into this repository and work on a pull request.


#4

Great work!

@dwalkes @MarekBelisko, I would hold of doing anything until we see what the result of you PR to meta-tegra is, and if they are interested in moving the contest of meta-mender-tegra to meta-tegra.

That would be preferred over putting it in meta-mender-community.


#5

Sure thing @mirzak, I’ve updated the PR to state the intention and link this conversation.


#6

See new meta-mender-community PR here


#7

@mirzak, @MarekBelisko,
Thank you for your help and suggestions. I believe I’ve resolved all issues and the PR is now complete. Should the “INCOMPLETE” portion of the title be removed?


#8

Yeah, the INCOMPLETE tag can be removed as well. Great job and thank you for your contribution.


#9

Thud release working with PR at https://github.com/mendersoftware/meta-mender-community/pull/41