# NVIDIA Tegra Jetson TX2

**URL:** <https://hub.mender.io/t/nvidia-tegra-jetson-tx2/123>\
**Category:** Yocto Project\
**Tags:** yocto, sumo, nvidia, thud, warrior, dunfell\
**Created:** [November 3, 2018, 3:05pm UTC](https://hub.mender.io/t/nvidia-tegra-jetson-tx2/123 "2018-11-03T15:05:44Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![dwalkes](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/dwalkes/32/41_2.png) [@dwalkes](https://hub.mender.io/u/dwalkes)\
**Post date:** [November 3, 2018, 3:05pm UTC](https://hub.mender.io/t/nvidia-tegra-jetson-tx2/123/1 "2018-11-03T15:05:44Z")

</div>

# Board description

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

![image](https://canada1.discourse-cdn.com/flex036/uploads/mender/original/1X/a6d28871d6fbaaef4bc456919964177caf2164d4.jpeg)

URL: [https://www.nvidia.com/en-us/autonomous-machines/embedded-systems-dev-kits-modules/](https://www.nvidia.com/en-us/autonomous-machines/embedded-systems-dev-kits-modules/)  
Wiki: [https://elinux.org/Jetson\_TX2](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](https://wiki.yoctoproject.org/wiki/Releases?target=_blank):

| Yocto Project | Build | Runtime |
| --- | --- | --- |
| sumo (2.5) | :test_works: | :test_works: |
| thud (2.6) | :test_works: | :test_works: |
| warrior (2.7) | :test_works: | :test_works: |
| zeus (3.0) | :test_works: | :test_works: |
| dunfell (3.1) | :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](https://docs.mender.io/system-updates-yocto-project/board-integration/bootloader-support/u-boot/integration-checklist?target=_blank) has been verified.

# Getting started

## Prerequisites

- A supported Linux distribution and dependencies installed on your workstation/laptop as described in the [Yocto Mega Manual](https://www.yoctoproject.org/docs/current/mega-manual/mega-manual.html#detailed-supported-distros)
  - NOTE. Instructions depend on which Yocto version you intend to use.

## Setup Yocto Environment

Dunfell and later releases use the [tegra-demo-distro](https://github.com/OE4T/tegra-demo-distro) to demonstrate a working mender configuration.

Please use the `setup-env` script in [tegra-demo-distro](https://github.com/OE4T/tegra-demo-distro) to setup and configure the `tegrademo-mender` distribution. Use the branch corresponding to the yocto version you plan to target. For instance, for the dunfell branch and NVIDIA L4T release 32.4.3, use these commands from the root of the cloned tree:

```auto
git submodule update --init
git checkout dunfell-l4t-r32.4.3

```

Then use

```auto
source ./setup-env --distro tegrademo-mender --machine jetson-tx2

```

To setup your build environment for Jetson TX2.

See the [OE4T/meta-tegra](https://github.com/OE4T/meta-tegra/wiki) wiki for more information about the meta-tegra project.

### Setup build environment

Initialize the build environment:

```auto
source ./setup-env --distro tegrademo-mender --machine jetson-tx2

```

or if you’ve already setup your initial environment you can use the simpler option:

```auto
source ./setup-env

```

### Building the image

You can now proceed with building an image:

```auto
bitbake demo-image-base

```

## 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 `demo-image-base-jetson-tx2.tegraflash.tar.gz`. 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.

You should see your NVIDIA device listed in the `lsusb` device output.

Next, extract the .tar.gz file and then run the `./doflash.sh` script inside to flash the build to the device. The script at `repos/meta-mender-community/meta-mender-tegra/scripts/deploy.sh` can be customized to automate this step if desired. See the instructions on the [OE4T wiki](https://github.com/OE4T/meta-tegra/wiki/Flashing-the-Jetson-Dev-Kit) for additional details.

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](https://docs.mender.io/overview/artifact) files, which have `.mender` suffix. You can either deploy this Artifact in managed mode with the Mender server (upload it under Releases in the server UI) or by using the Mender client [standalone mode](https://docs.mender.io/artifact-creation/standalone-deployment).

# References

- [meta-tegra](https://github.com/OE4T/meta-tegra): The base BSP layer with support for NVIDIA tegra. See completed pull request [here](https://github.com/madisongh/meta-tegra/pull/114) for modifications to support Mender.
- [meta-mender-tegra](https://github.com/mendersoftware/meta-mender-community/tree/sumo/meta-mender-tegra) layer in meta-mender-community: Customization for mender on tegra, including u-boot and partitioning. See completed pull request [here](https://github.com/mendersoftware/meta-mender-community/pull/15) for initial modifications to support NVIDIA tegra. See OE4T layer at [this link](https://github.com/OE4T/meta-mender-community) for any changes or to file issues against mender and NVIDIA support.
- The official [Mender documentation](https://docs.mender.io/) explains how Mender works. This is simply a board-specific complement to the official documentation.

# Standalone Updates and Bootloader Components

As of [the warrior branch](https://github.com/mendersoftware/meta-mender-community/pull/107), the mender update framework for tegra now supports [redundant boot](https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%2520Linux%2520Driver%2520Package%2520Development%2520Guide%2Fbootloader_update.html%23) for bootloader components using NVIDIA tools and images. This means you can now update all bootloader components in your image, including u-boot, c-boot and device trees. See [this issue](https://github.com/madisongh/meta-tegra/issues/178) for background.  
The redundant boot components are upgraded through a mender reboot state script. This means the upgrades are not performed during manual install. To perform reboot state script updates using manual install, the `mender-install-manual` script is provided in the rootfs. Run this script with the same arguments you would provide to mender -install. The system will run the reboot state script content after performing the update. Based on the implementation of NVIDIA redundant boot update software, the system will reboot automatically after running

# Known issues

[Let us know](https://github.com/OE4T/meta-mender-community/issues) if you find one!

* * *

_If this post was useful to you, please press like, or leave a thank you note to the contributor who put valuable time into this and made it available to you. It will be much appreciated!_

---

<div class="post-metadata">

**Author:** ![mirzak](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/mirzak/32/2056_2.png) [@mirzak](https://hub.mender.io/u/mirzak)\
**Post date:** [August 15, 2019, 8:23am UTC](https://hub.mender.io/t/nvidia-tegra-jetson-tx2/123/2 "2019-08-15T08:23:00Z")

</div>

6 posts were split to a new topic: [Integration of NVIDIA Tegra Jetson TX2](https://hub.mender.io/t/integration-of-nvidia-tegra-jetson-tx2/927)

---

<div class="post-metadata">

**Author:** ![moqmar](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/moqmar/32/445_2.png) [@moqmar](https://hub.mender.io/u/moqmar)\
**Post date:** [December 4, 2019, 5:15pm UTC](https://hub.mender.io/t/nvidia-tegra-jetson-tx2/123/10 "2019-12-04T17:15:34Z")

</div>

Did anyone get Mender to work with the Jetson Nano yet, even though it’s based on the `tegra210` platform? I’m trying to make this work, but I’ve never used Mender before, and it seems like `u-boot-bup-payload` is purely `tegra186` compatible. There’s also a hard dependency on `tegra186-redundant-boot`, which isn’t compatible with `tegra210` either. To be honest, I don’t really have an idea about what those two recipes even do (selecting the correct partition on boot, sure, but how?) and the only information I can find is the [original commit](https://github.com/madisongh/meta-tegra/commit/e752d9061fbaf4112ac5b3fe18afd4ad3c444d9c) for the bup payload and [your issue](https://github.com/madisongh/meta-tegra/issues/178) for the redundant boot recipe.  
There _is_ a variable called [`TEGRA210_REDUNDANT_BOOT`](https://github.com/madisongh/meta-tegra/blob/ce1e2d37793ac07ae20a8b436b828535d768802e/classes/image_types_tegra.bbclass#L97), but this seems to only affect the partition table (which should be the smaller issue to fix) while `tegra186-redundant-boot` seems to do a lot more stuff.

I hope I’m not the only one trying to get Mender to work with the Nano and someone can share his experience. 🙃

---

<div class="post-metadata">

**Author:** ![mirzak](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/mirzak/32/2056_2.png) [@mirzak](https://hub.mender.io/u/mirzak)\
**Post date:** [April 1, 2020, 7:00am UTC](https://hub.mender.io/t/nvidia-tegra-jetson-tx2/123/11 "2020-04-01T07:00:47Z")

</div>

15 posts were split to a new topic: [Integrating NVIDIA Jetson NANO](https://hub.mender.io/t/integrating-nvidia-jetson-nano/1723)

---

<div class="post-metadata">

**Author:** ![mirzak](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/mirzak/32/2056_2.png) [@mirzak](https://hub.mender.io/u/mirzak)\
**Post date:** [April 1, 2020, 6:59am UTC](https://hub.mender.io/t/nvidia-tegra-jetson-tx2/123/27 "2020-04-01T06:59:39Z")

</div>

4 posts were split to a new topic: [Problem flashing NVIDIA Jetson TX2](https://hub.mender.io/t/problem-flashing-nvidia-jetson-tx2/1722)

---

<div class="post-metadata">

**Author:** ![copycat](https://avatars.discourse-cdn.com/v4/letter/c/779978/32.png) [@copycat](https://hub.mender.io/u/copycat)\
**Post date:** [September 15, 2020, 4:01pm UTC](https://hub.mender.io/t/nvidia-tegra-jetson-tx2/123/28 "2020-09-15T16:01:51Z")

</div>

How can I flash image to SATA drive instead of eMMC?

I tried to change **MENDER\_ROOTFS\_PART\_A** to “ **/dev/sda3** ” and **MENDER\_ROOTFS\_PART\_B** to “ **/dev/sda4** ” accordingly with no luck - device stuck on “nvidia” logo during boot

---

<div class="post-metadata">

**Author:** ![dwalkes](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/dwalkes/32/41_2.png) [@dwalkes](https://hub.mender.io/u/dwalkes)\
**Post date:** [September 15, 2020, 4:37pm UTC](https://hub.mender.io/t/nvidia-tegra-jetson-tx2/123/29 "2020-09-15T16:37:33Z")

</div>

@copycat I’ve never tried this but I expect it’s probably more complicated than just changing the mender partitions. If I were going to try it I’d start by putting together an image based on NVIDIA sources that can boot to SATA, then attempt to replicate that setup with [meta-tegra](https://github.com/madisongh/meta-tegra). Once you have it working in meta-tegra the additional changes to work with mender will likely be easier to understand/scope.
