JetPack 4.1 Developer Preview Early Access for Jetson AGX Xavier

NVIDIA has released a security update in JetPack 4.1 Developer Preview Early Access and L4T BSP 31.0.2 for Jetson AGX Xavier, which is available from NVIDIA DevZone. In addition, the update includes functional and performance enhancements for NVIDIA Jetson AGX Xavier, including:

  • Improved bandwidth utilization of the memory subsystem
  • Enables coherency for Ethernet transactions
  • Fixes the installer to not fail silently when installing from unsupported file systems

Please refer to the JetPack Release Notes and L4T Release Notes for more information.

JetPack 4.1 Developer Preview EA components:

  • L4T R31.0.2
  • Ubuntu 18.04 LTS aarch64
  • CUDA 10.0
  • cuDNN 7.3
  • TensorRT 5.0 RC
  • VisionWorks 1.6
  • OpenCV 3.3.1

Download JetPack…https://developer.nvidia.com/embedded/jetpack
Release Notes…https://developer.nvidia.com/embedded/jetpack-notes
L4T Release Notes…https://developer.nvidia.com/embedded/dlc/l4t-release-notes-31-0-2
L4T R31.0.2 Page…https://developer.nvidia.com/embedded/linux-tegra

Is there a way to install this update without erasing the large collection of software and data I already have installed? I’d like to do this in the least disruptive way possible, and certainly don’t want to have to start over from scratch.

Hi RGobbel, the only way to install JetPack-L4T updates is to re-flash from the host PC, so you will want to backup your data and code from your Jetson before doing so.

After I have configured the system the way I want it, I use the following script to copy all the files on the target EMMC to a local .cpio.gz archive:

Assuming you are in your L4T directory:

# cd jetpack/Xavier/Linux_for_Tegra

Here’s the script (you may want to stick this in a “backup-xavier.sh” file or whatever and then run it):

#!/bin/bash
if [ -f saved-rootfs.cpio.gz ]; then
    echo "refusing to overwrite saved-rootfs.cpio.gz"
    exit 1
fi
ssh xavier sudo sh -c "'cd /; find . -xdev -depth -print | egrep -v \"(/obj/)|(/build/)|(/doc/)|(/nvidia/.cache)\" | cpio -o -H crc | gzip'" > saved-rootfs.cpio.gz

You will want to set up your .ssh/config file to know that “xavier” means whatever the IP address is of your Xavier devkit, so that “ssh xavier” works.

I can then unpack that archive into a new rootfs directory to make sure that the next flash retains the files:

# mv rootfs rootfs.old
# mkdir rootfs
# cd rootfs
# zcat ../saved-rootfs.cpio.gz | cpio -i -d

Of course, a new JetPack will have a new root file system, so here’s the trick:
After you unpack your old backup, copy all the files from the “rootfs/” that came with the new jetpack on top of the unpacked archive.

# cp -pRd ../rootfs.old/* .

You can now flash.sh, and it should retain all the files you have added, while applying the new jetpack files.
If you have modified files that were part of the original install, you will have to re-modify them, though.

In general, the Jetson is a “target system” not a “development system” – you will need to make sure that you have an automated way to apply whatever you want to apply to the Jetson. That may be a script that installs packages, or a github account you clone data from, or something similar along that vein.