Jetpack or Yocto? Why We Switch for Hundreds of Field Devices

Gradion EdgeAI ·

NVIDIA Jetpack is excellent for getting started. Flash a Jetson module, get a working Ubuntu with all NVIDIA libraries, and within an hour the first inference script is running.

For a prototype, that is sufficient. For hundreds of devices in the field that need to run reliably for years, it is not. The ARGOS project reached exactly this point — and the decision was made to migrate from Jetpack to a custom Yocto distribution.

The Comfort Zone: Jetpack Works — Until It Does Not

The ARGOS traffic monitoring system initially ran on Jetpack 5.1.5, NVIDIA’s L4T distribution based on Ubuntu. For the Jetson NX, it was the right decision: well-documented, quick to deploy, compatible with the entire NVIDIA toolstack.

So why switch? Three concrete reasons — and the most important one is not technical but legal.

GPLv3 License Compliance

Jetpack contains over 30 packages under GPLv3 licenses. GPLv3 explicitly requires that users be able to install modified software on the device — incompatible with a locked-down embedded device in public space.

For a commercial product, this is not a preference — it is a legal blocker. Yocto solves this through license filtering (LICENSE_FLAGS_ACCEPTED) and alternative packages.

Bloated Image

Jetpack ships a complete Ubuntu desktop stack — including tools like LibreOffice and other desktop applications that have no place on a traffic sensor. This wastes:

  • Storage space on the embedded device
  • Bandwidth for OTA updates over LTE
  • Security through a larger attack surface

End-of-Life Risk

Jetpack 5 is the last version supporting the Jetson NX. NVIDIA’s timeline for security updates after end-of-life remains unclear.

For hundreds of units in public space, that is not an acceptable uncertainty — particularly in the context of the Cyber Resilience Act (CRA), which requires vendors to deliver updates for the base system.

What Yocto Brings — and What It Costs

Yocto is not an operating system; it is a build system for custom Linux distributions. Instead of deploying a complete Ubuntu, the result is exactly the system the device needs.

The Concrete Benefits

Smaller system. With Yocto, every component in the image is under control. The result: a system image smaller by orders of magnitude, and OTA updates that contain only what has actually changed. For devices updating over LTE, this translates directly to cost savings.

Granular control. Which packages are installed, which services run, which kernel modules load — all defined. And crucially: controlled licenses. Yocto provides integrated license filtering via LICENSE_FLAGS — GPLv3 packages are systematically excluded.

Reduced memory footprint. A Yocto-based distribution can reduce the memory footprint compared to Ubuntu by several gigabytes. On an embedded system with limited RAM, this is relevant.

Independence. If NVIDIA discontinues support, the project is not blocked. With Yocto and meta-tegra, security patches can be applied independently.

The Effort Is Real

The initial setup of a Yocto distribution for Jetson is substantial. The meta-tegra layer must be correctly integrated, CUDA libraries must be properly packaged, and build times are long. This is not a weekend project — but for professional deployment, it is essential.

Docker Removed — Despite NVIDIA’s Recommendation

In ARGOS v1, Docker was used at the application level — six containers orchestrated with docker-compose.

In the Yocto-based v2, Docker was removed entirely from the system. The reason: NVIDIA’s L4T base containers contained the same GPLv3 license issues as Jetpack itself. Keeping Docker would have merely shifted the license problem from the OS level to the container level.

This contradicts NVIDIA’s recommendation. But license compliance is non-negotiable for a commercial embedded product.

Application components in v2 run as native services, managed through systemd and supervisord.

The Decision Is Not Technical — It Is Operational

Whether Jetpack or Yocto is the right choice depends not on technology but on the deployment scenario:

  • 5 devices in the lab? Jetpack, without question.
  • Hundreds of devices in the field, years of operation, LTE updates, security requirements? A custom distribution is unavoidable.

For ARGOS, the decision was clear. The GPLv3 license situation alone would have forced the switch — the combination with the bloated image, fleet size, and end-of-life risk made it urgent.

Conclusion

Jetpack is the right starting point for Jetson projects. But when a product goes to field deployment, Yocto becomes a necessity for two reasons:

  • GPLv3 license compliance is a hard legal constraint for commercial embedded devices
  • Operational control — a system that must run in the field for years needs the control that only a custom distribution provides

About Gradion EdgeAI: Gradion EdgeAI takes Edge AI products from prototype to production — with deep NVIDIA Jetson expertise, production-hardened architecture, and the reliability of a 600-engineer organization. Discuss your project.

Have an Edge AI project?

Let us discuss how to take your project from prototype to production.

Discuss your project