Jetson Orin Nano Developer Kit - Boot from NVMe

Setting up Jetson Orin Nano Developer Kit to boot from NVMe.
This setup is especially useful, if you PC/Laptop doesn’t have a USB 2.0 or if you dont want to go and buy a new Laptop just to setup your Jetson.

Hi All, I’ve figured it out on how to use SDK Manager from a Oracle Virtual Box (running on Windows 10), and i believe the same would be true for Mac OS (Run virtualbox as sudo to access USB).

The issue: SDK Manager and Jetson Orin Nano Developer Kit doesn’t support USB 3.x (image below). Irrespective if the SDK Manager is run on Linux natively or using a Virtual Machine, this looks like Jetson hardware limitation and applies only when installing the Tegra OS.

Steps to boot from NVMe, and some key considerations.
NVMe consideration - Jetson Orin Nano only supports PCIe 3 NVMe card, so don’t waste your money on a PCIe 4. Which would work but only at PCIe 3 speeds.
Note: I’ve used Samsung 980 NVMe M.2 SSD 550GB from Amazon, and i believe is the right price for max speed you can get on Jetson Nano.

Now to the actual setup:

  1. Assuming you have a Windows or a Mac, with Virtual Box installed. Following that create an Ubuntu 20.04 VM with a Virtual Disk the size of 120GB (This is very important). When setting up USB controller only USB 3.0 (xHCI) controller worked for me and got no detection from USB 2.0 or 1.1. If USB 2.0 controller workes for you and Ubuntu can detect your device, then you should be able to skip steps 4 onwards.

  2. Download and Install NVIDIA SDK Manager from nvidia website.

  3. Ensure you have installed the NVMe M.2 SSD in the right slot :)

  4. Ensure the jumper pin or cable is in the right spot. Note: Prior to creating the first forum post, i’ve used pins 9 and 10 of the GPIO pins (pins behind USB port). However the right pins are on J14, neatly tucked under the Jetson Orin Nano board (i.e. the daughter board). The below popup will showup as soon as you power up the board.

  5. When you connect the board to the Virtual Box, you will need to allow 2 USB filters as per the image below. The first NVIDIA Linux for Tegra [0002] is the default when the board is running Linux, while the second NVIDIA Corp. APX [0401] is used when the board is in Forced recovery mode only. NOTE: you will only be able to add NVIDIA Corp. APX [0401] to the USB filters only when the board is in the Forced recovery mode.

  6. Now, start the board (with the jumper pin or cable in), and make sure the SDK Manager recognizes the board is in recovery mode. This can be validate as the SDK Manager will present option to either choose Jetson Orin Nano Model or the Developer Kit.

  7. Manual Setup, as USB 3.0 is the only option and the Automatic setup doesn’t support USB 3.0. We need to use Manual Setup and as Jetson is booted in Forced recovery model select Manual Setup and continue the installation process.

  8. Complete the installation on the SDK Manager, remove the jumper pin. and you should be good to go. NOTE: make sure no other software on your Windows 10 is interfering with the setup. In my case Symantec endpoint protection was trying to encrypt the files between my VM and the Board.

3 Likes