NVIDIA Tegra Jetson Nano

The mender-tegra integration supports full bootloader updates only on the TX2 and Xavier platforms, since those platforms have full A/B redundancy for the entire boot chain. The Nano and TX1 platforms have a different form of bootloader redundancy, so updates have to be handled more carefully. It should be possible to do with the addition of some state scripts, but it’s not currently built in - you would have to ensure that your bootloader update is compatible with both the new and old rootfs/kernel.

Thanks for the response. We have dropped the idea of updating the bootloader, but we would at least want to be able to update the kernel DTB, but we can’t figure out how. Do you have some pointers to the right resources to get it working?

The u-boot-bup-payload recipe will build multiple BUP payloads, two of which (The kernel_only and uboot_only ones) contain updates for just the DTB (kernel DTB) and LNX (u-boot) partitions. Including one of those in your build, and having a state script that runs l4t_payload_updater_t210 on that file would be pretty close.

Thanks! I did found I also can add “UBOOT_EXTLINUX_FDT” to a recipe with met DTB as the value. This puts the DTB in de extlinux.conf, which seems to do the job!

1 Like

2 posts were split to a new topic: Mender-convert support for Jetson Nano

Hi @Langhalsdino, I am facing exactly the same error.
If you’ve managed to resolve it then can you please help me with the steps you followed.

Update: This only fixes my CUDA download and install issues.

Be sure to use ubuntu18.04. That issue is occurring because in build/conf/local.conf the NVIDIA_DEVNET_MIRROR var is commented out. Uncomment it making sure the path specified is where the CUDA toolkit .deb file is located. Also make sure to download CUDA toolkit.

mkdir -p ~/Downloads/nvidia/sdkm_downloads
wget https://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda-repo-ubuntu1804-10-2-local-10.2.89-440.33.01_1.0-1_amd64.deb -O ~/Downloads/nvidia/sdkm_downloads/cuda-repo-ubuntu1804-10-2-local-10.2.89-440.33.01_1.0-1_amd64.deb

Update tegra-demo-distro/layers/meta-tegra/recipes-devtools/cuda/cuda-binaries-common-defs.inc to

CUDA_REPO_EXTRA_x86-64 = "-10.2.89-440.33.01"

Update tegra-demo-distro/layers/meta-tegra/recipes-devtools/cuda/cuda-binaries-ubuntu1804_10.2.89-1.bbc to

SRC_URI = "${NVIDIA_DEVNET_MIRROR}/cuda-repo-ubuntu1804-10-2-local-10.2.89-440.33.01_1.0-1_amd64.deb"
SRC_URI[sha256sum] = "a9a5ab0324291b25170245ad39817684487f9bceda1848f05be1b53acd55fafc"

Should work fine after.

1 Like

Hello, I’m wondering: is possible to create a single OTA upgrade file for TX2 4GB, TX2 8GB and Nano based devices?

Thanks for any answer or hint here :-).

As long as the partition sizes are identical and they are all capable of running the same binaries then it should be feasible. I don’t know those boards though. Perhaps @madisox or @dwalkes can comment further.

The meta-tegra BSP layer isn’t really designed to create generic images across multiple machine types (nor is the rest of Yocto/OE, really). In theory, at least, you could probably put together a single machine configuration that supports multiple TX2 models without too much difficulty - as long as you restrict your eMMC usage on the TX2-8GB to 16GB to match the TX2-4GB. Adding in the Nano would be harder, as the underlying SoC is more different, and there are a number of NVIDIA-provided packages that differ between the SoC flavors.

So short answer is no, but with a bit of work you might be able to get down to two instead of three.


I followed the steps to prepare image for jetson nano but got stuck with an error. Upon executing the command bitbake demo-image-base, I get the following error:

ERROR: libglvnd-1.3.1-r0 do_fetch: Fetcher failure: Fetch command export PSEUDO_DISABLED=1; export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus"; export SSH_AGENT_PID="1957"; export SSH_AUTH_SOCK="/run/user/1000/keyring/ssh"; export PATH="/home/dhruv/Desktop/tegra-demo-distro/build/tmp/sysroots-uninative/x86_64-linux/usr/bin:/home/dhruv/Desktop/tegra-demo-distro/build/tmp/work/armv8a_tegra-oe4t-linux/libglvnd/1.3.1-r0/recipe-sysroot-native/usr/bin/python3-native:/home/dhruv/Desktop/tegra-demo-distro/layers/scripts:/home/dhruv/Desktop/tegra-demo-distro/build/tmp/work/armv8a_tegra-oe4t-linux/libglvnd/1.3.1-r0/recipe-sysroot-native/usr/bin/aarch64-oe4t-linux:/home/dhruv/Desktop/tegra-demo-distro/build/tmp/work/armv8a_tegra-oe4t-linux/libglvnd/1.3.1-r0/recipe-sysroot/usr/bin/crossscripts:/home/dhruv/Desktop/tegra-demo-distro/build/tmp/work/armv8a_tegra-oe4t-linux/libglvnd/1.3.1-r0/recipe-sysroot-native/usr/sbin:/home/dhruv/Desktop/tegra-demo-distro/build/tmp/work/armv8a_tegra-oe4t-linux/libglvnd/1.3.1-r0/recipe-sysroot-native/usr/bin:/home/dhruv/Desktop/tegra-demo-distro/build/tmp/work/armv8a_tegra-oe4t-linux/libglvnd/1.3.1-r0/recipe-sysroot-native/sbin:/home/dhruv/Desktop/tegra-demo-distro/build/tmp/work/armv8a_tegra-oe4t-linux/libglvnd/1.3.1-r0/recipe-sysroot-native/bin:/home/dhruv/Desktop/tegra-demo-distro/repos/poky/bitbake/bin:/home/dhruv/Desktop/tegra-demo-distro/build/tmp/hosttools"; export HOME="/home/dhruv"; LANG=C git -c core.fsyncobjectfiles=0 clone --bare --mirror "https://gitlab.freedesktop.org/glvnd/libglvnd.git" /home/dhruv/Desktop/tegra-demo-distro/build/downloads/git2/gitlab.freedesktop.org.glvnd.libglvnd.git --progress failed with exit code 128, no output
ERROR: libglvnd-1.3.1-r0 do_fetch: Bitbake Fetcher Error: FetchError('Unable to fetch URL from any source.', 'git://gitlab.freedesktop.org/glvnd/libglvnd.git;protocol=https')
ERROR: Logfile of failure stored in: /home/dhruv/Desktop/tegra-demo-distro/build/tmp/work/armv8a_tegra-oe4t-linux/libglvnd/1.3.1-r0/temp/log.do_fetch.5343
ERROR: Task (/home/dhruv/Desktop/tegra-demo-distro/layers/meta-tegra/recipes-graphics/libglvnd/libglvnd_1.3.1.bb:do_fetch) failed with exit code '1'
NOTE: Tasks Summary: Attempted 1224 tasks of which 1212 didn't need to be rerun and 1 failed.

Summary: 1 task failed:
Summary: There were 2 WARNING messages shown.
Summary: There were 2 ERROR messages shown, returning a non-zero exit code.

Please help me fix it

Hey @DrvAgwl,

It looks like this is a problem with Gitlab and the libglvnd repository. Even the cloning with the git tool (without the need of Bitbake) is not working. My suggestion is to download the source code anywhere else and edit the SRC_REPO value in the libglvnd’s recipe.
If you find any better method, please let us know.


Yeah, that worked. Thanks @lramirez