I have a xavier nx and an external storage SATA SSD on it, I want to upgrade from R32.6.1 to R32.7.2 by the OTA, but these two versions were made in a different way.
base version(R32.6.1) : flash to eMMC and use “rootOnNVMe” to copy image to SATA, then change “/dev/mmcblk0p1” to “/dev/sda1” in “/boot/extlinux/extlinux.conf”
target version(R32.7.2) : use initrd to flash both eMMC and SATA sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device sda -c ./tools/kernel_flash/flash_l4t_external.xml --showlogs jetson-xavier-nx-devkit-emmc sda1
I have tried OTA use sudo ./nv_ota_start.sh /dev/mmcblk0 /ota_payload_package.tar.gz
or sudo ./nv_ota_start.sh /dev/sda /ota_payload_package.tar.gz
but all of them failed, after reboot, I get the blinking cursor
is there any way to do this OTA?
This does not matter how that SSD look like. The problem is which interface is that mSATA connected to on jetson.
For example, if you use a DVI to HDMI converter to connect a DVI monitor to jetson… then it is still a HDMI monitor to jetson…
Jetson side does not care about the DVI on the monitor…
Same manner here to your mSATA… Is it a PCIe or USB interface to jetson? or something else?
there’s no error in nv_ota_start.sh, log in: ota_log.txt (9.8 KB)
and the UART log, failed in
[Thu Oct 06 09:55:47.944 2022] Running nv_ota_update.sh
[Thu Oct 06 09:55:47.966 2022] ota_update_rootfs_in_recovery /dev/sda1 /mnt/ota_work
[Thu Oct 06 09:55:47.981 2022] Faied to get the name of rootfs partition /dev/sda1
[Thu Oct 06 09:55:47.987 2022] Failed to run “ota_update_rootfs_in_recovery /dev/sda1 /mnt/ota_work”
[Thu Oct 06 09:55:47.994 2022] Reached OTA max retries (0 times)
[Thu Oct 06 09:55:47.998 2022] ERROR: Failed to run command and keep in recovery mode to waiting for check ota_R32-6-1toR32-7-2.log (198.3 KB)
flash the base version(R32-6-1) by sudo ./nvmflash.sh
boot from eMMC
copy image to storage by root on NVMe, change “/dev/mmcblk0p1” to “/dev/sda1” in “/boot/extlinux/extlinux.conf”
reboot (boot from storage)
copy the “ota_payload_package.tar.gz” and “ota_tools_R32.7.2_aarch64.tbz2” to the storage
run ota
tar -xvpjf ota_tools_R32.7.2_aarch64.tbz2
cd Linux_for_Tegra/tools/ota_tools_version_upgrade
sudo ./nv_ota_start.sh /dev/sda ..../ota_payload_package.tar.gz
cd base/
sudo tar -xjpf Jetson_Linux_R32.6.1_aarch64.tbz2
cd Linux_for_Tegra/rootfs/
sudo tar -xjpf …/…/Tegra_Linux_Sample-Root-Filesystem_R32.6.1_aarch64.tbz2
cd …
sudo ./apply_binaries.sh
cd target/
sudo tar -xjpf Jetson_Linux_R32.7.2_aarch64.tbz2
cd Linux_for_Tegra/rootfs/
sudo tar -xjpf …/…/Tegra_Linux_Sample-Root-Filesystem_R32.7.2_aarch64.tbz2
cd …
sudo ./apply_binaries.sh
sudo tar xpf ota_tools_R32.7.2_aarch64.tbz2 -C target/Linux_for_Tegra/…/
cd target/Linux_for_Tegra/
sudo ./tools/ota_tools/version_upgrade/build_base_recovery_image.sh jetson-xavier-nx-devkit-emmc R32-6 base/Linux_for_Tegra/ base/Linux_for_Tegra/rootfs target/Linux_for_Tegra/
cd target/Linux_for_Tegra/
sudo ./tools/ota_tools/version_upgrade/l4t_generate_ota_package.sh jetson-xavier-nx-devkit-emmc R32-6
The Image-based OTA upgrade on NVMe is not supported yet, only support upgrade on internal storage (qspi+emmc or emmc only) with default partition layout.