Jetpack 5.0.2 , boot from SATA SSD on Jetson Xavier NX. error: dev/sda1 not found

We’re trying to install Jetpack 5.0.2 on Jetson Xavier NX on SATA ssd. At First we installed it on eMMC and then transfered the rootfs to SATA SSD(our transfer process is mentioned below). However, after changing rootfs, the boot fails and says sda1 not found. We’ve gone through many solutions on google and topics on Nvidia forum but it didn’t work for us. The topic mentioned above and Flash Jetpack 5.0.2 to SATA SSD fits our scenario almost perfectly. We have flashed Jetpack to our Jetson atleast 30 times and gone through countless solutions, its still not working out. We need a urgent solution to this, what should we do ?

Thank you.

#Process of transfer:

  1. Mounted the SSD to /mnt
  2. used link to copy content of os to SSD we also followed Jetsonhacks
  3. rebooted

@baozhu.zuo please help to check if can provide suggestions to this issue. Thanks

@amasud183040 are you using the same SeeedStudio/Leetop Jetson NX device that I mentioned in my post (Flash Jetpack 5.0.2 to SATA SSD) ? Everything I read indicated it was an issue with their use of a USB hub to attach the SATA drive, and there was no solution. I wasted far too much trying to resolve it. I ended up abandoning use of that device, and bought a machine with a different NX carrier board (which had an nvme SSD instead).

@kayccc @baozhu.zuo @WayneWWW please check this problem out. I really need a solution to this.

@geoff.s yes it has the same problem as your, same device.

Hi,

We cannot directly share you an answer as your are using a custom board from other vendor.

Jetson NX by default does not have any SATA interface, if there is one on your board, then must be using some converter through pcie or usb.
For your case, better checking with the board vendor first. They may share their board info/schematic to us which you may not have.

Hello,

I will help you further. Do you have experience flashing directly to SSD using command-line? If yes, you need to pass the following command after downloading the BSP.

sudo ./flash.sh jetson-xavier-nx-devkit-emmc sda1

If that does not work, try this

sudo ./flash.sh jetson-xavier-nx-devkit-emmc nvme0n1p1

If you are not familiar with it, I can send you further instructions.

@kayccc @WayneWWW Just for your reference. It is better if you @ lakshantha.d in the future because now I am the one who is taking in charge of Seeed-based NVIDIA products, and I will reply here in this forum. Thank you.

Best Regards,
Lakshantha

Thanks for the support to Jetson community!

2 Likes

Hi, if you can build kernel, you modify kernel config to make sata build into kernel, as below:
— a/kernel/kernel-5.10/arch/arm64/configs/defconfig
+++ b/kernel/kernel-5.10/arch/arm64/configs/defconfig
@@ -378,10 +378,10 @@ CONFIG_SCSI_MPT3SAS=m
CONFIG_SCSI_UFSHCD=y
CONFIG_SCSI_UFSHCD_PLATFORM=y
CONFIG_SCSI_UFSHCD_TEGRA=y
-CONFIG_ATA=m
+CONFIG_ATA=y

CONFIG_ATA_ACPI is not set

-CONFIG_SATA_AHCI=m
-CONFIG_SATA_AHCI_PLATFORM=m
+CONFIG_SATA_AHCI=y
+CONFIG_SATA_AHCI_PLATFORM=y
,then copy the Image to $l4t/kernel/,then you try to flash,used the way you do in jetpack4.x

Neither of those commands will work. The flash will appear to succeed without erorr, but when rebooting the device will report “sda1 not found” or similar.

Similar issues have been reported in the past, for example:

@lakshantha.d We tried this process last year with jetpack 4. At first, it took some time to write the files. Later, lots of errors occurred and the setup failed. As @geoff.s mentioned, we had a similar error on other tries. Can you guide tell us through the process you mentioned step by step? We would like to try it again.

Just want to clarify… you could read my post here first to understand how those tools work…

First, flash.sh will not flash any data to external drive. What it can flash are all internal storage. For example, the internal emmc or internal sdcard slot.
If you just run flash.sh and give it nvme or sda1, then your nvme/SSD will still be empty.
To flash nvme or SSD, please use initrd flash tool instead.

Second, for any boot issue. You must share the log from UART serial console.

It is unlikely to precisely know what goes wrong if you cannot provide log.

Third, please check if your SSD or NVMe drive is able to get detected in emmc boot case first. If it cannot be enumerated, then it is not possible you can boot from it.

Hello,

Please wait. I will test this further and get back with clear instructions on how to flash to SSD successfully.

@lakshantha.d Our board is Jetson Xavier NX custom board. And we’ve tried jetpack 5.0.2. Please try your installation in this specific board with jetpack 5.0.2

Thank you

@amasud183040

This specific board right?

@lakshantha.d Yes. SATA SSD version

Hi @amasud183040

You can check flashing with initrd: NVIDIA Jetpack Flashing with initrd | RidgeRun Developer

Please, let us know your results.

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

@EduardoSalazar96
last year we used this method for jetpack 4.6.x. But it gave errors. However, this year we’re trying jetpack 5.x and the official manual for initrd is only for jetpack 4.6.x

Hi @amasud183040

Sorry for the late response:

Here is a link to the JetPack 5 documentation to flash using the initrd Flashing Support — Jetson Linux<br/>Developer Guide 34.1 documentation

The initrd script is in /Linux_for_Tegra/‌tools/‌kernel_flash/.

For example:

/JetPack_5.0.2_Linux_JETSON_XA
VIER_NX_TARGETS/Linux_for_Tegra/tools/kernel_flash$ ls
bin
flash_l4t_external.xml
flash_l4t_nvme_rootfs_ab.xml
flash_l4t_nvme_rootfs_enc.xml
flash_l4t_nvme.xml
flash_l4t_t234_nvme.xml
host_udev
initrd_flash
l4t_create_images_for_kernel_flash.sh
l4t_flash_from_kernel.sh
l4t_initrd_flash.func
l4t_initrd_flash_internal.sh
l4t_initrd_flash.sh
l4t_kernel_flash_vars.func
l4t_network_flash.func
README_initrd_flash.txt

Hope this helps!

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

Hi,
I found a reliable way to install jetpack 5.0.2 on ssd. I found this after method after some searching.
This installs on both NVME drive and on internal emmc, but makes NVME the default boot drive:

  1. Install to emmc using sdkmanager (or flash.sh) (maybe REDUNDANT?)
    1.1. Download l4t BSP and sample rootfs, build it (shown in above)
    1.2. You can flash via command line:
    1.2.1. sudo ./flash.sh jetson-xavier-nx-devkit-emmc mmcblk0p1
    1.3. Or just use sdk_manager

  2. Boot to setup, then to desktop, make sure nvme0n1p1 is available (type “parted” in search bar)
    2.1. If not available, delete all partitions in nvme0 using “parted”

  3. Flash jetpack to SSD (***NOTE: flash.sh can’t be used here):
    3.1. sudo ./nvsdkmanager_flash.sh --storage nvme0n1p1
    3.2. JETSON WILL BOOT TO BLACK SCREEN, this is expected.

  4. Re-flash jetson to EMMC again (use sdkmanager)
    4.1. sudo ./flash.sh jetson-xavier-nx-devkit-emmc nvme0n1p1

  5. Set it up again. Then reboot.

  6. Press escape to go to bios

  7. Set SSD as initial boot device

thank you for your concern @EduardoSalazar96
however, it did not work

while installing, it doesn’t give any error. But it does not boot from SSD. Instead it boots from previously installed emmc drive.