Pantavisor vs Yocto — complementary, not competitive
The short answer: use both
Pantavisor is not a Yocto alternative — it's a Yocto companion.
If you're already using Yocto to build embedded Linux images, you don't need to
replace it. Pantavisor provides a Yocto layer
(meta-pantavisor) that adds container orchestration, atomic OTA
updates, and fleet management to your existing Yocto-built firmware.
What each tool does best
| Task | Yocto | Pantavisor |
|---|---|---|
| Build kernel & drivers | ✅ Best-in-class | — |
| Create BSP for new hardware | ✅ Best-in-class | — |
| Generate toolchain | ✅ Best-in-class | — |
| Base rootfs creation | ✅ Best-in-class | — |
| Container orchestration | ❌ Not designed for | ✅ Purpose-built |
| Atomic OTA updates | ⚠️ Bolt-on (Mender, SWUpdate, RAUC) | ✅ Built-in |
| Fleet management | ❌ Not included | ✅ Pantahub (open source) |
| Signed system state | ⚠️ Image signing only | ✅ PVS over state JSON |
| Independent app updates | ❌ Requires full rebuild | ✅ Update a single container |
| Kernel as a container | ❌ No | ✅ Yes (BSP container) |
The problem with Yocto alone
Yocto is excellent at building firmware, but on its own it has limitations:
- Monolithic updates — every change requires rebuilding and reflashing the entire image.
- Slow iteration — 30–60 minute build cycles for small app changes.
- Risky deployments — no automatic rollback if an update fails.
- No fleet visibility — managing thousands of devices requires external tools.
The solution: Yocto + Pantavisor
Two phases, two tools, one workflow:
Yocto phase — build once, rarely changes:
- Build the kernel + device tree for your board.
- Build the BSP container (kernel, modules, firmware).
- Compose the initial container set.
- Output: a full bootable
.wicimage with Pantavisor as PID 1.
Pantavisor phase — iterate fast, deploy often:
- Clone the device state with
pvr clone. - Compose / update / remove containers (
pvr app add|update|rm). - Sign and push (
pvr sig add,pvr commit,pvr post). - Pantavisor switches atomically and rolls back if any container fails its
status_goal.
How it works in practice
1. Build a Pantavisor-enabled image with Yocto
The fastest path is the KAS-driven build that ships in meta-pantavisor:
git clone https://github.com/pantavisor/meta-pantavisor.git
cd meta-pantavisor
# Builds BSP + Pantavisor + initial container composition into a flashable .wic
kas build kas/scarthgap.yaml:kas/machines/raspberrypi-armv8.yaml:kas/bsp-base.yaml
See Build with Yocto for the full guide.
2. Flash and boot
sudo pvflasher copy \
build/tmp-scarthgap/deploy/images/raspberrypi-armv8/pantavisor-starter-raspberrypi-armv8.wic \
/dev/sdX
On first boot the device can register with Pantahub and get a nickname.
3. Manage everything above the kernel with pvr
# Clone the device state
pvr clone https://pvr.pantahub.com/USERNAME/DEVICE_NAME my-device
cd my-device
# Add / update / remove containers
pvr app add wificonnect --from gitlab.com/pantacor/pvwificonnect:latest
# Sign, commit, push
pvr sig add --part wificonnect
pvr commit -m "Add wificonnect"
pvr post https://pvr.pantahub.com/USERNAME/DEVICE_NAME
With vs without Pantavisor
| Scenario | Yocto only | Yocto + Pantavisor |
|---|---|---|
| Update a Python app | Rebuild entire image (30–60 min) | Update container (2–5 min) |
| Deploy to 10,000 devices | Flash all devices | pvr post to the fleet |
| Update fails | Device bricked | Automatic rollback |
| Add a new service | Rebuild image | pvr app add |
| Team A updates kernel | Affects Team B's apps | Isolated container updates |
When to choose Yocto alone
- Your firmware is truly static (no app updates ever).
- You're building a single prototype.
- Your team has no container expertise.
- The hardware has very little storage.
When to add Pantavisor
- Faster iteration — update apps without rebuilding the entire BSP.
- OTA updates — deploy to devices in the field.
- Fleet management — manage many devices from one place.
- App composability — mix and match apps per product variant.
- Team independence — kernel team and app team work independently.
Key takeaway
Yocto builds the ship. Pantavisor loads the cargo and charts the course.
Use Yocto for what it's great at — building the BSP. Use Pantavisor for what it's great at — managing the dynamic parts of your system.
Next steps
- Build with Yocto — the meta-pantavisor build guide
- Develop applications — manage containers after the build
- meta-pantavisor on GitHub