Hi All,
I am using the Jetson Orin Nano 4G device.
The original Jetpack is 5.1.4.
The original Jetpack version had issues with backup and batch flashing, so I switched to Jetpack 6.1 for backup and batch flashing. After performing batch flashing with Jetpack 6.1, when I connect the Ethernet cable, the device attempts to boot via HTTP, which results in a very long boot time. Below is some of the boot log. When the Ethernet cable is not connected, the HTTP retrieval fails, and the device boots from the hard drive.
>>Start HTTP Boot over IPv6.
Error: Could not retrieve NBP file size from HTTP server.
Error: Unexpected network error.
>>Start HTTP Boot over IPv4.
Error: Could not retrieve NBP file size from HTTP server.
Error: Server response timeout.
>>Start PXE over IPv6.
PXE-E16: NO valid offer received.
>>Start PXE over IPv4.
PXE-E18: Server response timeout.
However, an interesting phenomenon occurs. Hard drive A boots from NVMe, while hard drive B, after being re-flashed, attempts to boot via HTTP. If I first boot from hard drive A and then switch to hard drive B, hard drive B will subsequently boot from NVMe. I am unsure why this happens.
During my research, I found that adding ADDITIONAL_DTB_OVERLAY="BootOrderNvme.dtbo"
is supposed to modify the boot order.
The commands for backup and burning are as follows:
sudo ./tools/backup_restore/l4t_backup_restore.sh -e nvme0n1 -b -c jetson-orin-nano-devkit
sudo ADDITIONAL_DTB_OVERLAY="BootOrderNvme.dtbo" ./tools/kernel_flash/l4t_initrd_flash.sh --massflash 5 --network usb0 --no-flash --use-backup-image --external-device nvme0n1p1 -c ./tools/kernel_flash/flash_l4t_t234_nvme.xml --showlogs jetson-orin-nano-devkit nvme0n1p1
cd mfi_jetson-orin-nano-devkit/
sudo ADDITIONAL_DTB_OVERLAY="BootOrderNvme.dtbo" ./tools/kernel_flash/l4t_initrd_flash.sh --massflash 5 --network usb0 --flash-only --external-device nvme0n1p1 -c ./tools/kernel_flash/flash_l4t_t234_nvme.xml --showlogs jetson-orin-nano-devkit nvme0n1p1
However, after cloning and backing up using the following command, I encountered an error during re-flashing. The error message is as follows:
***************************************
* *
* Step 3: Start the flashing process *
* *
***************************************
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
Waiting for target to boot-up...
…………[omit]
…………[omit]
Waiting for target to boot-up...
Waiting for target to boot-up...
Timeout
Device failed to boot to the initrd flash kernel. Please retrive the serial log during flashing to debug further.
Cleaning up...
I also attempted to modify the file kernel/dtb/L4TConfiguration.dts
and exported it as kernel/dtb/L4TConfiguration.dtbo
. However, the result was still unsuccessful. Upon booting, the system still prioritizes HTTP. The content of the L4TConfiguration.dts
file is as follows. I swapped the positions of USB and NVMe in the file.
/dts-v1/;
/ {
overlay-name = "L4T Configuration Settings";
fragment@0 {
target-path = [2f 00];
board_config {
sw-modules = "uefi";
};
__overlay__ {
firmware {
uefi {
variables {
gNVIDIAPublicVariableGuid {
QuickBootEnabled {
data = [00];
non-volatile;
};
NewDeviceHierarchy {
data = [01];
runtime;
non-volatile;
};
RootfsRetryCountMax {
data = <0x3000000>;
runtime;
locked;
};
RootfsRedundancyLevel {
data = <0x0>;
runtime;
locked;
};
AutoUpdateBrBct {
data = <0x1000000>;
non-volatile;
};
L4TDefaultBootMode {
data = <0x1000000>;
runtime;
non-volatile;
};
ExposeRtRtcService {
data = [00];
runtime;
non-volatile;
};
};
gNVIDIATokenSpaceGuid {
DefaultBootPriority {
data = "nvme,usb,emmc,sd,ufs";
locked;
};
};
};
};
};
};
};
};
So, I would like to ask if there is a way to boot from NVMe after backing up the image, rather than booting via HTTP.
Thank you for your assistance!