Skip to content

Qengineering/Jetson-Nano-Ubuntu-20-image

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 

Repository files navigation

Jetson Nano with Ubuntu 20.04 OS image

output image

output image

output image

A Jetson Nano - Ubuntu 20.04 image with OpenCV, TensorFlow and Pytorch

License

Update 9-17-2023.

  • Refresh Ubuntu 20.04.
  • Add WiFi support (#28).
  • Reduce xz archive.

Update 9-6-2023.

  • Added a new spilt image.

Update 7-15-2023.

  • Refresh Ubuntu 20.04.
  • Update OpenCV (4.8.0)
  • Update PyTorch (1.13.0)
  • Update TorchVision (0.14.0)
  • New: TensorRT (8.0.1.6)

Update 7-13-2023.

  • Added an installation wheel for TensorRT 8.0.1.6+cuda10.2. The version is synchronous with the C++ version found on the image. Newer versions of TensorRT require CUDA 11 or later, which is not supported on a Jetson Nano. (thanks to Teemu Heikkilä)

Tip 3-10-2023.

  • Connected to the net for the first time? Wait for the Software Updater and let it refresh your operating system.

Update 7-30-2022.

  • Added bare overclocked Ubuntu 20.04 image.

Update 7-26-2022.

  • Refresh Ubuntu 20.04
  • Update OpenCV (4.6.0)
  • Update PyTorch (1.12.0)
  • Update TorchVision (0.13.0)
  • New xz archive (size reduction of 26%)
  • New download site (Gdrive has a limited number of downloads per day).

Update 1-30-2022.


Installation.

  • Get a 32 GB (minimal) SD card to hold the image.
  • Download the image JetsonNanoUb20_3b.img.xz (8.7 GByte!) from our Sync.
  • Flash the image on the SD card with the Imager or balenaEtcher.
  • According to issue #17 only flash the xz directly, not an unzipped img image.
  • Insert the SD card in your Jetson Nano and enjoy.
  • Password: jetson
  • JetsonNanoUb20_3b.img.xz md5sum: D738F1FE20088A1BDBD10E2358B512F7

GDrive.

In some parts of the world it is difficult to get a good solid connection to Sync. That is why we've also provided a copy on Google Drive. However, Google Drive limits the number of daily downloads, which is much lower than our average daily download volume. Please be considerate and only use Google Drive if necessary.

Tip:

The SD card is overflowing with software; more than 21 GByte! With a 32 GB card, you don't have enough space to work decently.
Therefore, flash the image on an SD card of 64 or more. Then let GParted ($ sudo apt-get install gparted) enlarge the partition.


Split image.

Due to the large image (9.3 GB), the download may take quite some time. It makes downloading vulnerable.
That's why we split the file into smaller chunks. These are more manageable than one huge download.
If you prefer this partial download over one large one, download the following 14 files (700 MB each) and place them in one folder.

Once you have all the files run

7z x JetsonNanoUb20_3b.img.xz.001

7Z will start extracting the first file (*.001) and automatically the next files in order.
You will end up with JetsonNanoUb20_3b.img.xz, the original image which you now can flash on an SD card with Imager or balenaEtcher.

If you get the error '7z' is not recognized as an internal or external command, operable program or batch file. please give the full path to 7z. For instance,

"C:\Program Files\7-Zip\7z.exe" x JetsonNanoUb20_3b.img.xz.001

Bare image.

For those who want a bare-bones Ubuntu 20.04 OS with JetPack 4.6.1, without TensorFlow and PyTorch, you can download the image here (5.6 GB).
The Nano is overclocked at 1900 MHz. See https://qengineering.eu/overclocking-the-jetson-nano.html for more information.
By the way, the image with TensorFlow and PyTorch is not overclocked and runs at the regular 1479 MHz.

  • JetsonNanoUb20_bare.img.xz md5sum: DB4FC5A1B09876B37FF57F42540B3250 output image

ROS

If you plan to use this image with ROS, please look at JetsonNano-ROS2.
As you can see, Kalana Ratnayake, a PhD student in the Robotics and Artificial Intelligence Lab, part of the Faculty of Science and Technology at the University of Canberra has done a great job. Thanks. 👍


Archive.

The previous (7-26-2022) Ubuntu 20.04 image, with OpenCV 4.6.0, TensorFlow 2.4.1 and PyTorch 1.12.0 can be downloaded here - 7.9 GByte.
Or the split image:

The first (9-22-2021) Ubuntu 20.04 image, with OpenCV 4.5.3, TensorFlow 2.4.1 and PyTorch 1.9.0 can be downloaded here - 10.3 GByte.


Warnings.

  • Do not install Chromium as it will interfere with the Snap installation. Use the preinstalled Morzilla Firefox.
  • Corrupted lavapipe You may encounter a warning during booting that the lavapipe is broken.
    The solve the issue remove the /usr/share/vulkan/icd.d folder $ sudo rm -rf /usr/share/vulkan/icd.d
    See issue #173.

Upgrading.

You may encounter issues when upgrading ($ sudo apt-get upgrade) this Ubuntu 20.04 version. It has to do with a conflicting /etc/systemd/sleep.conf file, which blocks the upgrade. Follow the instructions on our website to resolve this issue.


Tips.

Use a tool like GParted sudo apt-get install gparted to expand the image to larger SD cards. We recommend a minimum of 64 GB. Deep learning simply requires a lot of space.

Many CUDA related software needs gcc version 8.
We have installed gcc and g++ version 8 alongside the preinstalled version 9.
You can select your choice with $ sudo update-alternatives --config gcc and $ sudo update-alternatives --config g++.

output image


SSD

You can use an external SSD USB drive holding your Ubuntu 20.04 OS and other software. Please follow the steps given at issue 32.


Pre-installed software.

Clicking on the links below will direct you to our installation guide.

Tensorflow 2.5 and above, just like PyTorch 2.0, requires CUDA 11. CUDA version 11 cannot be installed on a Jetson Nano due to incompatibility between the GPU and low-level software.

image
image
image


VNC.

Ubuntu 20.04 supports VNC. Please follow the next steps to enable it.
BTW, images are taken from the Jetson Orin, but they are identical on the Jetson Ubuntu 20
VNC_1
VNC_2
VNC_3
VNC_4
The last step is lowering the encryption level.

$ gsettings set org.gnome.Vino require-encryption false

On your client please uncheck the Authenticate boxes.
image


Headless.

If you want a headless installation of Ubuntu 20.04, please follow the next commands.

sudo chown root:root / /lib
sudo apt purge ubuntu-desktop -y && sudo apt autoremove -y && sudo apt autoclean
sudo apt-get remove nautilus nautilus-* gnome-power-manager gnome-screensaver gnome-termina* gnome-pane* 
sudo apt-get remove gnome-applet* gnome-bluetooth gnome-desktop* gnome-sessio* gnome-user* gnome-shell-common
sudo apt-get remove zeitgeist-core libzeitgeist* gnome-control-center gnome-screenshot && sudo apt-get autoremove
sudo apt-get remove --purge libreoffice*
sudo apt-get remove libreoffice-core
sudo apt-get remove snapd lightdm cups chromium*

You end up with a headless OS consuming ~ 420 MB.
Below is a screen dump of Putty connected to the Jetson Nano running jtop.
330769059-52674244-cf3c-4ea1-a903-a1ed19719ce0


OpenCV + TensorFlow or TensorRT.

Importing both TensorFlow (or TensorRT) and OpenCV in Python can throw the error: cannot allocate memory in static TLS block.
This behaviour only occurs on an aarch64 system and is caused by the OpenMP memory requirements not being met.
For more information, see GitHub ticket #14884.

output image

There are a few solutions. The easiest is to import OpenCV at the beginning, as shown above.
The other is disabling OpenMP by setting the -DBUILD_OPENMP and -DWITH_OPENMP flags OFF.
Where possible, OpenCV will now use the default pthread or the TBB engine for parallelization.
We don't recommend it. Not all OpenCV algorithms automatically switch to pthread.
Our advice is to import OpenCV into Python first before anything else.

Please visit https://qengineering.eu/install-ubuntu-20.04-on-jetson-nano.html for more information.


paypal