Some notes to start: JetPack is actually a front end to the flash software. The actual flash is from what is called the “driver package”, which JetPack installs for you. If you’ve flashed, then the content in the “Linux_for_Tegra/
” directory is the driver package. Within this is the “Linux_for_Tegra/rootfs/
” directory, and that is from the “sample rootfs” package (which JetPack also installs). The “rootfs/
” content is purely Ubuntu until the “apply_binaries.sh
” script is executed with sudo
, and this adds some drivers to the “rootfs/
”. This is what actually gets installed: An image designed from “rootfs/
”, and is then known as “Linux for Tegra” (“L4T”). You can find the installed L4T release version via:
head -n 1 /etc/nv_tegra_release
This URL lists all of the JetPack/SDKM releases, and on the right you will see the L4T release bound to that JetPack:
https://developer.nvidia.com/embedded/jetpack-archive
When you mention version 3.3.1 this corresponds to L4T R28.3.1. when you mention 3.3.3, this corresponds to L4T R28.4. When working with clones this becomes important because surrounding boot content must match by version.
Those earlier releases under JetPack3.x were a bit more lenient on boot environment (partitions were not enforcing signing), but when you flash using a cloned image you must be sure that all of the surrounding boot content (the non-rootfs partitions) are from the matching JetPack release. If the flash which created your working content was created originally with JetPack3.3.1, then you must use the same release (L4T of the software flashing your clone onto the new module must be R28.3.1). If the clone came from R28.3.1, but is being flashed with R28.4, then there is a very strong chance boot will fail.
Which release is your clone from? You could either run “head -n 1 /etc/nv_tegra_release
” on the original module to find this, or you could loopback mount your clone on the host PC and find out there.
Once you’ve verified versions are correct, then you could copy your clone into “Linux_for_Tegra/bootloader/system.img
” (be careful with your original copy) and then flash on command line to reduce complications. With the TX2 in recovery mode and in the “Linux_for_Tegra/
” directory (this adds logging):
sudo ./flash.sh -r jetson-tx2 mmcblk0p1 2>&1 | tee log_flash.txt
If there is still a failure, then you could attach log_flash.txt
to the forum.
Beware that all of those non-rootfs partitions (other than the bootloader itself) are mostly equivalent to a PC’s CMOS BIOS. There is no BIOS in embedded systems, and if you mix those other partitions incorrectly, then boot will fail.