Use different rootfs for internal and external storage OTA

Hi,
I’m generating OTA payloads using these steps:

export BASE_BSP=~/nvidia/nvidia_sdk/JetPack_4.6_Linux_JETSON_XAVIER_NX_TARGETS/Linux_for_Tegra
export TARGET_BSP=~/nvidia/nvidia_sdk/JetPack_5.1.3_Linux_JETSON_XAVIER_NX_TARGETS/Linux_for_Tegra
sudo ./tools/ota_tools/version_upgrade/build_base_recovery_image.sh --external-device nvme0n1 -S 458GiB jetson-xavier-nx-devkit-emmc R32-6 ${BASE_BSP} ${BASE_BSP}/rootfs ${TARGET_BSP}
sudo -E ./tools/ota_tools/version_upgrade/l4t_generate_ota_package.sh --external-device nvme0n1 -T 976773168  -S 458GiB jetson-xavier-nx-devkit-emmc R32-6

The setup uses an NVME and a Xavier NX with emmc. As itself it works great, but we want to add some large files to the rootfs, like containers and so on, so its an out of the box and ready to use image. For massflash I just replace the external/system.img with the one from a golden sample. But for the ota payload I cannot do that, the update fails. I also tried to decompress the system.img on the reference rootfs, on Linux_for_Tegra/rootfs, but when I run the l4t_generate_ota_package, it errors out since it uses the same rootfs to generate the image for emmc, and its bigger than 16GB.

The questions are:

  • Is there a way to specify a separate rootfs to be used on the internal and external storage?
  • Is there a similar trick as on the massflash that I can replace the external/system.img?

Regards,
Andres
Embedded SW Engineer at RidgeRun
Contact us: support@ridgerun.com
Developers wiki: https://developer.ridgerun.com
Website: www.ridgerun.com

Hi andres.artavia,

Are you trying to perform OTA update for internal eMMC or external NVMe drive?

I would suggest you perform image-based OTA from R32.6 to R35.5 first.
and use the golden image to update the external NVMe afterwards.

Yes, please refer to 2. Using golden image in OTA update. in <Linux_for_Tegra>/tools/ota_tools/version_upgrade/Image_based_OTA_Examples.txt.

Yeah, we could add all the stuff afterwards but it will be ideal to have it all done by the same update step with minimal down time.

Are you trying to perform OTA update for internal eMMC or external NVMe drive?

Since we are planning on updating devices that are running JP4.6, we need to update both.

Yes, please refer to 2. Using golden image in OTA update. in
<Linux_for_Tegra>/tools/ota_tools/version_upgrade/Image_based_OTA_Examples.txt .

I’ll try that, seems like that is what we need, thanks.

Regards,
Andres

okay, please let me know if you have any issue with that approach.

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