Introduction
The initrd flashing scripts provided by NVIDIA allow users to flash multiple Jetson units simultaneously using the --massflash flag.
Notes and Limitations
- The same module SKU must be used for all units, otherwise flash will fail.
- Currently, the massflash method will allow the user to flash 5 Jetson units at a time on a single host machine.
- If you flash with --showlogs, the script will save flashing logs from each device in Linux_for_Tegra/initrdlog/
- There is a README included in Linux_for_Tegra/tools/kernel_flash/README_initrd_flash.txt with more information and alternative flash commands using initrd.
- The initrd script will only flash the number of Jetson units that are available. You can safely set --massflash 5 and flash less than 5 units with no issues.
- Using ionice -c 1 -n 0 will give the flashing process top CPU priority, allowing for faster flashing.
Procedure
- Initialize your Linux_for_Tegra directory by following steps 1-10 (inclusive) in KDB373.
- Put one of your Jetson units into force recovery mode and connect to your Linux host machine. Verify with:
$ lsusb
- Navigate to <BSP_PARENT_DIR>/Linux_for_Tegra
- Generate the system multiflash image. This will be stored in Linux_for_Tegra/mfi_<config>. Use one of the commands below, replacing <CONFIG> with your board config (ex. cti/orin-agx/forge/base).
# Flashing to internal eMMC
$ sudo ./tools/kernel_flash/l4t_initrd_flash.sh --no-flash --network usb0 --massflash 5 \
<CONFIG> mmcblk0p1
# Flashing to external NVMe and internal QSPI
$ sudo ./tools/kernel_flash/l4t_initrd_flash.sh --no-flash --external-device nvme0n1p1 \
-c tools/kernel_flash/flash_l4t_external.xml --network usb0 --massflash 5 \
<CONFIG> external - Put up to 5 Jetson units into force recovery mode and connect to host machine. If flashing to NVMe, the NVMe should be connected at this point. Verify all units are have seperate entries with:
$ lsusb
- Flash first batch of Jetson units using the following command:
$ sudo ionice -c 1 -n 0 ./tools/kernel_flash/l4t_initrd_flash.sh --flash-only \
--network usb0 --massflash 5 --showlogs --keep - Flash additional batches of Jetson units using --reuse, to keep flashing environment and speed up flashing speeds:
$ sudo ionice -c 1 -n 0 ./tools/kernel_flash/l4t_initrd_flash.sh --flash-only \
--network usb0 --massflash 5 --showlogs --reuse