Hi Nvidia:
We’re trying to flash customized rootfs to NVMe on Jetpack 6.0, AGX Orin.
The command we used to flash is:
# Extract customized rootfs.tar.zst to rootfs folder
$ sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -c tools/kernel_flash/flash_l4t_external.xml -p "--no-systemimg -c bootloader/generic/cfg/flash_t234_qspi.xml" --showlogs --network usb0 jetson-agx-orin-devkit external
This one works before. In such way, we are able to flash rootfs to different NVMe with different size, like 128G, 256G, etc.
However, now the customized rootfs seems to be too large for eMMC, leading to an error while generating system.img
.
Full logs after running flash cmd:
flashNvmeLog.log (134.3 KB)
At the end of the logs, the tar
command report errors while making system.img
:
Making system.img...
populating rootfs from /home/wulun/flashingTest/js1100_cstRootfs_v1/rootfs ... Failed. Your APPSIZE might be too small.
Error: Failed to generate images for external device
Cleaning up...
which is happened in flash.sh
line 590.
We checked both NVMe on Host PC and NVMe on AGX Orin, both of them have enough space and inode.
How can we avoid this error? If the system.img
is for eMMC, can we ignore it via cmd parameters?
Or, can we use another rootfs folder to create this dummy system.img
, another folder for the customized rootfs?
Please help.
Many Thanks.
Hi,
If the device cannot be flashed/booted, please refer to the page to get uart log from the device:
Jetson/General debug - eLinux.org
And get logs of host PC and Jetson device for reference. If you are using custom board, you can compare uart log of developer kit and custom board to get more information.
Also please check FAQs:
Jetson AGX Orin FAQ
If possible, we would suggest follow quick start in developer guide to re-flash the system:
Quick Start — NVIDIA Jetson Linux Developer Guide 1 documentation
And see if the issue still persists on a clean-flashed system.
Thanks!
To reproduce the issue, you can:
- Prepare a clean Linux_for_Tegra for download center
- De-compress rootfs in rootfs folder
sudo dd if=/dev/zero of=Linux_for_Tegra/rootfs/bigfile bs=1M count=61440
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --no-flash --external-device nvme0n1p1 -c tools/kernel_flash/flash_l4t_external.xml -p "--no-systemimg -c bootloader/generic/cfg/flash_t234_qspi.xml" --showlogs --network usb0 jetson-agx-orin-devkit external
Hi jameskuo,
Are you using the devkit or custom board for AGX Orin?
Do you use this command to flash the board and you hit the error in flashNvmeLog.log?
Please try if the following suggestions can help.
- use
flash_l4t_t234_nvme.xml
instead of flash_l4t_external.xml
- add
--external-only
to flash NVMe SSD only to prevent it create internal image for eMMC
Hi Kevin:
Thanks for the reply.
We tried three ways to flash:
$ sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -c tools/kernel_flash/flash_l4t_t234_nvme.xml -p "--no-systemimg -c bootloader/generic/cfg/flash_t234_qspi.xml" --showlogs --network usb0 jetson-agx-orin-devkit external
Changed NVMe xml only, and the issue remained, logs:
flashLog-nvmeXml.log (59.3 KB)
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-only --external-device nvme0n1p1 -c tools/kernel_flash/flash_l4t_external.xml -p "--no-systemimg -c bootloader/generic/cfg/flash_t234_qspi.xml" --showlogs --network usb0 jetson-agx-orin-devkit external
Add external only flag, logs: flashNvme-externalOnly.log (188.1 KB)
However, no rootfs flashed.
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-only --external-device nvme0n1p1 -c tools/kernel_flash/flash_l4t_t234_nvme.xml -p "--no-systemimg -c bootloader/generic/cfg/flash_t234_qspi.xml" --showlogs --network usb0 jetson-agx-orin-devkit external
Add external only flag and changed the XML file, Logs:
flashNvme-externalOnly_diffXml.log (188.1 KB)
Still, no rootfs flashed.
Yes, we’re using custom board for AGX Orin.
Precisely, sudo ./tools/kernel_flash/l4t_initrd_flash.sh ..... | tee flashNvmeLog.log
Have you confirmed that rootfs not flashed in this case?
I’ve seen following logs there:
[ 2]: l4t_flash_from_kernel: Starting to flash to external device
Active index file is /mnt/external/flash.idx
Number of lines is 61
max_index=60
[ 2]: l4t_flash_from_kernel: Successfully flash the external device
[ 2]: l4t_flash_from_kernel: Flashing success
Please try to create any tmp file on your board and perform the flash process again to check if it has not been flashed.
Or you can try using the following commands to flash the board with 3 steps.
Step1. create internal(QSPI)
$ sudo ./tools/kernel_flash/l4t_initrd_flash.sh --showlogs -p "-c bootloader/generic/cfg/flash_t234_qspi.xml" --no-flash --network usb0 jetson-agx-orin-devkit internal
Step2. create external(NVMe SSD)
$ sudo ./tools/kernel_flash/l4t_initrd_flash.sh --showlogs --no-flash --external-device nvme0n1p1 -c ./tools/kernel_flash/flash_l4t_t234_nvme.xml --external-only --append --network usb0 jetson-agx-orin-devkit external
Step3. flash both
$ sudo ./tools/kernel_flash/l4t_initrd_flash.sh --showlogs --network usb0 --flash-only
Hi Kevin:
Thanks for the reply.
Yes, I confirmed. All the history I typed were remained.
About the steps, we’ll give it a try.
Many thanks.