Deal with USB external drive as primary storage

Hello everybody,

I am here for some advice concerning the best way to set up my Jetson Xavier NX.

My goal is to gain skills in computer vision using multiple cameras and in this way I recently bought this board

However, I was surprised to find there is no additional storage (on the carrier board) than the 16GB of the module and no nVME or SD card connectors.

I got 14.7GB of available space on / and after removing some default libraries I get 4.4GB of remaining space.
It is not enough and I would install many libraries to work with like CUDA

So I have in mind 2 main solutions using an external storage drive :

  1. Set up docker environment on the external drive, creating a container and installing all the libraries in the volume attached.
  2. Change the default location of user packages to the external drive.

Question (1) : Concerning the 2nd solution, is it possible that my future programmes will run slower because of the time to access libraries on the external storage ?

In my mind using the 1st one seems to be more practical : working in a predefinite workspace and everything is located at the same place. I just have to start the container.

I tried implementing the 1st solution :

  • Fixing the mount point for my external drive to /media/nvidia
  • Editing /etc/docker/daemon.json to set up docker’s root directory to /media/nvidia/docker + adding default_runtime to nvidia-container-runtime
  • Following dusty_nv’s jetson-container to build the ML container

But when it comes to this 3rd step, I got an error due to libcurand.so.10 not found.

So here are my Questions (2) : What are your opinion about these 2 solutions ? Do am I doing right ? Do you have better ones ? Should I use another base image ?

Thank you for help.
Loupdmer

Hi,

Do you have CUDA pre-installed?

Please check the below comment to see if it helps first:

Thanks.

Hi,

I get some CUDA pre-installed but not libcurand.so.10
I tried installing it but it requires cuda-toolkit-10.2 which is too large for my system.

Thanks for your reply,

Hi,

Please check if the recommendation in our FAQ can meet your requirement or not.

https://forums.developer.nvidia.com/t/jetson-xavier-nx-faq/159463

Q: My Xavier NX is with emmc and 16GB is a bit insufficient. Any suggestion?

Thanks.

Hi,

I saw this topic when investigating to my 2nd solution.
It is because I had few remarks about this way to do, in addition to the first solution that I came to ask for help.

My remarks :

  • I don’t have the flash.sh on the platform but I guess I can access it with the SDK manager.
  • I get a custom device tree with this board but I think I could copy the current image with this tutorial ?

According to your answer, I guess you suggests me to try with the 2nd solution ?

Hi,
We would suggest move rootfs to external storage such as NVMe SSD. It will have more freespace and is a better environment for developing TensorRT or DeepStream SDK use-cases.

1 Like

Thank you for your help, I will try this solution