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