I have an Orin AGX booting from its eMMC. I would like to move the rootfs on the SSD but keep all the other partitions on the eMMC (the A/B_kernel, A/B_kernel_dtb, esp, etc.).
Is this somehow already possible with L4T 36.4? If so, could you point me to some doc/scripts please?
I have found this, but am not 100% sure this fits our use case, nor if it does how it works.
From the doc it seems a minimal rootfs is flashed, but what is this rootfs and where can I find it?
Is the expectation that the NVMe drive has been pre-flashed with the rootfs separately or would we use another script to just flash it via the Orin?
If not already possible, any pointers to get us started in the right direction? Is there any potential issue you are aware of with this approach? In case this is relevant, we need to support OTA updates capsule updates too.
I am using the devkit and have managed to successfully boot with the rootfs on the SSD using the script above.
I had already prepared the partition on the SSD using our own scripts.
I wonder if you could shine some light on how the boot process works in this use case? I can see that during the flashing partition ‘APP’ is flashed with ‘system.img’, which is quite a small image (~60MB). ( Writing partition APP with system.img [ 63145884 bytes ] ).
However, I cannot mount this partition once booted to look at it, so am wondering what it is, what format it is in, where does it come from and how/when is it built?
How to build or interrogate Root File System
This document has this note: “Completing an OTA update with a Debian package is not supported for systems that use rootfs redundancy.”
What I’m trying to understand is how it has been implemented. It seems that the APP partition is written with image ‘system.img’. I’d like to know what is in this file.
Another question that just came-up is whether the command used (sudo ./flash.sh jetson-agx-orin-devkit nvme0n1p1) allows for the A/B redundant mechanism to be used, and if not, if it can be made to use it?
generating system.img for booting...
Making system.img...
populating rootfs from /tmp/tmp.RY7BDgMU4d ... populating /boot/extlinux/extlinux.conf ... done.
Sync'ing system.img ... done.
Converting RAW image to Sparse image... done.
system.img built successfully.
Please refer to above messages showing in your log that the system image is generated from <Linux_for_Tegra>/rootfs during flash.
Please add “ROOTFS_AB=1” in the flash command to enable redundant rootfs.