Failed to boot from nvme SSD on my AGX Orin

I flash my AGX Orin 64GB module with Ubuntu 22.04 and BSP R36.4, but failed to boot from nvme SSD.
firstly, I ran the flash.sh script that is in the top-level directory of BSP:

sudo ./flash.sh jetson-agx-orin-devkit mmcblk0p1

after that, the AGX Orin module can boot from eMMC successfully.
then, I tried to format the nvme SSD and copy root file system to it:

sudo parted /dev/nvme0n1 mklabel gpt
sudo parted /dev/nvme0n1 mkpart primary 0GB 465.76GB
sudo mkfs.ext4 /dev/nvme0n1p1
sudo dd if=/dev/mmcblk0p1 of=/dev/nvme0n1p1 bs=1M
sudo fsck /dev/nvme0n1p1 

I also record the PARTUUID of nvme SSD, by:

sudo blkid /dev/nvme0n1p1
/dev/nvme0n1p1: UUID="c8b8b42c-54ea-4c45-8b45-3f80d6895c98" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="primary" PARTUUID="8fb23292-58dc-4901-bec8-3f9178decc19"

the last step, I echo the PARTUUID to ‘bootloader/l4t-rootfs-uuid.txt_ext’, by:

echo '8fb23292-58dc-4901-bec8-3f9178decc19' > bootloader/l4t-rootfs-uuid.txt_ext

and run this command:

sudo ./flash.sh --reuse-uuid jetson-agx-orin-devkit external

During the flashing process, I dumped the uart log of host computer and agx-orin module:
agx_orin-uart.log (91.7 KB)
host_computer-uart.log (98.9 KB)

Hi,

Please refer to the Jetson AGX Orin Developer Kit (NVMe): section in

Thanks

Hi,I tried the procedure,but failed.
firstly, I am sure that my AGX Orin module can boot from eMMC successfully.
then I put the AGX Orin module into Force Recovery Mode, and I can find the usb device on my host computer, by:

lsusb

finally, I typed the command:

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

However, timeout arised as follow:

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...
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 dumped the serial log both of host them (host computer and AGX Orin module)
agx-orin_serial.log (80.0 KB)
host-computer.log (304.1 KB)

Hi,

We dont support the command you mentioned to copy root file system.
To copy the root file system, please refer to the Flashing Support — NVIDIA Jetson Linux Developer Guide

Thanks

Hi, DavidDDD
I really want to confirm with you:
Is there only one way to flash my AGX Orin module by initrd tool (l4t_initrd_flash)?

I tried the R35.4 BSP with my AGX Orin module, I just use these command above and only use theflash.sh script , the file system in nvme SSD is mounted successfully:


Now, I want to update to R36.4 BSP, but this method failed.

According to your suggestion, I tried to use this method:

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

finally, the AGX Orin module was hung:

agx-orin_serial.log (80.0 KB)
host-computer.log (304.1 KB)

Dear experts,
Can you give me some suggestions after reading my above reply. thanks a lot.

Hi experts,
Now I can burn the SSD, and it seems that the log was also successfully burned. However, after successful burning, Orin kept searching for the partuuid when starting, which caused the system to not start properly.

flash_1-7_0_20250403-204256.log (59.8 KB)

One thought is to press enter to enter bash. then

cat /etc/fstab and see if that is where it is looking for that PARTUUID number.

sudo vi /etc/fstab
comment out # the line with PARTUUID
copy the line with PARTUUID and put it beneath the commented line and edit it removing PARTUUID=d4d*6df changing it to
/dev/nvme0n1p1 leaving the rest of the line as it is.

then
sudo reboot now

Hi, whitesscott
Thank you very much.
I tried this method, but I can’t edit the fstab:

This might work I’ll boot my agx orin dev kit in the morning and try it.

power on agx orin then go into bash

mkdir /mnt/root
mount /dev/nvme0n1p1 /mnt/root

cp /mnt/root/etc/fstab /mnt/root/etc/fstab.bak

sed -i ‘s|PARTUUID=[^ ]*|/dev/nvme0n1p1|’ /mnt/root/etc/fstab

umount /mnt/root
reboot -f

Thanks, whitesscott.
I suspect that the issue I’m encountering is this situation:
https://forums.developer.nvidia.com/t/cant-boot-orin-nx-after-flashing-custom-kernel/278938

I will try to check this situation and get back to you.

I tried what I suggested above and it failed. The problem is that uefi shell can’t write on the ext4 formatted APP / partition. Sorry for the misdirection.

It doesn’t matter.
I really appreciate your help. whitesscott.
I think I’ve found the problem: I changed the kernel suffix name, so the value of module_layout in kernel modules in the stock initrd image released by NVIDIA does not match the new kernel image I built.

now, I recover the kernel suffix name, and I can boot from nvme SSD (only root file system in it), moreover, I just use flash.sh script.

1 Like