Skip to main content

Installing Jetson Nano (OKdo)

The Okdo has a problem with the Jetson initial installation when using the auto installation method. Headless installation works.

  1. Burn the Jetson image (https://developer.nvidia.com/jetson-nano-sd-card-image) with Balena etcher.
  2. Insert the sd card into the jetson and power it up through the DC jack (be sure that the jumper to use DC jack power is connected).
  3. Connect the Jetson with USB to your computer.
  4. Use Putty to connect to the serial COM port of the Jetson. You will find the correct COM port by looking in Windows device manager. (https://www.forecr.io/blogs/installation/headless-installation-for-jetson-nano see the Windows section)
  5. Follow the installation wizard to the user set up page.
  6. Set name, username and password. For convenience and consistency within this project, we use knightec both as user and password.
  7. Set eth0 as primary interface.

Upgrading

If you want to upgrade the kernel, it's important that you mark systemd with hold. Otherwise many parts of the system breaks. You should still be able to ssh into it, but no graphical interface or usb devices will be available.

sudo apt update
sudo apt-mark hold systemd
sudo apt upgrade

SSH Connection

You can connect via ssh with:

ssh username@192.168.0.22

This IP address might be different in your case. If you have ssh enabled on your command line. Otherwise you can use the free software Putty.

Installing Programs

VNC Server

This guide will help you set up Vino, the GNOME default VNC server, on your Jetson Nano using SSH.

Prerequisites

  • Jetson Nano with GNOME
  • SSH access to the Jetson Nano
  • A VNC client on the remote machine

Setting up Vino

You may need to start up the jetson with HDMI connected. (Verification needed). Replace YourPassword with the password of your choice. This will be used when you log in via VNC.

cd /usr/lib/systemd/user/graphical-session.target.wants && \
sudo ln -s ../vino-server.service ./.
gsettings set org.gnome.Vino prompt-enabled false && \
gsettings set org.gnome.Vino require-encryption false && \
gsettings set org.gnome.Vino authentication-methods "['vnc']" && \
gsettings set org.gnome.Vino vnc-password $(echo -n 'YourPassword' | base64)

Auto Login Setup

Edit the GDM Configuration

You will need to edit the GDM custom configuration file to enable automatic login for your desired user:

sudo nano /etc/gdm3/custom.conf

Add these lines to specify the user for automatic login:

[daemon]
AutomaticLoginEnable = true
AutomaticLogin = username

Replace username with the username of the account you want to log in automatically.

Configure Virtual Screen

You need to configure a virtual screen to get a good resolution on the VNC server:

sudo apt install nano
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup
sudo nano /etc/X11/xorg.conf

Paste this at the bottom of the file:

Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Device "Tegra0"
SubSection "Display"
Depth 24
Virtual 1422 800 # Modify the resolution by editing these values
EndSubSection
EndSection

Save the file (CTRL + O, Enter) and exit (CTRL + X).

Restart the System

To apply the changes, restart the system:

sudo reboot

Connecting from a Remote Machine

On your remote machine, open your VNC client. Connect using the Jetson Nano's IP address. When prompted, enter the password you set earlier.

Alternative: TightVNC Server

Alternatively, you can set up TightVNC Server on Jetson Nano and connect using RealVNC Viewer. This is often preferred by some users. For detailed instructions, refer to the TightVNC setup guide.

Qt Creator on Jetson

Sometimes the need to debug on the target platform arises. The debug tool gives some unnecessary warnings when debugging on Jetson. To remove them:

  1. Start QtCreator
  2. Go to Tools -> Options -> Debugger -> Locals & Expressions
  3. Add the following in the text field "Debugging Helper Customization":
handle SIGSTOP nostop nopass noprint
handle SIGINT nostop nopass noprint