ROOTFS OTA update failed to boot

Hello Team,

I have a Jetson Orin NX with Jetpack 6.2.
Its Rootfs A/B and Disk encryption enabled.

Below are the flashing commands that I used.

sudo ROOTFS_AB=1 ./tools/kernel_flash/l4t_initrd_flash.sh --showlogs -p "-c bootloader/generic/cfg/flash_t234_qspi.xml" --no-flash --network usb0 p3509-a02-p3767-0000 internal

sudo ROOTFS_AB=1 ROOTFS_ENC=1 ./tools/kernel_flash/l4t_initrd_flash.sh --showlogs --no-flash --external-device nvme0n1p1 -i ./sym2_t234.key  -c ./tools/kernel_flash/flash_l4t_t234_nvme_rootfs_ab_enc.xml --external-only --append --network usb0 p3509-a02-p3767-0000 external

sudo ./tools/kernel_flash/l4t_initrd_flash.sh --flash-only

As I wanted to update only the rootfs through OTA update, I generated an ota payload with -r . Command is given below,

sudo -E ROOTFS_ENC=1 ROOTFS_AB=1 ./tools/ota_tools/version_upgrade/l4t_generate_ota_package.sh -r -i ./sym2_t234.key --external-device nvme0n1 p3509-a02-p3767-0000 R36-4

and ota update triggered by,

cd $WORKDIR/Linux_for_Tegra/tools/ota_tools/version_upgrade

sudo ./nv_ota_start.sh /ota/ota_payload_package.tar.gz

The ota process ran successfully without any error. Only thing I noticed during update process is-

crypt_root UUID=9d35ab3d-acbd-4e23-8b63-2b18521a437c false
crypt_root_other UUID=a0da2b78-4893-421c-a027-c52c8cf85ba6 false
crypt_UDA UUID=e9f4a013-0447-4b5a-80b7-8580c941a2ac true

However, when I reboot the device to boot from ROOT_B, it failed to boot, showing error related to UUID mount failed.
here is the image of the error during boot.

Kindly, help me with the correct process if I am following wrong approach.

Thanks.

hello tanzelur,

you may use l4t_generate_ota_package.sh script to include -f and -o options to update rootfs partition.
please check readme file, Image_based_OTA_Examples.txt for the steps for using this golden image in an image-based OTA.
for example, Case 15: rootfs A/B enabled, disk encryption enabled

Hello JerryChang,

Thanks for your reply.
I am trying to follow case-15 as you suggested, but I have trouble to go into bash shell (step-3) due to my ignorance.

I ran the command mentioned in step-2: sudo ./tools/kernel_flash/l4t_initrd_flash.sh --initrd p3509-a02-p3767-0000 nvme0n1p1 (because my device boots from nvme)’

Also tried mmcblk0p1 but result is same in both cases.

Step-2 ended up like this:

. . . . . 
/home/tanzelur/TbA_WS/JetsonLinux/JetsonMVP-OTA-test/Linux_for_Tegra
***************************************
*                                     *
*  Step 3: Start the flashing process *
*                                     *
***************************************
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for device to expose ssh ......Waiting for device to expose ssh ...Device has booted into initrd. You can ssh to the target by the command:
$ ssh root@fc00:1:1:0::2
Cleaning up...
Log is saved to Linux_for_Tegra/initrdlog/flash_3-6_0_20250624-113627.log 

flash_3-6_0_20250624-115601.log (6.2 KB)

so, the question is, will it drop me to a bash shell automatically? Or, I have to initiate any other process.
My device is connected to a display, but I don’t see any bash shell there, nor any other activity.


I also tried to ssh root@fc00:1:1:0::2 from host machine.
however, it ended up asking password for root. I entered my default user password, but obviously that won’t work.

~/Linux_for_Tegra$ ssh root@fc00:1:1:0::2
The authenticity of host 'fc00:1:1::2 (fc00:1:1::2)' can't be established.
ED25519 key fingerprint is SHA256:r3Qq9AFjemjnyctWwON3OpEc3lOdQtgy500dpMvaTw8.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'fc00:1:1::2' (ED25519) to the list of known hosts.
root@fc00:1:1::2's password: 
Permission denied, please try again.

What to do now? Please help me to understand the process.

thanks :)

Hi,

Additionally, I have checked ECID by putting my target board (p3509-a02-p3767-0000) into recovery more, however its not showing any value as intended.

tanzelur@DEVNB5330:~/TbA_WS/JetsonLinux/JetsonMVP-OTA-test/Linux_for_Tegra$ sudo ./flash.sh --no-flash --no-systemimg -Z p3509-a02-p3767-0000 internal
###############################################################################
# L4T BSP Information:
# R36 , REVISION: 4.3
# User release: 0.0
###############################################################################
ECID is 
Board ID() version() sku() revision()
Preset RAMCODE is 
Chip SKU(00:00:00:D3) ramcode() fuselevel(fuselevel_production) board_FAB()
emc_opt_disable_fuse:(0)
Error: Unrecognized module SKU 

why is it happening, is it really important to use during the process?

Thanks :)

hello tanzelur,

let me have confirmation before digging into this issue.

may I know what’s the Jetson platform you’re using,
for example, are you using Orin NX module with Xavier NX carrier board?

Hi JerryChang,
It’s a J401 carrier board from Seeed Studio for NVIDIA Jetson Orin NX/Nano modules. p3509-a02-p3767-0000 is the board configuration file they asked to use for flashing the Orin NX module.
Thanks :)

hello tanzelur,

it’ll be an issue with this 3rdparty board.
for instance, please check.. $OUT/Linux_for_Tegra/tools/ota_tools/version_upgrade/ota_board_specs.conf
re-cap as below..

# List the supported t23x devices
T23X_DEVICES=(
        'JETSON_AGX_ORIN_DEVKIT'
        'JETSON_AGX_ORIN_DEVKIT_INDUSTRIAL'
        'JETSON_ORIN_NANO_DEVKIT'

as you can see.. there’s no board configuration, p3509-a02-p3767-0000
please see-also Topic 332980, which gives an example for customize board to create OTA payloads.

Hi JerryChang,

Thank you for your quick response. I will review the topic you mentioned.

Just to clarify, I have already included my board specifications (p3509-a02-p3767-0000) in the scripts. Specifically, I’ve added them to both ota_board_specs.conf and l4t_generate_ota_package.sh. By doing this, the scripts are able to recognize my custom board, and I can successfully generate the OTA payload.

Also, I want to mention that I am generating the OTA payload package from a separate BSP+ota_tool folder, not from the original folder I used to flash my device.

However, I’m having trouble following case-15 with the golden image method. I’ve encountered issues with the bash shell and retrieving the ECID, as I shared with you earlier.

Any advice or suggestions would be really helpful. Thanks in advance!

hello tanzelur,

this is reported while processing the board info.
please dig into board configuration file, p3509-a02-p3767-0000.conf, it should have update_flash_args_common(){..} to handle the board SKUs.

besides..
you may also check EEPROM Modifications to revise cvb_eeprom_read_size from MB2 BCT since it’s a customized carrier board.

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