L4T flash method for the Jetson Nano Original Edition?

Greetings and thank you for all your help!

Background:
I am trying to flash a first-generation Nano dev kit using the SDK to upgrade it to JetPack 4.6.4.

  • To see if I can upgrade it without completely wiping out my original, configured image since the on-line doc’s say that this update can ONLY be done via the SDK.
  • To experiment with flashing the Nano just for the Grins and Giggles and to gain experience doing this.  I micht actually NEED to do this in the future, and I’d like to get this debugged before I bury the dev kit in a robot.

Issue:
While attempting to flash my Nano, (with an external SSD attached via USB), the flashing process stalls at 99% complete.

Subsequent research disclosed that you CANNOT flash an external drive via the SDK.  The documentation specifies that you must use the l4t_initrd_flash.sh tool to do that.

Likewise it disclosed that the command for flashing using external USB storage looks something like this:

Problems:

  1. The path ./tools/kernel_flash/ does not exist on my installation.
  2. The script l4t_initrd_flash.sh does not exist anywhere on my system, even with a search starting at the beginning of the root filesystem.
  3. The existing documentation is all for the later model Orion boards and there appears to be no/little information on the Nano boards regarding this.
  4. Flashing to a SD card and then recopying it to my SSD would be a royal pain in the tush, and I’d rather not do that.

Questions:

  1. Is JetPack 4.6.4 even a valid update for the Jetson Nano?
  2. If it is, is there an equivalent command-line tool to flash the Nano to external media.  Note that the existing documentation states that you CANNOT flash external media with flash.sh.
  3. If it exists, what is the entire command that I should use?
  4. Absent that, is there any other way I can flash external media and/or update to JetPack 4.6.4?
  5. After looking at the flash.sh script, it appears to support external flashing, but it requires a board ID.  I also remember seeing an article somewhere that listed all the board IDs, including the Nano.  Do you remember where it is?
  6. The flash-sh script can take an extremely large number of parameters.  As requested in #2, can you specify, or direct me to, the correct command line to do this using /dev/sda and/or /dev/sda1 as the target device?

Thanks for your help, it is appreciated!

l4t_initrd_flash.sh normally exists under this subdirectory of Linux_for_Tegra/:
tools/kernel_flash/l4t_initrd_flash.sh

I don’t use that myself simply because I don’t have external media to flash (I have no experience using that script), but keep in mind you still use the above tools because it is the initial ramdisk (initrd) which acts as the adapter between media which the bootloader itself may not otherwise understand. For example, if the bootloader does not understand the filesystem type, but the kernel itself is loaded, and if the kernel needs an external module on that not-understood media to understand the media…a “chicken and the egg” dilemma…then the initrd can contain the module instead.

More specific to this case is that Jetsons don’t have a BIOS that probes for all of the different boot sources, and so it must be told to point at a source; if the boot chain does not know about the external media (e.g., no driver at that point during boot), then instead of programming a new BIOS (adding a driver in pre-Linux content) one can boot normally and use the initrd to allow the Linux kernel itself to find that content. The initrd is always understood by all BIOS or boot chain content, as well as the kernel…the BIOS and boot chains are really micro operating systems, and the initrd is a common program all of them understand. The initrd will work its magic like a common language among all operating systems. All it needs is to load the kernel, then the kernel to access those drivers over initrd filesystem…that script loads the kernel normally, and then loads drivers for the external media into the initrd, the kernel uses that as the filesystem, and as soon as it sees that external media it will pivot the filesystem root to the external media.

L4T R32.x is the recommended and last release series for a regular Nano (Xavier and Orin go further).

Sorry, I have not used external media flash, so I can’t direct you to specific details.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.