Flashing Jetson AGX Orin to NVMe (nvme0n1p1) fails using l4t_initrd_flash_internal.sh

Flashing Jetson AGX Orin DevKit to NVMe fails (official carrier board)

Description

I am using the official Jetson AGX Orin Developer Kit, including the official carrier board and module.

I am trying to flash the system to an NVMe SSD​ using the initrd flash method, but the flashing process fails.


Command used

sudo ./tools/kernel_flash/l4t_initrd_flash_internal.sh \
  --external-device nvme0n1p1 \
  -c tools/kernel_flash/flash_l4t_t234_nvme.xml \
  --showlogs \
  --network usb0 \
  jetson-agx-orin-devkit external

Environment

Host OS Ubuntu 20.04

L4T / JetPack R35.6.2

Hardware Jetson AGX Orin DevKit


Questions

  1. Is this command correct for flashing to nvme0n1p1on the official AGX Orin DevKit?

Logs

jetson_log.txt (14.8 KB)

nvme_pclog.txt (217.1 KB)

*** Please note that this reply is generated by LLM automatically ***

Based on the provided context, it appears that you are trying to flash the Jetson AGX Orin DevKit to an NVMe drive using the initrd flash method. However, the flashing process is failing.

The command you provided is:

$ sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device sda1 \
  -c tools/kernel_flash/flash_l4t_t234_nvme.xml \
  --showlogs --network usb0 jetson-agx-orin-devkit external

This command is similar to the one provided in the context for flashing to an NVMe drive. However, there are a few differences:

  • The --external-device option is set to sda1, which is the device name of the NVMe drive. This is correct.
  • The -c option is set to tools/kernel_flash/flash_l4t_t234_nvme.xml, which is the configuration file for flashing to an NVMe drive. This is correct.
  • The --showlogs option is used to display the logs during the flashing process. This is optional.
  • The --network usb0 option is used to specify the network interface. This is optional.
  • The jetson-agx-orin-devkit option specifies the target device. This is correct.
  • The external option specifies that the flashing is being done to an external device. This is correct.

However, there are a few potential issues with the command:

  • The BOARDID, BOARDSKU, and FAB environment variables are not set. These variables are required for flashing the Jetson AGX Orin DevKit. You can set these variables using the following commands:
$ export BOARDID=3701
$ export BOARDSKU=0000
$ export FAB=TS4
  • The --direct option is not used. This option is required for flashing to an NVMe drive. You can add this option to the command as follows:
$ sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device sda1 \
  -c tools/kernel_flash/flash_l4t_t234_nvme.xml \
  --direct nvme0n1p1 \
  --showlogs --network usb0 jetson-agx-orin-devkit external
  • The nvme0n1p1 device name is used in the --direct option. This is the device name of the NVMe drive. Make sure that this device name is correct.

To troubleshoot the issue, you can try the following:

  • Check the logs to see if there are any error messages. You can find the logs in the jetsonlog.txt and nvmepclog.txt files.
  • Make sure that the NVMe drive is properly connected and recognized by the system.
  • Try flashing the device again using the corrected command.

If you are still having issues, you can try flashing the device using a different method, such as using the flash.sh script. You can find more information on using flash.sh in the context.

In comparison to the other commands provided in the context, the command you provided is similar to the one used for flashing to an NVMe drive. However, the other commands use different options and environment variables. For example, the command used for flashing to an SD card uses the --external-device mmcblk0p1 option, whereas the command used for flashing to an NVMe drive uses the --external-device sda1 option.

Overall, the command you provided is correct, but there may be some issues with the environment variables and options used. By correcting these issues and trying the troubleshooting steps, you should be able to successfully flash the Jetson AGX Orin DevKit to the NVMe drive.

*** Please give the thumbs up if you get answers you like. Or provide feedback to help us improve the answer. ***

Hi,

The command looks good to me.
Some questions to confirm:

  • Is your host ubuntu a physical or a virtual machine?
    If virtual machine, please prepare a native one to flash your device.

Thanks

I’m currently using a physical Ubuntu machine​ now, but the same issue still occurs​ after flashing the device.

The logs from the new physical machine are as follows:

physucal_pc_log.txt (287.1 KB)

Hi,

Please also provide the serial console log.
https://developer.ridgerun.com/wiki/index.php/NVIDIA_Jetson_Orin/In_Board/Getting_in_Board/Serial_Console

Thanks

jetson_log.txt (14.8 KB)

Hi,

Please run below command to confirm your AGX Orin whether in recovery mode.

lsusb

Thanks

tyx@tyx-Default-string:~/Linux_for_Tegra$ lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 002: ID 0955:7223 NVIDIA Corp. APX
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
tyx@tyx-Default-string:~/Linux_for_Tegra$ sudo ./tools/kernel_flash/l4t_initrd_flash_internal.sh --external-device nvme0n1p1 -c tools/kernel_flash/flash_l4t_t234_nvme.xml --showlogs --network usb0 jetson-agx-orin-devkit external
[sudo] password for tyx:

Just one small suggestion. Try logging in as root before executing flashing command.

Hi @nagesh_accord

Have you tried using the l4t_initrd_flash.sh script?

You can follow the Flashing the Board from Cmdline guide to set up the board for flashing.

Then, refer to the Flash NVMe section. Although the guide is under the Orin NX documentation, the same l4t_initrd_flash.sh applies for AGX Orin, just use the AGX Orin target board configuration.

For your specific setup, Jetson AGX Orin DevKit + JetPack/L4T R35.x, you can run:

cd Linux_for_Tegra

sudo ./tools/kernel_flash/l4t_initrd_flash.sh \
  --external-device nvme0n1p1 \
  -c tools/kernel_flash/flash_l4t_external.xml \
  -p "-c bootloader/t186ref/cfg/flash_t234_qspi.xml" \
  --showlogs \
  --network usb0 \
  jetson-agx-orin-devkit \
  internal

Make sure the board is in recovery mode before running the command.

Regards,

Kimberly Carvajal
Embedded SW Engineer at RidgeRun
Contact us: support@ridgerun.com
Developers wiki: https://developer.ridgerun.com/
Website: www.ridgerun.com

Hi Kimberly,

I have tried this and it has been working for us from long time.

Just recommended the user 2387665440 user to try flashing after logging in as root user