How to flash a custom image onto Jetson TX2

I’m in the process of putting together an MIT RACECAR, and was recently sent the software images meant to be flashed on the Jetson TX2, however, I’m primarily a Python developer with rather limited experience with the more complex aspects of the Jetson. Wondering what the steps would be required to get the correct software image flashed onto the Jetson, as I was sent a folder with multiple files and not sure where to start. Thanks.

Here are the names of the files in the folder:

  • 2019_06_23_2352-26660552-NVIDIA_Nomad_2019.2.19174.2352_Release_External-L4T.linux.deb
  • cuda-repo-cross-aarch64-10-0-local-10.0.326_1.0-1_all.deb
  • devtools_docs.zip
  • libvisionworks-repo_1.6.0.500n_amd64.deb
  • libvisionworks-sfm-repo_0.90.4_amd64.deb
  • libvisionworks-tracking-repo_0.88.2_amd64.deb
  • NsightSystems-linux-public-2019.4.1.10-a76094a.deb
  • NVIDIA_VisionWorks_References.zip
  • Jetson .jason file

I have no knowledge of the specific project, but to get you started, the “.deb” files with “amd64” have to go on your developer Linux PC. The ones marked “all” would be architecture independent, and possibly could go on both PC and Jetson…but you’ll need to check the directions to know which one to put them on. The ones not marked with an architecture might be for either architecture, but installing on the wrong one probably won’t be an issue because the package likely will reject install to the wrong architecture.

NsightSystems very likely is intended only for the PC.

The zip files can have their contents listed with “unzip -l /where/ever/it/is/filename.zip”. If it is source code, then perhaps it can be compiled on either, but more than likely it’ll compile directly on the Jetson. You need more information to know. In some cases compile will be on the PC, but through cross compiler tools, and still intended for the Jetson…it is easier to just compile on the Jetson if you have enough disk space.

Speaking of disk space, you can view the space available at a location, and type of space, via “df -H -T /where/ever/you/are/interested/in”. You can do similar to list space on everything formatted as ext4 (the type of filesystem you are normally interested in) via “df -H -T -t ext4”. If you run out of space you might not be able to log in, and saving it would be a matter of cloning and then restoring from a fixed clone (takes a lot of time and space to do this so you probably need to avoid running out of space).

The “.json” file typically is a list of URLs and packages available at sublocations within that URL. I’ve not seen a custom version of this, but JetPack/SDK Manager uses these to find packages for download. You can flash a Jetson on command line manually after downloading and setting up various packages, but JetPack/SDK Manager does this for you, and it is through “.json” files that this is discovered. The “.json” might be used with other software and not with JetPack/SDK Manager, and so you’ll need instructions on that.

“L4T” (“Linux for Tegra”) is just Ubuntu (currently Ubuntu 18.04 LTS) with NVIDIA drivers added to it. JetPack (and its newer name SDK Manager) are front ends to flashing and downloading and installation tools. An L4T release is bound to a specific JetPack/SDKM release. You can find a historical listing of L4T and JetPack/SDKM releases here, but you have to log in first and then click the link again since forwarding does not work:
https://developer.nvidia.com/embedded/jetpack-archive
https://developer.nvidia.com/linux-tegra

Remember that specific releases of CUDA and several CUDA-dependent packages will be dependent upon the specific L4T/JetPack/SDKM release. You should not mix releases flashed with packages from a different release.

Documentation downloads are here, probably you’d want to filter for the TX2 first:
https://developer.nvidia.com/embedded/downloads