ROOTFS_AB=1 does not create APP_B partition

Hi, I have a Orin Nano devkit and I’m trying to install a redundant rootfs.
Everything seems to work fine, except it doesn’t create a APP_B partition and the APP partition grows to the entirety of the nvme SSD.

I’m using this tutorial to do it :
Root File System — Jetson Linux Developer Guide documentation (nvidia.com)

Since I don’t have an SD card slot, I’m installing everything on an NVME SSD.

I have JetPack 5.1.2 with jetson 5.4.1.

I’m using this command to flash :

sudo ROOTFS_AB=1 ROOTFS_RETRY_COUNT_MAX=3 ./flash.sh --external-device nvme0n1p1 jetson-orin-nano-devkit-nvme internal

Can someone help me and show me what I’m doing wrong?

this is the output of gdisk -l /dev/nvme0n1

Number  Start (sector)    End (sector)  Size       Code  Name
   1         3050048       250069567   117.8 GiB   0700  APP
   2              40          262183   128.0 MiB   0700  A_kernel
   3          262184          263719   768.0 KiB   0700  A_kernel-dtb
   4          263720          328487   31.6 MiB    0700  A_reserved_on_user
   5          328488          590631   128.0 MiB   0700  B_kernel
   6          590632          592167   768.0 KiB   0700  B_kernel-dtb
   7          592168          656935   31.6 MiB    0700  B_reserved_on_user
   8          656936          820775   80.0 MiB    0700  recovery
   9          820776          821799   512.0 KiB   0700  recovery-dtb
  10          821800          952871   64.0 MiB    EF00  esp
  11          952872         1116711   80.0 MiB    0700  recovery_alt
  12         1116712         1117735   512.0 KiB   0700  recovery-dtb_alt
  13         1117736         1248807   64.0 MiB    0700  esp_alt
  14         1248832         2068031   400.0 MiB   0700  UDA
  15         2068032         3050047   479.5 MiB   0700  reserved

hello StackingOverflows,

could you please check you’re using this emmc configuration file, flash_t234_qspi_sd_rootfs_ab.xml?

If I use this command :

sudo ROOTFS_AB=1 ROOTFS_RETRY_COUNT_MAX=3 ./flash.sh -c ./bootloader/t186ref/cfg/flash_t234_qspi_sd_rootfs_ab.xml --external-device nvme0n1p1 jetson-orin-nano-devkit-nvme internal

The ./flash script get stuck at

Retrieving storage infomation
tegrarcm_v2 --chip 0x23 0 --oem platformdetails storage storage_info.bin

I also tried this config file as suggested by the developper’s guide
flash_l4t_nvme_rootfs_ab.xml

And I also get a crash :

[   3.4917 ] tegrahost_v2 --chip 0x23 0 --partitionlayout flash.xml.bin --updatesig images_list_signed.xml
Traceback (most recent call last):
  File "./tegraflash.py", line 1383, in <module>
    tegraflash_run_commands()
  File "./tegraflash.py", line 1217, in tegraflash_run_commands
    interpreter.onecmd(command)
  File "/usr/lib/python3.8/cmd.py", line 217, in onecmd
    return func(arg)
  File "./tegraflash.py", line 278, in do_flash
    self.chip_inst.tegraflash_flash(exports)
  File "/home/test/nvidia/nvidia_sdk/JetPack_5.1.2_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/bootloader/tegraflash_impl_t234.py", line 909, in tegraflash_flash
    self.tegraflash_send_to_bootrom()
  File "/home/test/nvidia/nvidia_sdk/JetPack_5.1.2_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/bootloader/tegraflash_impl_t234.py", line 947, in tegraflash_send_to_bootrom
    info_print(mb1_bin + " filename is from images_list")
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
Failed flashing t186ref.

hello StackingOverflows,

please give it a try for using l4t_initrd_flash.sh.
you may see-also README_initrd_flash.txt for workflow 5 as sample pipeline.

Hi,

I’ve solved my problem by changing the configuration file. There is no configuration file that exists for AB partition on the orin nano devkit with nvme SSD. the nvme SSD is the only medium I can install images on because there’s no SD card slot on the devkit.

I changed flash_t234_qspi_nvme.xml which is the configuration file used for the devkit-nvme.
I added this before the secondary_gpt partition tag and everything works as intended. OTA update AB works.

<partition name="APP_b" id="17" type="data">
            <allocation_policy> sequential </allocation_policy>
            <filesystem_type> basic </filesystem_type>
            <size> APPSIZE </size>
            <file_system_attribute> 0 </file_system_attribute>
            <allocation_attribute> 0x8 </allocation_attribute>
            <align_boundary> 16384 </align_boundary>
            <percent_reserved> 0 </percent_reserved>
            <unique_guid> APPUUID_b </unique_guid>
            <filename> APPFILE_b </filename>
            <description> **Required.** Contains the rootfs. This partition must be defined
              after `primary_GPT` so that it can be accessed as the fixed known special device
              `/dev/mmcblk1p2`. </description>
        </partition>

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