Can you create an image without connecting the Jetson Orin that can be flashed later?

Hello,

when using l4t_initrd_flash to flash to externaI NVME drive, I can create images without flashing them to the device (flag: --noflash). However, I have to connect the Orin when creating this images even without flashing. I guess some information has to be read from the device. Then later, I can flash the created image to the device.

  1. Is it possible to create the image(s) without connecting to the device? Maybe by specifying the info in environment variables or arguments?
  2. If the image was created when connected to one device, can the same image be flashed to another device with same Orin and carrier? Is this even possible when using disk encryption?

Ideally, I want to create the image automatically in the Continuous Integration/Delivry Pipeline CI/CD, e.g. in gitlab/github, without any device connected, because the CI runner runs in on githubs servers. Then, all the files and images created in the CI are compressed and saved in an the artefact repository. If I have to flash a new device of same type and carrier, I just download the zip file with all the prepared images and just flash it without rebuilding anything.

Best regards

1 Like

This is a really good question, it would be extremly helpful to have this!

Hi,
Please check this:

Flashing Support — NVIDIA Jetson Linux Developer Guide 1 documentation

Please get the information of the device and configure it in the command line:

BOARDID=3701 BOARDSKU=0000 FAB=500 BOARDREV=500 CHIP_SKU=D0 RAMCODE=0 FUSELEVEL=fuselevel_production

Thanks a lot for the great answer. It almost works. But now I get the error

ERROR: build_enc_fsimg: ECID is null when building the encrypted image.

My questions:

  1. How can I fix it?
  2. If I create one encrypted image for multiple devices and fix the ECID issues, will this have security issues because the ECID is not used?
  3. What exactly is the ECID? I have not found and documentation.

EDIT: I use the command

without: massflash
sudo BOARDID=3767 BOARDSKU=0000 FAB=300 FAB=300 BOARDREV=P.1 CHIP_SKU=00:00:00:D3 RAMCODE=0 FUSELEVEL=fuselevel_production ROOTFS_ENC=1 EXT_NUM_SECTORS=150390625 ./tools/kernel_flash/l4t_initrd_flash.sh --network usb0 --showlogs --no-flash --external-device nvme0n1p1 -S 70GiB -c ./tools/kernel_flash/flash_l4t_t234_nvme_rootfs_enc.xml --external-only --append -i ./sym2_t234.key jetson-orin-d115w external

with: massflash
sudo BOARDID=3767 BOARDSKU=0000 FAB=300 FAB=300 BOARDREV=P.1 CHIP_SKU=00:00:00:D3 RAMCODE=0 FUSELEVEL=fuselevel_production ROOTFS_ENC=1 EXT_NUM_SECTORS=150390625 ./tools/kernel_flash/l4t_initrd_flash.sh --massflash 1 --network usb0 --showlogs --no-flash --external-device nvme0n1p1 -S 70GiB -c ./tools/kernel_flash/flash_l4t_t234_nvme_rootfs_enc.xml --external-only --append -i ./sym2_t234.key jetson-orin-d115w external

These commands end with the error

Making user_data_encrypted.img_ext... 
ERROR: build_enc_fsimg: ECID is null .
Error: Failed to generate images for external device
Cleaning up...

Obviously, this works when the device is connected and I do not set all all the variables.

Best regards

Boris

Could you compare both logs when you connect the board to generate mfi package and when you specify the board spec in flash command to generate the mfi package?

ECID can be found when you are flashing the board.

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