# Qengineering's Jetson Nano Ubuntu 20.04 image: a prebuilt SD card image with OpenCV, TensorFlow and PyTorch

> The repository ships a ready-made Ubuntu 20.04 disk image for the Jetson Nano with OpenCV 4.8.0, PyTorch 1.13.0 and TensorRT 8.0.1.6 already installed, plus a bare overclocked variant. The trade-off is size: more than 21 GByte of software on a card that is meant to be 32 GB at minimum.

**Qengineering/Jetson-Nano-Ubuntu-20-image** — Jetson Nano with Ubuntu 20.04 image

- Repository: https://github.com/Qengineering/Jetson-Nano-Ubuntu-20-image
- Website: https://qengineering.eu/install-ubuntu-20.04-on-jetson-nano.html
- Stars: 984 · Forks: 100
- Language: Unknown
- License: BSD-3-Clause
- Published: 2026-09-10 · Updated: 2026-09-10 · Language: en
- Canonical page: https://hysenlabs.com/projects/qengineering-jetson-nano-ubuntu-20-image

## Why a prebuilt Jetson Nano image exists at all

Setting up a Jetson Nano for machine learning from a stock JetPack install is a long chain of source builds. OpenCV has to be compiled with CUDA and the right flags, PyTorch has to match the board's CUDA version, and TensorRT Python bindings have to line up with the C++ library already on the system. Qengineering's repository skips that chain by distributing a finished SD card image: Ubuntu 20.04 with OpenCV 4.8.0, PyTorch 1.13.0, TorchVision 0.14.0 and TensorRT 8.0.1.6 already present. The intended user is someone who wants to run an inference workload on the Nano this week rather than spend a weekend compiling. The README frames the image as the opposite of a minimal install, and that framing is honest: it is a working environment, not a clean one.

## What is actually inside the image, and how the pieces fit

The image is a full disk, not a package set. Flashing it writes Ubuntu 20.04, the JetPack 4.6.1 components, the Python wheels for the frameworks, and a desktop environment. The repository's top level holds only LICENSE, README.md and a single wheel, tensorrt-8.0.1.6-cp38-none-linux_aarch64.whl, which is the Python binding for the TensorRT version already on the image. The README notes that this wheel version is synchronous with the C++ version found on the image, and that newer TensorRT releases require CUDA 11 or later, which a Jetson Nano does not support. That is the central constraint of the whole project: the software stack is frozen because the hardware's CUDA generation is frozen. The overclocked bare image is the other variant. It carries JetPack 4.6.1 without TensorFlow or PyTorch and runs the Nano at 1900 MHz, while the full image runs at the regular 1479 MHz.

## Installing the image: download, flash, first boot

The README gives a short procedure. You need a 32 GB card at minimum, and the image file JetsonNanoUb20_3b.img.xz is 8.7 GByte. Flashing is done with the Raspberry Pi Imager or balenaEtcher. The README states that, given issue #101, the Imager sometimes works better than balenaEtcher, and that according to issue #17 you should flash the xz directly rather than an unzipped img. There is no install command for the image itself; the download is a file, and the work happens in the flashing tool. If you prefer to avoid one large transfer, the README splits the archive into 14 chunks of 700 MB.

```bash
7z x JetsonNanoUb20_3b.img.xz.001
```

Placing all 14 files in one folder and running that command makes 7-Zip extract the first chunk and continue through the rest automatically, leaving you with JetsonNanoUb20_3b.img.xz. On Windows, if 7z is not on the path, the README shows the full-path form:

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

After flashing, insert the card and boot. The default password is jetson. The README gives the md5sum of the full archive as D738F1FE20088A1BDBD10E2358B512F7, so you can check the download before writing it to the card.

## The 21 GByte problem and how to get your space back

This is the limitation the README itself leads with. The image is overflowing with software, more than 21 GByte, and on a 32 GB card there is not enough room to work. The recommended fix is to flash onto a 64 GB or larger card and grow the partition with GParted, which the README installs with a single command:

```bash
sudo apt-get install gparted
```

That is a real cost. You are buying a larger card than the board's documentation suggests, and you are resizing a filesystem before you can use the machine. There is also a maintenance cost that the README does not address: because the image is a snapshot, kernel and library updates arrive through Ubuntu's normal channels and can pull the system away from the versions the image was built around. The README's own tip for first boot is to wait for the Software Updater and let it refresh the operating system, which is fine for security patches but is not a framework upgrade path. If you need a newer PyTorch or TensorRT than the image ships, you are outside what this repository supports.

## The bare overclocked image, and when it is the better choice

