Skip to main content

Ubuntu is a fast path to “it runs.” Qualcomm Linux (QLI) is a Yocto-based embedded Linux distribution for Qualcomm hardware. Its reference distributions, metadata layers, recipes, and example code can help a customer build and maintain its own device software. That distinction matters. Ubuntu gives developers a short route to SSH, apt, pip, Python scripts, AI Hub downloads, LiteRT tests, GenieX, and quick iteration on a Dragonwing EVK. A team that chooses a Yocto-based system takes on a different kind of work:
This post describes one possible transition from standard Ubuntu to a Yocto-based system using QLI. It does not present QLI as the only production path, a finished customer product image, or software that Qualcomm operates and maintains on a customer’s behalf. Qualcomm maintains parts of the platform, including Qualcomm-specific kernel and hardware-enablement work, but the customer remains responsible for selecting, adapting, integrating, validating, securing, updating, and maintaining its resulting product software. This post is not a replacement for the Qualcomm Linux setup docs. Use the official Dragonwing Linux pages for flashing, board setup, software updates, and device-specific details: The migration question here is narrower: after the Ubuntu EVK demo works, what has to be revalidated when moving to a customer-maintained Yocto-based system built with QLI resources? In the running case study, this is the same smart-camera bundle from Post 6 adapted from an EVK demo into a versioned customer image. Before you start:

The two milestones

A Qualcomm migration has two different success milestones.
The common mistake is treating Milestone 1 as Milestone 2. A demo proves feasibility; a customer-maintained software candidate requires repeatable builds, validation, security processes, and an explicit maintenance owner. QLI reference code does not transfer those responsibilities to Qualcomm.

Why Ubuntu is useful early

Ubuntu is a strong Day 0 and development environment because it optimizes for developer speed:
That is exactly what you want when the open questions are:
For prototypes, lab demos, internal tools, and evaluation, Ubuntu may be the right place to stay for a while.

Why a customer might choose QLI resources

QLI is a Yocto-based embedded Linux distribution for Qualcomm hardware. The Dragonwing docs describe a curated stack and provide reference distributions, layers, recipes, setup guidance, and hardware enablement for areas such as AI, GPU, DSP, camera, and multimedia. The documentation calls QLI production-oriented; that describes its design goal, not a transfer of product ownership or maintenance responsibility from the customer to Qualcomm. That can help a customer assemble a product-software candidate: The point is not that Ubuntu is “wrong,” and QLI is not a mandatory destination. The customer may remain on Ubuntu, build with QLI, or choose another OS strategy appropriate for its hardware and product. The decision depends on the customer’s requirements, maintenance model, security process, compliance obligations, and support arrangements.

What should be proven before moving

Moving too early makes every problem look like an OS problem. Moving too late lets prototype assumptions leak into the product. A good transition point is when these are true on the EVK:
At that point, the migration question changes from “can this run?” to “can this run repeatedly on product software?”

What changes during the move

The app should not change much. The environment around it will. The safest approach is to keep the app contract stable while the OS changes.

Revalidate runtime packages and artifacts

AI runtime artifacts are tied to more than the model. Record the exact matrix:
Rebuild or at least revalidate when any of these change:
For QNN/QAIRT context binaries, assume target sensitivity. The safer practice is to regenerate and validate for the customer’s selected OS/BSP/runtime combination instead of debugging a stale binary for two days. The customer owns that rebuild and validation process.

Turn the demo into a bundle

On Ubuntu, a demo might live in a home directory:
For QLI, make the runtime bundle explicit:
Example manifest fields:
That manifest is boring on purpose. When a field issue appears, boring is excellent.

Make it a service

A terminal command is fine for Day 0. A product needs a process model. A minimal service contract:
A small systemd shape might look like:
Keep the service wrapper thin. The app should own health and clear error messages; the supervisor should own restart policy.

Re-run the Day 0 checks on the QLI-based image

From Post 2, carry forward the same sanity checks:
This avoids a common trap: debugging the custom app before proving the base runtime on the new OS image.

Sustained validation beats peak numbers

Product validation should include the boring run, not just the exciting benchmark. Run the app long enough to catch:
Suggested gates: Peak FPS is useful. Sustained behavior is what ships.

Plan update and rollback early

If the product contains AI, we recommend planning for updates early. Models change. Thresholds change. Runtime packages change. Security fixes happen. Define what can update independently:
Then define rollback triggers:
A customer-maintained Yocto/QLI system can give the team a more controlled foundation for this kind of product update story than a loose development image, provided the customer owns and operates the build, security, and update process. Security and update details do not need to be elaborate in the first product candidate, but they should be explicit. Regulations such as the EU Cyber Resilience Act can impose lifecycle, vulnerability-handling, and update obligations on products with digital elements. The customer’s legal and security teams must determine which requirements apply and make sure the product organization—not an unmodified reference distribution—is assigned responsibility for meeting them.

Customer-maintained system checklist

Before a demo becomes a product candidate:

Migration ledger for the smart-camera case study

Close the migration by recording what each Jetson piece became on Dragonwing: Measurement status should be explicit. If the lab run is not done, say so instead of implying results:

Takeaway

An Ubuntu EVK demo is a useful first milestone. It proves the model, runtime, and application shape quickly without predetermining the customer’s final OS strategy. If the customer chooses QLI, its distribution, layers, recipes, and reference material can support this transition, but they do not turn a demo into a product automatically. The customer’s engineering organization must turn those inputs into a controlled product candidate: a versioned OS, pinned runtimes, reproducible bundles, service management, sustained validation, and an update story. Keep the application contract stable, rebuild or revalidate target-sensitive artifacts, and make every version visible. Most importantly, assign ownership for OS maintenance, vulnerability response, updates, rollback, and applicable regulatory/compliance work. That is the path from “it runs” to a customer-maintained product candidate.