Who is this for?

This learning path is for developers interested in learning how to deploy software (embedded applications and firmware) onto other processors in the system, using Linux running on the application core.

What will you learn?

Upon completion of this Learning Path, you will be able to:

  • Deploy a containerized embedded application onto an Arm Cortex-M core from an Arm Cortex-A core using containerd and K3s.
  • Build a firmware container image.
  • Build the hybrid-runtime components.

Prerequisites

Before starting, you will need the following:

  • A valid account with Arm Virtual Hardware
  • An Arm Linux host machine (if you want to build your own runtime and container image)

Summary

AI-assisted

This summary was drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
You’ll use a hybrid container runtime to deploy containerized firmware and embedded applications onto a Cortex-M target from a Linux-based Cortex-A host on Arm Virtual Hardware. First, you’ll set up the i.MX 8M Plus model, then run a sample workload with containerd using the io.containerd.hybrid runtime and confirm container state with containerd tooling. You’ll also learn about the hybrid-runtime OCI-compatible interface and install a single-node K3s configured to use containerd. By the end, you’ll have executed a Hello World firmware container and prepared K3s to deploy the SMARTER demo on an Arm-based hybrid edge system.

Frequently asked questions

AI-assisted

These FAQs were drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
Which Arm Virtual Hardware device should I create to follow the steps?
Create a device in the Default Project and select the i.MX 8M Plus model as shown in the setup step.
How do I confirm the Hello World container ran with the hybrid runtime?
After running the example with containerd, list containers with ctr c ls and check that the RUNTIME column shows io.containerd.hybrid and the test container is present.
What container image is used for the example workload?
The example uses ghcr.io/smarter-project/hybrid-runtime/hello_world_imx8mp:latest. The steps pull the image before running it with containerd.
Which container runtime does K3s use in this setup?
K3s is configured to use containerd via the container-runtime-endpoint flag set to unix://var/run/containerd/containerd.sock in the provided install command.
How long should the K3s installation take, and what should I do next?
The installation can take a few minutes. When the script completes without errors, continue with deploying the SMARTER demo as described.
Next