Newbie Steps to Regenerate Jetpack

Hello!

My Orin Nano SDK was dormant for several months. I would like to get back on track by flashing the latest Jetpack 6 ISO directly to the SSD on the Orin Nano SDK. Where can I get the latest Jetpack for this purpose (assuming that Jetpack 7 will not work for me)?

The device underwent a firmware revision (from factory defaults) during the first round of exercises. However, my incompetence kept messing up the Docker versions through update/upgrade/downgrade cycles. I understand that there is a new Jetpack that is compatible with Docker (v28?).

Currently, my Orin Nano SDK boots into desktop mode, but then there is no response to mouse or keyboard clicks after the boot. Since there is nothing that I would like to retain, I would like to start from scratch and bypass the microSD card installation method. (The factory installed firmware has been upgraded for Jetpack 6.x)

I am a little confused by sdkmanager because my desktop seems to have one, but its options and prompts are not even remotely related to the Jetson version. (I have Android Studio on the desktop and I suspect that some of its utilities may have installed this similarly named app). I have the command line installation for sdkmanager, but I don’t want to erase the existing installation in case it is relevant for some of my other but unrelated exercises. Do I not have a choice to use some other utility to flash the SSD with the compatible Jetpack for the Orin Nano SDK and eliminate the dependency on the microSD card?

What would be the safest recommendation for a newbie like me to get back on track with Happy Computing with the Orin Nano SDK? Thanks.

Regards.

P.S.
I have done due diligence, as a newbie, looking for tutorials or other documentation on:

  • Locating the correct Jetpack 6 for download
  • Flashing the downloaded Jetpack to the Orin Nano SDK

My feeble searches didn’t provide me with any documentation that I could use as Hands-on-Lab style exercises.

For reference, L4T is just what Ubuntu gets called after adding the NVIDIA drivers. L4T is what actually gets flashed, and JetPack/SDK Manager is just a front end to the flash software. Usually the JetPack release is tied to the L4T release, but there are options when starting JetPack/SDKM to show older releases (just not by default). If you go to the URL for a given L4T release, then it will also lead to that JetPack/SDKM release; similar, if you go to a JetPack/SDKM release, it generally gets to a given L4T release. The list of L4T releases for each type of hardware is here:
https://developer.nvidia.com/linux-tegra

A list of JetPack releases:
https://developer.nvidia.com/embedded/jetpack-archive

Someone else would have to talk about the Docker uses, but generally speaking, you would want to examine documentation from the specific L4T release. The complication is that JetPack/SDKM has to run on particular host PC Ubuntu releases, but this is then further narrowed down by the specific L4T release being flashed, and this is why Docker can help.

Do check out documentation for serial console whenever you have to debug. Serial console can log to a different computer, and tends to survive and provide information before Linux ever loads.

Jetsons do not have a hardware BIOS, but they do have the software equivalent. Some models of Jetsons, even when they use an SD card, have content flashed onto the Jetson itself (they still have QSPI memory even if they don’t have eMMC). Often a pre-created version of an SD card is used, but the Jetson itself tends to need to be flashed once with the compatible major release of software (and if not, then it tends to fail boot and not find the SD card or do something else to fail boot). If you have flashed once, and it is from the same major release (JetPack 6 tends to flash L4T R36.x, so any prebuilt R36.x SD card image would be compatible), then just creating a binary image onto the SD card would tend to work. If it still fails, then probably the Jetson needs to be flashed once.

Because Jetsons do not have a hardware BIOS it complicates things when you go to boot other media. Jetsons with eMMC are flashed differently from the SD-card-only models, and there is yet other flash procedure change when you go to use an SSD. Basically, flashing or image creation software is building an initrd which acts as a kind of “adapter” between boot stages and Linux. Regardless, flash is generating various content, including the ext4 filesystem, which most other o/s’s are not capable of (e.g., Windows does not know how to create an ext4 filesystem, nor does Windows know how to use loopback). Possibly Android knows a bit more, but still won’t work for flash. In recovery mode Jetsons are just custom USB devices using a custom driver, and that driver is designed for given releases of Ubuntu PCs. Trivia: The actual flash software is called the “driver package”, and long ago this was all you got and there was no JetPack/SDKM.

For SSD you will tend to need to look for the “initrd flash” instructions. Every flash software install to the PC will create a directory here on your host PC:
~/nvidia/nvidia_sdk/JetPack...verison.../Linux_for_Tegra/

Within that will be a “tools/” subdirectory, and usually there are some README files in addition to the regular documentation from the L4T release; the initrd flash tool will be there as well (or a subdirectory).

JetPack 7.x is not out yet for Orin (probably in a few months?), and currently only supports Thor.

Note that if your Orin Nano has the SD card slot on the back of the module, then it won’t have eMMC, and that this will be an Orin Nano developer kit; this is what the NVIDIA software supports. Sometimes people will buy from a third party, and that third party might make their own carrier board. In this case the Nano itself will have eMMC, and any SD card slot would be on the carrier board, and this is no longer a “developer kit”. It sounds like you have a developer kit, and in turn, this implies you can use NVIDIA’s flash software and content.

The URL for a given L4T release will also have SD card images, but I don’t know how that would work with SSD (someone else might be able to answer, I don’t have an SSD so I’ve never flashed that).

Theoretically, if your Jetson itself has been initrd flashed to look at an SSD, then any method of getting a valid image to the SSD would work, e.g., it might need a specific partition scheme, and the partition might need to have a specific UUID or label. In that case applications like dd would be able to transfer an image to the SSD partition, but there is a lot more to it than with the SD card. You would really want to start with reading initrd flash docs.

For ease of flashing, beware that during a flash the Jetson will automatically reboot once flash completes, and the Jetson will no longer be in recovery mode. This is when first boot account setup occurs, followed by install of any of the optional content. I recommend that you start by unchecking all additional content, and unchecking any content install to the host PC itself. You can then, at a later time, fully boot the Jetson (no recovery mode) and start sdkmanager, then uncheck flash, but leave any optional software addition you want enabled (for either Jetson or host PC), and then install that software.

Something I highly recommend is that once you have a basic boot working as you want to back it up with at least a clone of the rootfs (the o/s itself, but you need a huge amount of disk space; original flash also requires a huge amount of disk space).

You’ll generally start by:

  • Jetson in recovery mode, and the correct USB connected to host PC.
  • On host PC, at a terminal, “sdkmanager”.

There are some extended documents related to Jetson, but not specific to a given release. Those are here:
https://developer.nvidia.com/embedded/downloads

Thanks for the detailed information. I will work along the lines you have suggestion/guided. There is a lot to digest in your notes, IMHO.

I wish I could’ve been up and running with some of the multi-modal Docker containers, but for now I’ll try the proverbial one step at a time using your notes.

Regards.

Interim update:

Just FYI. Before posting originally, I did use sdkmanager and flashed direct to the SSD. Worked wonderfully well, IMHO. I used both the GUI and the command line to get a feel for both. No issues except that the original downloads took a little longer than expected.

I’m still digesting your note presently.

Regards.