After OTA update nvbootctrl shows Rootfs A/B is not enabled

On a jetson-agx-xavier OTA update of slot-A was done from slot-B. After reboot to slot-A, nvbootctrl dump-slots-info shows “Rootfs A/B is not enabled” as shown below. Can someone help how to how to fix this warning message?

$sudo nvbootctrl -t rootfs dump-slots-info
RootFS A/B is not enabled.

$sudo nvbootctrl -t bootloader dump-slots-info
Current version: 35.3.1
Capsule update status: 1
Current bootloader slot: A
Active bootloader slot: A
num_slots: 2
slot: 0,             status: normal
slot: 1,             status: normal

OTA update of a board with 35.3.1 was done using payload of same version 35.3.1 itself. OTA-Payload creation and update steps were done as specified in the jetson linux documentation.

Hi shas1881,

Are you using the devkit or custom board for AGX Xavier?

Are you trying to use R35.3.1 OTA payload to update a board with R35.3.1?

Have you enabled rootfs a/b redundancy on your board before performing OTA update?

Hi KevinFFF,

  1. Are you using the devkit or custom board for AGX Xavier?
    Its custom board for AGX Xavier. But the BoardID and Board configuration file name used by flash.sh script is kept same as default(jetson-agx-xavier-devkit).

  2. Are you trying to use R35.3.1 OTA payload to update a board with R35.3.1?
    Yes. To revert any changes in software done in Slot-A back to default factory OS.

  3. Have you enabled rootfs a/b redundancy on your board before performing OTA update?
    Yes. Before update, I flashed the board using flash.sh with ROOTFS_AB=1. After flash, nvbootctrl shows two slots. Using nvbootctrl set-active-boot-slot, switched from slot-A to Slot-B. From Slot-B OTA update of Slot-A was done. Reboot will boot from slot-A again. Thats when I saw this error message by nvbootctrl.

okay, thanks for your information.

It seems you want to perform image-based OTA update for slot-A so that you switched to slot-B first.
After updating the slot-A, the nvbootctrl reports the rootfs a/b is disabled.
Is my understanding correct?

Could you share the commands how you generate the image-based OTA package and also the logs?

Thanks for your reply.

Yes. Thats correct.

OTA generation steps:

export TARGET_BSP=R35.3.1/Linux_for_Tegra/
export BASE_BSP=R35.3.1/Linux_for_Tegra/
cd ${TARGET_BSP}/../
cd ${TARGET_BSP}
sudo tar xpf ota_tools_R35.3.1_aarch64.tbz2
sudo -E ./tools/ota_tools/version_upgrade/l4t_generate_ota_package.sh jetson-agx-xavier-devkit R35-3 

Here is the ota generation logs,
create_ota.log (473.7 KB)

copying cfgfile(/home/nvidia/jetson/Linux_for_Tegra/bootloader/t186ref/cfg/flash_t194_sdmmc.xml) to flash.xml... done.

It seems you are using the partition layout w/o roofts redundancy enabled.

Please add ROOTFS_AB=1 in this command to generate OTA package.

$ sudo -E ROOTFS_AB=1 ./tools/ota_tools/version_upgrade/l4t_generate_ota_package.sh jetson-agx-xavier-devkit R35-3

This solved the issue. Thank you very much.

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