Jetson Nano — first steps

I recently bought a Jetson Nano B01 (the one with 4GB), it’s tiny, it’s versatile and it’s a lot of fun! Let’s get familiar with the device.

Specifications in a nutshell:

  • CPU: Quad-core ARM A57 @ 1.43 GHz
  • GPU: 128-core NVIDIA Maxwell™ GPU
  • Memory: 4 GB 64-bit LPDDR4 25.6 GB/s
  • Storage: microSD
  • Camera: 2x MIPI CSI-2 DPHY lanes
  • Connectivity: Gigabit Ethernet, M.2 Key E
  • Display: HDMI 2.0 and eDP 1.4
  • USB: 4x USB 3.0, USB 2.0 Micro-B
  • Others: GPIO, I2C, I2S, SPI, UART
  • Physical size: 100 mm x 80 mm x 29 mm

Let’s do the initial setup and breathe life into it! This guide was written using the latest Jetpack, 4.5.1.

Getting started

Be certain to check out what power supply you need (and don’t forget the J48 jumper!). A 5V/5A supply works fine, no blackouts or freezes. Please also check: https://forums.developer.nvidia.com/t/power-supply-considerations-for-jetson-nano-developer-kit/71637

Not typical, but you might experience that your very first boot fails. Two things are worth checking:

  • If you get nothing, but nothing on the screen: disconnect everything except the power supply and the monitor and reboot. Connect keyboard/mouse/network/etc after the device already booted up.
  • If you get the NVIDIA logo followed by a freeze, power the device down and make certain that the micro SD card is in good position: eject and re-insert it.

The wizard will guide you through the installation steps.

Making some room

We’ll say bye to Unity/GDM3 and switch over to LXDE/LightDM for that purpose. Log out or reboot the Nano and the next time you are about to type your password at the login screen, first click the settings/wheel icon and pick LXDE as the desktop environment. Type your password and log in.

Upgrade all packages from the terminal (LXTerminal in LXDE):

sudo apt update && sudo apt upgrade -y

Switch the display manager to LightDM (accept ‘OK’):

sudo dpkg-reconfigure lightdm

If you’d like, you could set non-graphical boot as below:

sudo systemctl set-default multi-user.target
# to revert:
sudo systemctl set-default graphical.target

Note that you can always bring up the graphical interface after you log-in on the text interface by typing ‘sudo lightdm’.

At the end of the process you’ll end up with a default memory usage of 230MB headless and 420MB when logged in.

LXDE doesn’t look too appealing at first, but it's highly customizable. There are nice guides on the topic, like this one: https://livingthelinuxlifestyle.wordpress.com/2019/10/05/how-to-configure-the-lxde-desktop-the-fast-and-easy-way/

Terminal shortcut

XRDP

sudo apt update && sudo apt install -y xrdp
echo "lxsession -s LXDE -e LXDE" > ~/.xsession

In the next article we’ll go through on how to manage Python environments and compile the latest OpenCV with CUDA and GStreamer support.

Sources used:

Zafer Arican: https://medium.com/@zafer.arican/how-to-save-1gb-ram-on-jetson-nano-8f135e8699a1

Deep learning and pinhole photography.