Adding ssd storage on jetson nano

I am using Jeston nano production module with 16G emmc. however our product is running out of space. we want to add a exteral SSD . can we flash rootfs or some of the partitions onto ssd ? so that we have more space on emmc?

Hi,
Yes, you can. Please refer to some other posts on this forum. Many topics are related to such question.

hi Wayne,

thanks could you provide a few links ?

Thanks,

hi Wayne,

Could you provide the link ? not sure which one you were refering to

Thanks

Hi,

Actually I don’t have a list for such topic either.

But I just searched the forum and got this one.

Maybe you could search similar thing by using forum search too.

Hi Wayne,

The link you provided did not seem reach to a conclusion . he was trying to flash onto exteranl sdcard. I am trying to flash to external ssd. mainly i want to flash rootfs to external ssd to free up emmc space.

is this doable ?

Thanks,

Hi,

I didn’t ask you to read the whole post. You just need the method in comment #3 on that post.

mainly i want to flash rootfs to external ssd to free up emmc space.

This method could achieve your goal but it will still keep bootloader in emmc. Since you only mount “rootfs” too external storage, bootloader is still on emmc.

hi Wayne,

these steps seem does not help on our situtions. we are producting Jetson nano in the factory .the ssd is plugged in on the jetson nano carrier board.
i am looking for how to flash the system.img (this assuming is the filesystem and app partition) over the micro usb to the sd and everything else flash onto the EMMC.

could you help me on this ?
Thanks

Hi,

Then you should tell us you are working on factory producing first. I guess your difficulties come from you don’t know the UUID of each SSD drive, right?

Then I guess you could only run something like “sudo ./flash.sh BOARD-NAME sda1”

This “sda1” depends on what device name is in use when you mount your ssd.

Hi Wayne,

yes we are dealing with producing few hundred devices in factory. but we want to add ssd support to expand the disk. becuase our rootfs is bigger.

your above link seems requires mount the ssd on the host pc then copy the rootfs on the each ssd. this taking 10 mins or so based on our estimation. then after flashing we need plug the ssd back on to the Jetson nano board . am i understadning correctly ?

in reality, we dont release rootfs tar to the factory. we only release the mfi_jetson-nano-emmc.tbz2 then we use sudo ./nvmflash.sh --showlogs to flash the board.

Right now i hope nvmflash.sh can flash system.img to ssd instead of emmc to reduce the emmc space. and during the flash . the ssd should be inserted on jetson nano already. and host pc just need run the nvmflash.sh. does this mean the uboot need suppot ssd ?

Hi,

your above link seems requires mount the ssd on the host pc then copy the rootfs on the each ssd. this taking 10 mins or so based on our estimation. then after flashing we need plug the ssd back on to the Jetson nano board . am i understadning correctly ?

AFAIK, this is necessary and there is no alternative. Flash.sh cannot help you to flash the rootfs. It can only assign the rootdev as my previous comment to mmclk1p1 or sda1.

does this mean the uboot need suppot ssd ?

This is correct.

thanks Wayne,

how long does it take to add ssd support in uboot ? rough estimation okay.

Thanks

Hi,

Sorry. I didn’t reply your questions correctly.

  1. Uboot already supported ssd. At least SATA SSD is supported.
    In the post you said not helping you, we already running rootfs on SATA and uboot already able to load SSD.

  2. What doesn’t support is the “flash.sh” and even the software in bootloader (tegraboot) does not support to flash system.img to ssd or any other external storage. And we have no plan to implement it yet.

I am bit confused. You mentioned sudo ./flash.sh BOARD-NAME sda1” . My understanding is that sda1 is external ssd that mount on the host pc? Am i correct? What does this actually flash to ssd.

Also i am trying to see is there anyway we can handle this in the factory and faster.

Hi,

I am bit confused. You mentioned sudo ./flash.sh BOARD-NAME sda1” . My understanding is that sda1 is external ssd that mount on the host pc? Am i correct? What does this actually flash to ssd.

Sorry, this would not flash to ssd too. It is just telling the uboot the rootfs is mounted on “/dev/sda1” of your Nano.
As you could see the kernel cmdline in your Nano should have one parameters “root=/dev/mmcblk0p1”. This command is just to overwrite mmcblk0p1 to sda1.

This method is old. Actually, I am not sure if this can work on rel-32 or not.
Currently we definitely support the UUID method but I don’t know about this one.

This method could at least let you no need to check UUID of each SSD. But you still need to copy rootfs to each SSD manually.

Could you explain in step 4 what exact command yo copy rootfs to ssd? Is there a way to copy system.img. raw to ssd? Using dd?

strong text1). Create GPT and partition using gdisk on the external device
2). Get the UUID for the partition on the external device. For example, if the device partition is /dev/sda1, then execute …
$ sudo blkid /dev/sda1
/dev/sda1: UUID=“93A6-26BA” TYPE=“vfat” PARTLABEL=“Linux filesystem” PARTUUID=“018eff62-2d07-4ca5-8619-c30c18b0a181”
3). Write the PARTUUID shown from the previous command to the following file …
echo ‘018eff62-2d07-4ca5-8619-c30c18b0a181’ > bootloader/l4t-rootfs-uuid.txt
4). Copy the rootfs folder to your sdcard (/dev/sda1)
5). Flash the board: (external is for sdcard, usb and sata)
$ sudo ./flash.sh jetson-tx2 external

Hi terry8uwg2,

Please reference below steps to copy rootfs:

  1. Insert your pen drive into PC and check device in /dev/sdx
  2. Format the first partition
    $sudo mkfs.ext4 /dev/sdx1
  3. Mount the pen drive
    $sudo mount /dev/sdx1 /mnt
  4. Copy the root file system
    $cd rootfs/
    $sudo tar -cpf - * | ( cd /mnt/ ; sudo tar -xpf - )
    $sudo umount /mnt

(post withdrawn by author, will be automatically deleted in 24 hours unless flagged)

Hi wangbo,

Please check below three items:

  1. Pen drive PARTUUID is correct.
    $ sudo blkid /dev/sdx1
  2. Copy the correct PARTUUID in /Linux_for_Tegra/bootloader/l4t-rootfs-uuid.txt
  3. Flash:
    $ sudo ./flash.sh external

The Paruuid is correct:
bowang@PLS:~/nvidia/nvidia_sdk/JetPack_4.3_Linux_P3448-0020/Linux_for_Tegra$ sudo blkid /dev/sda1
/dev/sda1: LABEL=“64sdcard” UUID=“1fdd7db0-f6e8-4a0f-9425-a2d518c7194e” TYPE=“ext4” PARTLABEL=“sdcard” PARTUUID=“5aa1c44d-f53b-481c-8c80-c92eb3712c98”
The problem is that kernel cannot find the sdcard device.as you can see the result of command "blkid"in this picture below