This implies the flash content was not valid (the flash operation could succeed, but the content being flashed would not be complete):
FYI, L4T is what JetPack/SDK Manager installs to the Jetson. JetPack/SDKM never installs to the Jetson, and is simply a front end for other flash software. Installing L4T will wipe the system and install defaults.
When the Jetson is in recovery mode it becomes a special USB device understood only by the “driver package” (which is something SDKM downloads for you…the “driver package” creates the “Linux_for_Tegra/” subdirectory content).
In a normal flash the sample rootfs plus NVIDIA-specific drivers are added to a purely Ubuntu arm64 system in the “Linux_for_Tegra/rootfs/” location. The missing “/etc/nv_tegra_release” says the “rootfs/” content was not valid prior to beginning the flash. A normal flash adds a few boot config edits to the “rootfs/” content, and then copies that to the Jetson.
In a clone there is a reverse, whereby the rootfs content is copied from the Jetson to the host PC. Two files are produced: A “raw” bit-for-bit exact copy of the root partition, and a “sparse” (smaller) version. Typically named something like “backup.img” (sparse) and “backup.img.raw” (raw). I throw away the sparse image and keep only the larger raw image. Raw images can be edited and used and examined from the host PC, but sparse files, despite being smaller, have no such ability. Either version can be used to flash with as a substitute to the “Linux_for_Tegra/rootfs/” content to restore that rootfs.
That flash performs many more partition installs than just the rootfs. Those other partitions are used for boot. This could be called the board support package (“BSP”) content. Much of this is related to device trees, memory setup, boot loaders, so on. The default is for the development kit carrier board. As soon as you use Orbitty you need to overlay that content to the host PC somewhere within the “Linux_for_Tegra/” directories prior to flash, or the Jetson will have an invalid idea of how the carrier board is wired. The Orbitty people will have that content and instructions.
The clone is good to have because then you can afford to make mistakes until you get the flash and the BSP edits in place and not loose your original filesystem content.
The more concerning question is why “
/etc/nv_tegra_release” was missing (or on the host PC, “
Linux_for_Tegra/rootfs/etc/nv_tegra_release”). Two things come to mind…
First, if your host PC ran out of disk space, then the image would have truncated at some random place. An enormous amount of disk space is required to create and flash rootfs images. Each rootfs image is going to consume about 30GB of disk space. Your clone raw file will require about 30GB of space. If that clone is from a nearly empty filesystem, then the sparse file will require nearly 2GB of space…if that clone is from a nearly full filesystem, then the sparse file will require nearly 30GB of space. On your host PC, if you run “
df -H -T /where/ever/you/flash/from/Linux_for_Tegra”, do you have plenty of spare space?
The other possibility is that if you flashed manually, or if for some reason SDKM did not download and install rootfs content, then the “
Linux_for_Tegra/rootfs/” would itself have never been installed. This is ok if you are using a clone to restore from, but if your clone did not have “
/etc/nv_tegra_release”, then your clone is not valid. This is not relevant for creating a clone, but this is relevant for flashing.
NOTE: Any time you use flash.sh without the “-r”, the rootfs is generated from the default “Linux_for_Tegra/rootfs/” content, plus edits. Any time you restore from a clone you put your clone in the correct place, and then flash using “-r” to avoid having this overwritten by default content. More details on that are available, but let’s first find out why your original flash was missing part of the filesystem.