Hello,
I am working on a Jetson Orin NX 16GB module running L4T R36.4.3. The device is FUSED with PKC + SBK(Secure Boot is active).
Goal: I am trying to flash the device with Disk Encryption enabled (ROOTFS_ENC=1).
References Followed: I have been following the official NVIDIA documentation and RidgeRun guides regarding Disk Encryption and Secure Boot:
-
NVIDIA: Disk Encryption for Jetson Linux
-
RidgeRun: Jetson Orin NX/Nano Secure Boot
The Problem: Since the device is fused, signing and encryption operations seem to cause timing issues or generation failures during the standard flash process. I am facing two distinct blocking errors when attempting to flash using l4t_initrd_flash.sh.
Scenario 1: USB Write Timeout When attempting to flash directly, the process starts but eventually fails during the transfer of large signed binaries (like mb1 or bct), likely due to the overhead on the fused device.
[ 0.0721 ] Sending mb1
[ 0.0727 ] ERROR: might be timeout in USB write.
Error: Return value 3
Scenario 2: Return Value 4 (Generation Error) In some attempts (especially when trying to generate images first), I encounter Error: Return value 4 during the GPT generation or signing phase involving tegraparser_v2 and tegrahost_v2.
[ 5.4257 ] End sector for APP_ENC, expected at: 119537630, actual: 0
Error: Return value 4
Command tegraparser_v2 --generategpt --pt flash.xml.bin
My Question: What is the recommended, reliable workflow to flash a Fused (PKC+SBK) Orin NX 16GB with Disk Encryption enabled? I am using with external NVME on it.
Is there a specific parameter or a two-step approach (without running into the USB timeout) that handles the encryption keys (-i, -u, -v) correctly for a fused target?
I am using this script:
cp “$BSP_TOP/oem_keys/sym2_t234.key” “$BSP_TOP/Linux_for_Tegra/disk_enc.key”
sudo BOARDID=“$BOARD_ID” FAB=“$FAB” BOARDSKU=“$BOARDSKU” CHIP_SKU=“$CHIP_SKU” RAMCODE_ID=“$RAMCODE” \
./tools/kernel_flash/l4t_initrd_flash.sh \
–odm-image-gen \
–showlogs \
–network usb0 \
–no-flash \
-u ../odm_keys/rsa3k.pem \
-v ../odm_keys/sbk-32.key \
–uefi-keys ../uefi_keys/uefi_keys.conf \
-p “-c bootloader/generic/cfg/flash_t234_qspi.xml” \
jetson-orin-nano-devkit-super \
internal
sudo BOARDID=“$BOARD_ID” FAB=“$FAB” BOARDSKU=“$BOARDSKU” CHIP_SKU=“$CHIP_SKU” RAMCODE_ID=“$RAMCODE” \
ROOTFS_ENC=1 \
./tools/kernel_flash/l4t_initrd_flash.sh \
–mass-storage-only \
–showlogs \
–network usb0 \
–no-flash \
–external-device nvme0n1p1 \
–external-only \
-c ./tools/kernel_flash/flash_l4t_t234_nvme_rootfs_enc.xml \
-i “./disk_enc.key” \
–uefi-keys ../uefi_keys/uefi_keys.conf \
–uefi-enc ../oem_keys/sym_t234.key \
jetson-orin-nano-devkit-super \
internal
sudo cp “${BSP_TOP}/oem_out/signed/”* tools/kernel_flash/images/internal/ekb_db
sudo cp “${BSP_TOP}/oem_out/signed/”* bootloader/
sudo BOARDID=“$BOARD_ID” FAB=“$FAB” BOARDSKU=“$BOARDSKU” CHIP_SKU=“$CHIP_SKU” RAMCODE_ID=“$RAMCODE” \
ROOTFS_ENC=1 \
./tools/kernel_flash/l4t_initrd_flash.sh \
–external-device nvme0n1p1 \
-c ./tools/kernel_flash/flash_l4t_t234_nvme_rootfs_enc.xml \
-i “./disk_enc.key” \
-p “-c ./bootloader/generic/cfg/flash_t234_qspi.xml” \
–uefi-keys ../uefi_keys/uefi_keys.conf \
–showlogs \
–network usb0 \
jetson-orin-nano-devkit-super \
internal
and getting this error after successfully flash:
[ 13.149686] ERROR: fail to unlock the encrypted dev /dev/nvme0n1p2.
[ 13.151574] Kernel panic - not syncing:
[ 13.151578] Attempted to kill init! exitcode=0x00007f00
[ 13.151581] CPU: 7 PID: 1 Comm: bash Not tainted 5.15.148-tegra #1
[ 13.151585] Hardware name: NVIDIA NVIDIA Jetson Orin NX Engineering Reference Developer Kit Super/Jetson, BIOS 36.4.3-gcid-38968081 01/08/2025
Thanks.