Hi Devs,
we are currently trying to do Image based OTA with ROOTFS AB for Jetpack 5.1.4 which is booted with 2TB SSD. Our customized rootfs is occupying 12GB whereas the ROOTFSSIZE is 14GB and taking 7.5 GB for Each partition in AB in file p3668.conf.common +108.
which is ultimately causing
tar: usr/lib/aarch64-linux-gnu/libnvinfer_static.a: Wrote only 1024 of 10240 bytes
tar: usr/lib/aarch64-linux-gnu/libvulkan.so.1.2.131: Cannot write: No space left on device
tar: usr/lib/aarch64-linux-gnu/libopencv_text.so.4.2.0: Cannot write: No space left on device
tar: usr/lib/aarch64-linux-gnu/libgcab-1.0.so.0.1.0: Cannot write: No space left on device
Partition mount
/dev/loop26 ext4 6.8G 495M 6.0G 8% ../../../Linux_for_Tegra/bootloader/mnt
we also tried to increase the ROOTFSSIZE to 30GB in p3668.conf.common +108 file.
which is causing
[ 5.7857 ] Start sector for secure-os_b, expected >= 58918912, actual 0
Error: Return value 4
Command tegrabct_v2 --chip 0x19 --mb1bct mb1_cold_boot_bct_MB1.bct --updatefwinfo flash.xml.bin
signed_dir=/wrking_dir/375u_stcm/sdk/Linux_for_Tegra/ota_base_dir_tmp/internal_device/images-R35-ToT/3668-100--
grep: /wrking_dir/375u_stcm/sdk/Linux_for_Tegra/bootloader/signed/flash.idx: No such file or directory
grep: /wrking_dir/375u_stcm/sdk/Linux_for_Tegra/bootloader/signed/flash.idx: No such file or directory
Please help me to generate OTA with ROOFS AB for SSD which can have a rootfs size more than 12GB
command used to flash the device via usb in recovery mode
sudo ROOTFS_RETRY_COUNT_MAX=1 ROOTFS_AB=1 ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -c tools/kernel_flash/flash_l4t_nvme_rootfs_ab.xml -p "-c bootloader/t186ref/cfg/flash_l4t_t194_spi_emmc_p3668_rootfs_ab.xml" -S 800GiB --flash-only --showlogs --network usb0 jetson-xavier-nx-devkit-emmc nvme0n1p1
command used to generate OTA
sudo -E BASE_BSP=./Linux_for_Tegra TARGET_BSP=./Linux_for_Tegra ROOTFS_AB=1 ./tools/ota_tools/version_upgrade/l4t_generate_ota_package.sh --external-device nvme0n1 -S 800GiB jetson-xavier-nx-devkit-emmc R35-6
Please let me know if any additional details required
Thanks,
Jai
1 Like
hello jaivishnu.m,
just an FYI.
when -S
option is used. please update allocation attribute as 0x8
of the APP partition in the corresponding layout file.
Hi Jerry,
Which layout file are you mentioning. is it “flash_l4t_t194_nvme_rootfs_ab.xml”? After updating the allocation attribute ,it is still showing same as previous error.
hello sathish.kumar1,
did you meant the… No space left on device
error logs when running OTA?
may I know what’s your total disk size, and what’s the remaining size for OTA process.
you should check file system with $ df -h
for confirmation.
Hi Jerry,
I was saying about this error log
grep:/wrking_dir/375u_stcm/sdk/Linux_for_Tegra/bootloader/signed/flash.idx: No such file or directory .
For the No space left on device
error. It was occured before changing the ROOTFSSIZE in p3668.conf.common +108 file. My total disk size is 1 TB and the rootfs size is 12GB But during the build, the partition mount /dev/loopX is happening less than 7 GB. So it is causing
Error: Return Value 4
hello sathish.kumar1,
it looks different issue with this topic,
please file another new discussion thread, we’ll arrange resources for following-up.
Hi JerryChang,
No, it is the same issue. He is handling it now, previously I am woking on it. The issue persists and the solution didn’t take effect.
Thanks,
Jai
hello sathish.kumar1,
I see, may I know what’s your base/target L4T release for OTA update.
please also check below Updating Jetson Linux with Image-Based Over-the-Air Update,
and also, Introduction to Jetson OTA update sides for reference.
As it is previously mentioned we are using Jetpack 5.1.4 comes with R35.6 as base and target also same as R35.6.
hello sathish.kumar1,
I would like to double check your steps to generate OTA packages on Host PC.
besides, did you visit L4T page, NVIDIA Jetson Linux 35.6.0 to download the [OTA tools] package?
I have followed the same steps as it is mentioned in Software Packages and the Update Mechanism — NVIDIA Jetson Linux Developer Guide 1 documentation
and I have also downloaded the ota tools. As it is previoulsy mentioned, I have used the below command.
sudo -E BASE_BSP=./Linux_for_Tegra TARGET_BSP=./Linux_for_Tegra ROOTFS_AB=1 ./tools/ota_tools/version_upgrade/l4t_generate_ota_package.sh --external-device nvme0n1 -S 800GiB jetson-xavier-nx-devkit-emmc R35-6
Yes indeed we are aware of the steps, I would like to re explain the issue once. It would help both of us to be in sync.
We wanted to generate ROOTFS for 800GB SSD with ROOTFS_AB enabled in R35.6.
hello sathish.kumar1,
please try adding EXT_NUM_SECTORS
into command-line to update num_sectors in xml flash configuration file.
note, the EXT_NUM_SECTORS
size need smaller than your NVMe actual size and bigger than APP size.
for instance,
If your NVMe SSD is 128GiB
Set EXT_NUM_SECTORS=240000000 (about 114GiB) → smaller than NVMe actual size.
Set -S = 100GiB → bigger than APP size.
furthermore,
here’re our test steps to do OTA update from r35.6 to r35.6 with 2TB NVMe SSD on Xavier-NX-eMMC.
Flash commands:
$ sudo ROOTFS_AB=1 EXT_NUM_SECTORS=3774873600 ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1 -S 800GiB -c ./tools/kernel_flash/flash_l4t_nvme_rootfs_ab.xml jetson-xavier-nx-devkit-emmc external
and, Steps to Generate OTA payload package.
$ export BASE_BSP=/home/carol/JetPack-5.1.4/Linux_for_Tegra
$ export TARGET_BSP=/home/carol/JetPack-5.1.4/Linux_for_Tegra
$ sudo -E ROOTFS_AB=1 ./tools/ota_tools/version_upgrade/build_base_recovery_image.sh jetson-xavier-nx-devkit-emmc R35-6 ${BASE_BSP} ${BASE_BSP}/rootfs ${TARGET_BSP}
$ sudo -E EXT_NUM_SECTORS=3774873600 ROOTFS_AB=1 ./tools/ota_tools/version_upgrade/l4t_generate_ota_package.sh --external-device nvme0n1 -S 800GiB jetson-xavier-nx-devkit-emmc R35-6
hello sathish.kumar1,
you’ve to generate OTA payload package on a host PC.
Hi JerryChang,
I have followed the steps in my host PC.
hello sathish.kumar1,
I’m wondering why it’s reported, please check $ df -h
of your host setup.
Hi Jerry,
I have attached the df -h command output. This command was executed after it got No space left on device
error during the ota build.
df -h.txt (771 Bytes)
is it /home/**/**/**/Linux_for_Tegra/bootloader/mnt
your Jetpack installation path?
Yes, It is the installation path of my jetpack (note :- ** is used for confidentiality purpose)
hello sathish.kumar1,
apparently, there’s no space left for installation.
please try allocate more space, or, please try with other partition.
Hi Jerry,
As per my understanding, This space allocation is happening because of p3668.conf.common +108. Please correct me if i am wrong, Is there any way i can allocate more space during build, Because this /dev/loopX partition mount was fetched from the P3668.conf.common file. (Note:- With ROOTFSAB enabled, the size of rootfs got divided into half.)