Qengineering also publishes a bare image: Ubuntu 20.04 with JetPack 4.6.1, no TensorFlow and no PyTorch, 5.6 GB, with the Nano overclocked at 1900 MHz. Its md5sum is DB4FC5A1B09876B37FF57F42540B3250. This is the variant to pick if you have your own build scripts, if you need the extra clock speed more than you need preinstalled frameworks, or if you want to avoid the 21 GByte footprint. The difference in approach is not cosmetic. The full image gives you a working Python environment at the stock 1479 MHz; the bare image gives you a faster board and an empty stage. Overclocking also has thermal consequences that the README does not discuss, and it points to a separate page on Qengineering's site for details rather than covering them in the repository.

## Where this image is the wrong tool

If you are not on an original Jetson Nano, this repository does not apply. The related searches around Ubuntu 22.04 and 24.04 images reflect a real gap: the image is Ubuntu 20.04 because that is what the Nano's JetPack generation supports, and the README gives no path to a newer release. For a Jetson Orin Nano, or any board with a current JetPack, you want NVIDIA's own SD card images instead, because they track the newer CUDA versions that TensorRT 8.1 and later require. The same logic applies if you need TensorFlow specifically: the README mentions TensorFlow in the title and in the bare-image comparison, but the update notes only list version bumps for OpenCV, PyTorch, TorchVision and TensorRT, so the TensorFlow version on the image is not documented in the repository. If your project depends on a particular TensorFlow release, verify it after first boot rather than assuming.

## Licence and the upgrade question

The repository is BSD-3-Clause, and the LICENSE file sits at the top level alongside the README and the TensorRT wheel. That covers the repository contents. It does not relicense Ubuntu, JetPack, OpenCV, PyTorch or TensorRT, each of which carries its own terms, and the README does not attempt to summarize them. On upgrades: the image is a frozen snapshot, and the README's update log shows the maintainers refreshing Ubuntu and bumping framework versions on their own schedule, most recently in September 2023. The last push to the repository was on 2026-07-25, so the project has not been abandoned, but a new image release is not something you can trigger yourself. If a framework version on the image does not work for you, the practical options are the bare image plus your own build, or a different board. There is no documented rollback procedure for the image itself, because flashing a card is the rollback.

## Conclusion

Adopt this image if you want a Jetson Nano running Ubuntu 20.04 with OpenCV, PyTorch and TensorRT already in place, and if you can supply a 64 GB card and wait out a multi-gigabyte download. Do not adopt it if you need a small footprint, a current Ubuntu release, or a system you can rebuild from source when a package breaks. Before flashing, verify the md5sum D738F1FE20088A1BDBD10E2358B512F7 against the file you downloaded, and confirm your board is the original 4 GB Jetson Nano, since the repository does not describe support for the 2 GB variant.

## FAQ

### What is a Jetson Nano used for?

The repository treats it as a board for running CUDA-accelerated inference and computer vision: the image ships OpenCV, PyTorch, TorchVision and TensorRT, and the topics list CUDA, deep learning and TensorRT. It is a small, power-limited device for on-board machine learning rather than a general desktop.

### Is a Jetson Nano like a Raspberry Pi?

Both boot from an SD card image, and this repository's flashing instructions use the same Raspberry Pi Imager tool. The difference the repository reflects is the software stack: the image ships CUDA-based libraries such as TensorRT and PyTorch, which the README ties to the Nano's CUDA 10.2 generation.

### Is Jetson Nano obsolete?

The README does not make that claim, but it does state that newer versions of TensorRT require CUDA 11 or later, which is not supported on a Jetson Nano. The image therefore stays on Ubuntu 20.04 and TensorRT 8.0.1.6, and the repository provides no path to a newer Ubuntu release.

### Can a Jetson Nano run Windows?

This repository only distributes Ubuntu 20.04 images for the Jetson Nano, and the README documents nothing about Windows on the board. The only Windows-related instruction is running 7-Zip from a Windows machine to extract the split download.

## Sources

- [Issues](https://github.com/Qengineering/Jetson-Nano-Ubuntu-20-image/issues)
- [License: BSD-3-Clause](https://github.com/Qengineering/Jetson-Nano-Ubuntu-20-image/blob/main/LICENSE)
- [Project website](https://qengineering.eu/install-ubuntu-20.04-on-jetson-nano.html)
- [Qengineering/Jetson-Nano-Ubuntu-20-image on GitHub](https://github.com/Qengineering/Jetson-Nano-Ubuntu-20-image)
- [README](https://github.com/Qengineering/Jetson-Nano-Ubuntu-20-image/blob/main/README.md)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/qengineering-jetson-nano-ubuntu-20-image
