Flashing with rootfs partitions

There’s a bunch of context I could provide, but it’s not all that relevant. I want to flash RootFS with A/B partition on my NVMEs and a separate partition for some decently large sized personal data that needs to be permanent.

I looked through the documentation, and discussions, and couldn’t find a meaningful answer. I did write a flash.xml, that looks like this

   <partition name="APP" id="1" 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 </unique_guid>
            <filename> APPFILE </filename>
            <description> **Required.** Contains the rootfs. This partition must be assigned
              the "1" for id as it is physically put to the end of the device, so that it
              can be accessed as the fixed known special device `/dev/nvme0n1p1`. </description>
        </partition>
        <partition name="APP_b" id="2" 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 assigned
              the "2" for id as it is physically put to the end of the device, so that it
              can be accessed as the fixed known special device `/dev/nvme0n1p2`. </description>
        </partition>

But I’m not sure how do I force it to use NVME and the other partition on the MMC. Any help is appreciated!

Hi sabhinav,

Are you using the devkit or custom board for AGX Orin?
What’s your Jetpack version in use?

We don’t suggest you creating the custom partition layout file if you are not familiar with each partitions and knowing how it works since it may affect not just flash but also OTA update.

For your case, you can just specify ROOTFS_AB=1 in your init flash command for external NVMe and store your personal data in UDA partition.

Hi Kevin, thanks! It is devkit with Jetpack 5.1 (dpkg-query --showformat='${Version}' --show nvidia-l4t-core returns 35.5.0). Another question: Where is the APPSIZE defined while flashing? I’m also getting an error as such when flashing when running: sudo ROOTFS_AB=1 ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1 -S 8GiB -c ./tools/kernel_flash/flash_l4t_nvme_rootfs_ab.xml jetson-agx-orin-devkit external

ECID is 
Board ID() version() sku() revision()
Chip SKU(00:00:00:D0) ramcode() fuselevel(fuselevel_production) board_FAB()
Error: Unrecognized module SKU 
Cleaning up...

@KevinFFF Would it make more sense to do an update in the file partitions via a simple OTA? In that case, where would I define the partitions? I’m just a little confused.

JP5.1 includes L4T R35.2.1.
For the devkit, we would suggest you simply updating it to the latest R35.5.0.

It is not the expected result to flash the devkit. It seems it can not get board information from EEPROM.
Do you modify the content in EEPROM before?

You can check ROOTFSSIZE in board config, but it seems you have specified 8GiB for rootfs.

Sorry that I’m not clear about your requirement here.
Could you elaborate on this?

Not that I remember. How can I check?

./flash.sh has a # ROOTFSSIZE ------------- Linux RootFS size (internal emmc/nand only). - but I need it for external, AFAIK. -S flag also is for internal. Could you point me to some docs of internal v external definitions?

If I want to resize the partitions, can I do it via OTAs or do I need to reflash?

Thanks!

Seems like this issue was caused by a faulty cable.

-S is also work for external device in initrd flash script.

Okay, do you manage to work with flashing the board?