Trouble Flashing NVMe on Jetson Xavier NX : "Disk Avail on Partition : 0.00 B "

I am currently struggling to flash an NVMe drive on my Xavier NX Jetson. I’ve been going in circles trying to get this to work after looking through many many similar/identical topics on this forum. I’m sure I’ve missed something or am doing something out of order but I’m not exactly sure what.

I am specifically trying to flash an NVMe drive that is plugged into my Jetson, using the SDK Manager CLI. I was able to get this to work for the module’s EMMC, and I can boot and use the Jetson as normal from the EMMC. I have formatted and created a partition on the NVMe drive using parted following some of the various resources. When I try to flash the NVMe however, I am getting the error:

17:33:26.169 - Info: Waiting for device to expose ssh ...
17:33:36.268 - Info: ...
17:33:37.337 - Info: RTNETLINK answers: File exists
17:33:37.337 - Info:
17:33:37.340 - Info: RTNETLINK answers: File exists
17:33:37.340 - Info:
17:33:37.383 - Info: Waiting for device to expose ssh ...
17:33:37.387 - Info: Run command: flash on fc00:1:1:0::2
17:33:37.387 - Info:
17:33:37.575 - Info: SSH ready
17:33:37.575 - Info:
17:36:38.253 - Info: mount.nfs: Connection timed out
17:36:38.253 - Info:
17:36:38.259 - Info: Flash failure
17:36:38.259 - Info:
17:36:38.269 - Info: Cleaning up...
17:36:38.269 - Info:
17:36:38.302 - Error: [exec_command]: /bin/bash -c /tmp/tmp_NV_L4T_FLASH_JETSON_LINUX_COMP.nk.sh; [error]: 87006 blocks


17:36:38.302 - Info: [ Component Install Finished with Error ]
17:36:38.302 - Info: [host] [ Disk Avail on Partition : 0.00 B ]
17:36:38.302 - Info: [ NV_L4T_FLASH_JETSON_LINUX_COMP Install took 11m29s ]

The full host log is attached here:

NV_L4T_FLASH_JETSON_LINUX_COMP.log (298.0 KB)

I am currently struggling to get the serial console logs off the Jetson, which I know are also helpful in debugging this. I figured I’d post here while I continue to work at that in case the above error is clear to anyone.

My best guess is I am not handling the NVMe drive partitions correctly, but I’m not sure. I’ve also tried various other approaches including using the l4t_initrd_flash.sh script to no success.

The disk has a lot of space, 1 TB, and I don’t think I was quite setting it up correctly/using the right command. Using the following steps I got it to work - though I am not 100% sure if all steps were needed (probably not):

  1. Reformat drive and manually create APP partition:

I did this on the Jetson with the flashed EMMC. If you have a connector to the host machine you can probably do this there.

- sudo parted /dev/nvme0n1
- mkpart APP 0GB 900GB
- Exit parted utility
- sudo mkfs.ext4 /dev/nvme0n1p1
- sudo mount /dev/nvme0n1p1 /mnt

Probably I didn’t need to mount the partition, but not sure.

  1. Connect Xavier NX to host machine in recovery mode and run the following flash script:
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-only -c ./tools/kernel_flash/flash_l4t_nvme.xml --external-device nvme0n1 -S 100GiB --showlogs jetson-xavier-nx-devkit-emmc nvme0n1p1

Having nvme0n1 after --external-device and nvme0n1p1 at the end might or might not have helped. It’s still not clear to me what the flash script is doing inside it that I possibly manually did beforehand or not.

A couple of other things I needed to do to get it to work:

  • Set num_sectors in l4t_initrd_flash.sh to 230686720 to align with -S value of 100 GiB. This is much less than the space on the APP partition but I just used values from another help thread and this worked. Both can certainly go up.
  • Install parted utility on host machine, which I didn’t previously have. Without it I got an error when the flash script ran mentioning it couldn’t find it.

With some of these changes perhaps the SDK Manager now would work. Perhaps not having the parted tool was the issue with the 0.00 B error. I will have to test that later.

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