Install NVMe SSD on NVIDIA Jetson AGX Developer Kit

It is a simple task to add a sea of gigabyte goodness to the Jetson Xavier using a NVMe SSD. Looky here:

Background

One of the nice additions to the Jetson AGX Xavier is a M.2 Key M slot. If you use a Jetson TX1 or Jetson TX2, you know that there is a M.2 Key E slot. The Key E slot is useful for adding functions such as wireless cards. However, by adding a M.2 Key M slot we can now add Solid State Disk (SSD) memory. The M.2 Key M slot uses the Non-Volatile Memory Express (NVMe) protocol that runs over PCIe. Note that when you install a SSD card in the slot, the card needs to be NVMe PCIe.

Materials and Tools

In the video, we install a Western Digital 500GB NVMe SSD. There are several different sizes and brands of these types of devices, people have reported good results with the Samsung variety. We also use our trusty iFixit Pro Tech Toolkit which contains a variety of useful tools for just this purpose.

The Southern California weather brought in Santa Ana winds during filming. The humidity is unusually low, around 15%. There seems to be a lot of static electricity hanging about, so it is time to break out the iFixit Anti-Static Mat. This helps keep the ESD dogs at bay. If in doubt when working on electronics (especially at the component level), the anti-static mat is your friend.

Hardware Installation

The M.2 Key M connector is on the top of the carrier board. You will need to detach the carrier board from the Jetson Xavier Module. This is a straightforward task. With a #2 phillips head screwdriver, remove the four screws that hold the standoffs to the Jetson module (the carrier board is sandwiched in-between). From the factory, the screws may have some blue thread locker on them, which may require a little elbow grease to start the removal process. Set the standoffs and screws aside.

Standoff Screws
Remove Standoff Screws

Next, carefully disconnect the carrier board from the module. Note that there is a wire connecting the module to the carrier board (this is for controlling the fan). The wire is relatively short and the connection is delicate. There is a 699 pin connector which joins the the Jetson module to the carrier board. As shown in the video, lift gently on the carrier board. The PCIe connector on the end of the carrier board can provide a little purchase, but you should not have to apply an excessive amount of pressure to break the connection.

When you feel/hear the pop of the disconnection, you should stop. Lift gently and find the wire connecting the carrier board to the module. The wire is not long enough to allow the carrier board to lay flat on a table surface when the Jetson module is in certain positions. As shown in the video, you can use something like a book to create a resting place for the carrier board. An alternative is to simply lay the Jetson module on its side, with the cable exiting on the bottom side.

Disassembled Xavier
Disassembled Xavier

You may want to disconnect the cable from the carrier board. You can use a pair of tweezers to help in the task. The connector is delicate, personally I would try to avoid doing that if possible.

A retaining screw is provided at the end of the M.2 slot. Remove the retaining screw. You then install the SSD card into the connector, and then use the retaining screw to hold it in place.

Xavier SSD Installed
Xavier SSD Installed

In this case, assembly is the reverse of disassembly. If you are using the Jetson Xavier in something like a robotics environment, you may want to put a dab of blue thread locker on the end of the standoff screws to help keep them secure.

Disk Configuration

After the hardware install, it is time to configure the disk under Ubuntu. Hook the Xavier back up to a keyboard, mouse and monitor. In the video above, we use mostly GUI tools, please refer to the video for a walk through.

The basic steps are to format the disk, and then create partition(s). In the video, we just allocate the entire disk space to one big ol’ partition. However you may want to be a little fancier. Being Linux, there are tools for doing this through the command line, as all the pros will tell you.

Mount Options

In the video, we didn’t cover much about the disk mount options. In the Disks application, you can access the mount options through the gear icon, “Edit Mount Options …”. This brings up a dialog. In the video, you’ll notice the “Mount Point” to put it politely, gibberish looking. It basically consists of a directory pointer (/media) followed by the UUID of the device. Of course the UUID is specific to the device.

If you’re not a big fan of accessing the device that way, you can rename it. For example, let’s say we want to refer to the disk from the root directory as “/XavierSSD500”. We edit the “Mount Options” to look like this:

Xavier Disk Mounting
Xavier Disk Mounting

and then click “Ok”. After rebooting, the disk will then be available through /XavierSSD500. For example:

$ cd /XavierSSD500

will switch you over to the SSD:

nvidia@jetson-0422818069391:/XavierSSD500$

Another Article on the Same Subject!

Here’s an article on how another Jetson Xavier owner goes through the process. Very nicely done. That article also covers some disk mount options, which you may find useful. Regardless of which method you use, the new SSD should show up on your desktop, and you can enjoy the sea of GB goodness!

Conclusion

For a little bit of money and about 15 minutes worth of work, you too can be swimming in the sea of gigabytes. It’s nice to have the disk always available, and not have to have external drives dangling precariously about.

2 Comments

  1. This video is clear and concise. All steps are well presented. Only one suggestion. The card went in easier when its end was lifted and inserted at an angle.

Leave a Reply

Your email address will not be published.


*