Boot loader , Kernel for TX2

Hello,

Is it common to replace u-boot, kernel, file system for the TX2 ?
How can I do it ?

In case the new u-boot is not working, how can I recover the board ?

In case u-boot was erased, will the recover feature work ?

Thank you,
Zvika

The “Documentation” download for each release gives the official instructions on how to do this, but the instructions differ depending on release. If you don’t know which release you are using, then you can check via “head -n 1 /etc/nv_tegra_release”. You might have to log in and then hit this link again (redirect after login does not work correctly), but here is the L4T index for various versions:
https://developer.nvidia.com/linux-tegra
…then just search for the Documentation part. Within this (point your web browser at it) there are customization sections.

FYI, it isn’t hard to modify the root file system, but if you want to completely replace it, then you are in for a long learning curve.

If you worry about steps doing something wrong, and if you have a root file system you want to protect, then you can clone first. Any flash step you are not certain about might accidentally overwrite with a fresh rootfs missing any customization…but if a clone is in place, then even if this happens it will only overwrite itself with a copy of what is already there.

Note that “recovery” is a mode. The board becomes a custom USB device, but nothing changes on this unless the driver package runs to flash something (JetPack is a front end to the flash.sh program). Entering or exiting recovery mode does nothing at all to the Jetson no matter how many times you do this.

Hello,

Thank you very much for the detailed reply.

Just to make sure:
If case the flash was completely erased, can I use the recovery mode to flash the image again ?

Thank you,
Zvika

You would have needed to clone prior to a complete erase. Recovery mode puts the Jetson into a custom USB device mode which the flash software can then flash. During a complete flash part of what is restored is the root file system (rootfs). If you use the “-r” option to flash.sh, then the flash software will not generate a new flash image and will reuse whatever image is in place. If it happens that the image which is in place is your clone, then the flash will produce a bit-for-bit exact copy of what was already there.

Clones produce both a smaller sparse image (e.g., “backup.img”) and a raw uncompressed larger image (e.g., “backup.img.raw”). The sparse image is useless for any purpose other than flashing. I throw mine away, but a production environment would keep this as a faster means of flashing. The raw image can be loopback mounted, examined, updated, so on. Both flash without any change if put in place as file “bootloader/system.img”, but the raw image is slower to flash.

Note that recovery mode in itself does nothing. You can put any Jetson you want in and out of recovery mode as much as you want and nothing will be changed. Recovery mode only matters to the driver package running on the PC which knows how to interact with that custom USB device.