Image-Based OTA fails on Xavier NX when system is installed on sata by rootOnNVMe

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/ --external-device sda -c ./tools/kernel_flash/flash_l4t_external.xml --showlogs jetson-xavier-nx-devkit-emmc sda1

I have tried OTA use
sudo ./ /dev/mmcblk0 /ota_payload_package.tar.gz
sudo ./ /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?


The first thing to clarify is… Xavier does not have a SATA interface at all… So I guess you are using some other interfaces instead of SATA… right?

Hi Wayne,
I’m using a mSata SSD on Xavier NX with our custom carrier board.


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?

Hi Wayne,

It’s PCIe interface on Jetson side

Is there any error reported by

From device side, you may dump the log from UART serial console.

there’s no error in, log in:
ota_log.txt (9.8 KB)

and the UART log, failed in
[Thu Oct 06 09:55:47.944 2022] Running
[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)

Could you describe the whole steps you’ve done on your host machine?

  1. prepare the target version(R32-7-2) OTA package
  2. flash the base version(R32-6-1) by
    sudo ./
  3. boot from eMMC
  4. copy image to storage by root on NVMe, change “/dev/mmcblk0p1” to “/dev/sda1” in “/boot/extlinux/extlinux.conf”
  5. reboot (boot from storage)
  6. copy the “ota_payload_package.tar.gz” and “ota_tools_R32.7.2_aarch64.tbz2” to the storage
  7. run ota
 tar -xvpjf ota_tools_R32.7.2_aarch64.tbz2
 cd Linux_for_Tegra/tools/ota_tools_version_upgrade
 sudo ./ /dev/sda ..../ota_payload_package.tar.gz
  1. reboot

Please share detail of what you did in this step…

  1. prepare the target version(R32-7-2) OTA package

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 ./

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 ./

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/ 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/ jetson-xavier-nx-devkit-emmc R32-6

Did you try the step 13 mentioned in the document?

13.Generate the OTA update payload package. Enter these commands:

yes, I did the

cd target/Linux_for_Tegra/
sudo ./tools/ota_tools/version_upgrade/ jetson-xavier-nx-devkit-emmc R32-6

Hi OOOoooo,

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.

ok, Thanks for your help!

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