# Integrating NVIDIA Jetson NANO

**URL:** <https://hub.mender.io/t/integrating-nvidia-jetson-nano/1723>\
**Category:** General Discussions\
**Created:** [December 5, 2019, 3:08pm UTC](https://hub.mender.io/t/integrating-nvidia-jetson-nano/1723 "2019-12-05T15:08:37Z")\
**Posts on this page:** 16\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ecordonnier](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/ecordonnier/32/463_2.png) [@Ecordonnier](https://hub.mender.io/u/Ecordonnier)\
**Post date:** [December 5, 2019, 3:08pm UTC](https://hub.mender.io/t/integrating-nvidia-jetson-nano/1723/1 "2019-12-05T15:08:37Z")

</div>

I am also interested on adding support for Jetson-Nano for my project, however I did not start yet.

---

<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:** [December 5, 2019, 3:13pm UTC](https://hub.mender.io/t/integrating-nvidia-jetson-nano/1723/2 "2019-12-05T15:13:50Z")

</div>

I do not have much experience with this board and integration, but maybe @dwalkes has some input.

---

<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 5, 2019, 5:09pm UTC](https://hub.mender.io/t/integrating-nvidia-jetson-nano/1723/3 "2019-12-05T17:09:11Z")

</div>

So, that’s my current progress: [https://github.com/moqmar/meta-mender-community](https://github.com/moqmar/meta-mender-community) - it builds, but the partition layout isn’t working yet and I’m not really sure how the bootloader stuff will keep up. I’ll hopefully get this mostly running though in the next couple of days. 🤔

---

<div class="post-metadata">

**Author:** ![madisox](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/madisox/32/446_2.png) [@madisox](https://hub.mender.io/u/madisox)\
**Post date:** [December 5, 2019, 5:17pm UTC](https://hub.mender.io/t/integrating-nvidia-jetson-nano/1723/4 "2019-12-05T17:17:45Z")

</div>

Looking at the L4T R32.2.x BSPs, it looks like NVIDIA intends to add OTA bootloader update support to the Nano (and hopefully the Jetson TX1), but they don’t currently document it. If you’re willing to live without that, and just have Mender updating the kernel and rootfs, that should be doable by just adding in the U-Boot patches, updating the flash layout file, and excluding the script Dan added for the TX2. You’d have to reflash when a BSP change causes NVIDIA bootloader changes, though.

---

<div class="post-metadata">

**Author:** ![Ecordonnier](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/ecordonnier/32/463_2.png) [@Ecordonnier](https://hub.mender.io/u/Ecordonnier)\
**Post date:** [December 6, 2019, 9:47am UTC](https://hub.mender.io/t/integrating-nvidia-jetson-nano/1723/5 "2019-12-06T09:47:57Z")

</div>

Hello Moqmar, I also started to work on this (I am interested only in rootfs update, bootloader update is low priority), so please keep your github branch updated (thanks a lot for uploading it!) and I will also push to my github ([https://github.com/taurob/meta-mender-community](https://github.com/taurob/meta-mender-community)) when I have some progress.

---

<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 6, 2019, 2:06pm UTC](https://hub.mender.io/t/integrating-nvidia-jetson-nano/1723/6 "2019-12-06T14:06:03Z")

</div>

So, I got an image to build with meta-mender-tegra for the Nano - it boots, it has the correct Mender partitions mounted, and the Mender client is starting and connecting to my server. I have not tried rolling out an actual update through Mender yet, but will try on Monday if everything’s working. 🙂

Oh, and it would be great if someone with a TX2 could try out if I broke something with my patches. 🙈

---

<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:** [December 6, 2019, 2:08pm UTC](https://hub.mender.io/t/integrating-nvidia-jetson-nano/1723/7 "2019-12-06T14:08:09Z")

</div>

Great to hear @moqmar.

I would suggest you to run trough the [integration checklist](https://docs.mender.io/2.2/devices/yocto-project/bootloader-support/u-boot/integration-checklist) to verify the integration. If this passes then deploying updates should work just fine 🙂

---

<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 6, 2019, 3:03pm UTC](https://hub.mender.io/t/integrating-nvidia-jetson-nano/1723/8 "2019-12-06T15:03:27Z")

</div>

Thank you, will do that on Monday. Currently I have the issue that I wasn’t using the .dataimg generated by Mender but an empty one, but that one doesn’t have all the required Mender files - unfortunately, it seems like when `sdcard-layout.in` is being applied with dd, the new `.dataimg` file isn’t written yet:

I’m using `${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.dataimg` in `sdcard-layout_%.bbappend`, and getting the following error:

```auto
| 2147483648 bytes (2.1 GB, 2.0 GiB) copied, 1.26477 s, 1.7 GB/s
| dd: failed to open '/mnt/build/yocto/tmp/deploy/images/jetson-nano/sdcard-layout-jetson-nano--20191206145610.dataimg': No such file or directory
| WARNING: exit code 1 from a shell command.
| ERROR: Function failed: do_image_tegraflash (log file is located at /mnt/build/yocto/tmp/work/jetson_nano-poky-linux/target-image/1.0-r0/temp/log.do_image_tegraflash.27948)
ERROR: Task (/mnt/build/yocto/recipes/system/target-image.bb:do_image_tegraflash) failed with exit code '1'

```

In `/mnt/build/yocto/tmp/deploy/images/jetson-nano/`, there is only a file called `target-image-jetson-nano--20191206143758.dataimg`, which seems to be from the last build…

---

<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:** [December 6, 2019, 3:19pm UTC](https://hub.mender.io/t/integrating-nvidia-jetson-nano/1723/9 "2019-12-06T15:19:30Z")

</div>

@moqmar and @Ecordonnier sorry for the late response on this and @madisox/@mirzak thanks for weiging in. I’ve started a pull request at [https://github.com/Trellis-Logic/meta-mender-community/pull/7](https://github.com/Trellis-Logic/meta-mender-community/pull/7) and we can move the discussion there if you like. I’ll take a look over the weekend and verify nothing is broken on TX2 or create a PR to your branch for anything I find. I’ll also try to replicate the issue you mentioned above. I’m glad to see someone is adding support to platforms other than TX2!

---

<div class="post-metadata">

**Author:** ![Ecordonnier](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/ecordonnier/32/463_2.png) [@Ecordonnier](https://hub.mender.io/u/Ecordonnier)\
**Post date:** [December 6, 2019, 3:51pm UTC](https://hub.mender.io/t/integrating-nvidia-jetson-nano/1723/10 "2019-12-06T15:51:40Z")

</div>

@moqmar: I tried the branch on a tx2 (stand-alone update by copying the .mender file to the rootfs). It is working fine.

Edit: I also tried the branch with an image on a jetson-nano, but it is not booting. I will check this further on Monday:  
This is in my kernel logs:  
[5.292537] EXT4-fs (mmcblk0p1): bad geometry: block count 879616 exceeds size of device (524288 blocks)

And this is in my file log.do\_image\_ext4:  
DEBUG: Actual Partion size: 3602907136  
DEBUG: Executing mkfs.ext4 …

Creating filesystem with 879616 4k blocks and 879984 inodes

---

<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:** [December 9, 2019, 4:50am UTC](https://hub.mender.io/t/integrating-nvidia-jetson-nano/1723/11 "2019-12-09T04:50:07Z")

</div>

I put a couple of comments in [https://github.com/Trellis-Logic/meta-mender-community/pull/7](https://github.com/Trellis-Logic/meta-mender-community/pull/7) based on my testing this weekend, none of which are related to the Nano changes I believe. I think TX2 is broken in a couple different ways right now for reasons I don’t yet understand.

---

<div class="post-metadata">

**Author:** ![Ecordonnier](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/ecordonnier/32/463_2.png) [@Ecordonnier](https://hub.mender.io/u/Ecordonnier)\
**Post date:** [December 9, 2019, 11:59am UTC](https://hub.mender.io/t/integrating-nvidia-jetson-nano/1723/12 "2019-12-09T11:59:01Z")

</div>

@moqmar: you are probably using a custom SD-card layout? I had to make this change in meta-mender-tegra/classes/tegra-mender-setup.bbclass in order to be able to boot the jetson-nano with your branch:

-MENDER\_STORAGE\_TOTAL\_SIZE\_MB ??=“7000”  
+MENDER\_STORAGE\_TOTAL\_SIZE\_MB ??=“4096”

The standard partition size of the rootfs is 2GB, so if you configure the ext4 filesystem to be 50% of 7000MB, this cannot work.

---

<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 12, 2019, 2:43pm UTC](https://hub.mender.io/t/integrating-nvidia-jetson-nano/1723/13 "2019-12-12T14:43:06Z")

</div>

Current state: most stuff except for kernel updates is working, but updating the rootfs still throws an error (even though it works); for more details see [https://github.com/Trellis-Logic/meta-mender-community/pull/7#issuecomment-565034143](https://github.com/Trellis-Logic/meta-mender-community/pull/7#issuecomment-565034143)

---

<div class="post-metadata">

**Author:** ![Ecordonnier](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/ecordonnier/32/463_2.png) [@Ecordonnier](https://hub.mender.io/u/Ecordonnier)\
**Post date:** [December 16, 2019, 12:42pm UTC](https://hub.mender.io/t/integrating-nvidia-jetson-nano/1723/14 "2019-12-16T12:42:07Z")

</div>

@mirzak the branch is working (see [https://github.com/Trellis-Logic/meta-mender-community/pull/9](https://github.com/Trellis-Logic/meta-mender-community/pull/9) ), and I am working on a pull-request, but for this we’ll need to add documentation. Do you have a preference between editing the wiki page of the jetson-tx2 and making it a page for all tegra boards, and creating a separated page for jetson-nano?

In my opinion the documentation for both boards is very similar, so I would rather extend this page.

---

<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:** [December 16, 2019, 12:49pm UTC](https://hub.mender.io/t/integrating-nvidia-jetson-nano/1723/15 "2019-12-16T12:49:58Z")

</div>

Great to hear that you where able to progress.

> [@Ecordonnier](#):
>
> preference between editing the wiki page of the jetson-tx2 and making it a page for all tegra boards, and creating a separated page for jetson-nano?

Prefer to have two separate pages even if they are similar, and this is the approach we have taken so far on other boards/devices.

The reason behind this is that the posts are optimized for consumers. Having to many options/paths in the guide adds confusion and we try to avoid it. It is also easier to find if there are separate pages/posts.

Understand that it takes a bit more effort to maintain such an approach, but again optimized for consumer 🙂

---

<div class="post-metadata">

**Author:** ![vini](https://avatars.discourse-cdn.com/v4/letter/v/c77e96/32.png) [@vini](https://hub.mender.io/u/vini)\
**Post date:** [October 14, 2025, 4:44pm UTC](https://hub.mender.io/t/integrating-nvidia-jetson-nano/1723/16 "2025-10-14T16:44:23Z")

</div>

How did you integrate mender to theOS? can i use mender convert for this?
