Pantavisor + Yocto: Build BSPs with Yocto, Manage Everything Else with Containers
Yocto Builds the Foundation, Pantavisor Manages the Future
If you’re already using Yocto to build embedded Linux images, you don’t need to replace it. Pantavisor empowers your Yocto workflow by adding container composability, atomic OTA updates, and fleet management — on top of the BSPs you already build.
The Yocto + Pantavisor Architecture
┌───────────────────────────────────────────────────────────┐
│ YOCTO BUILD PIPELINE │
├───────────────────────────────────────────────────────────┤
│ │
│ ┌────────────────────────────────────────────┐ │
│ │ meta-pantavisor (Yocto Layer) │ │
│ │ │ │
│ │ • Builds Pantavisor initramfs │ │
│ │ • Builds Pantavisor rootfs │ │
│ │ • Builds container images (pvr/pvrexport) │ │
│ │ • Integrates with your existing MACHINE/BSP │ │
│ └────────────────────────────────────────────┘ │
│ │
│ Output: Pantavisor-enabled BSP image (.pvrexport) │
└───────────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────────┐
│ PANTAVISOR RUNTIME & OTA │
├───────────────────────────────────────────────────────────┤
│ │
│ • Container orchestration (LXC-based, 1MB core) │
│ • Atomic OTA updates with automatic rollback │
│ • Composable firmware (apps, middleware, drivers) │
│ • Fleet management via PVR CLI or Pantahub │
│ • PVR-SDK for local REST API management │
│ │
└───────────────────────────────────────────────────────────┘What Yocto Does (Keep Doing This)
Yocto remains the best tool for:
- Building the kernel for your specific hardware
- Creating the BSP with device trees, drivers, and board support
- Generating the toolchain for cross-compilation
- Producing the base rootfs with your preferred distro
- Managing board-specific configurations via machine definitions
What Pantavisor Adds (The Missing Piece)
After Yocto builds your image, Pantavisor enables:
| Feature | What it means for Yocto users |
|---|---|
| Composable containers | Add/remove apps without rebuilding the entire Yocto image |
| Atomic OTA | Update any container independently — no full image flash needed |
| Automatic rollback | Failed updates revert automatically — no bricked devices |
| Fleet management | Manage 1 or 1,000,000 devices from a single interface |
| App store model | Deploy apps to devices like installing from an app store |
| Versioned states | Every device state is tracked and reproducible |
Step-by-Step: Yocto + Pantavisor Workflow
1. Add meta-pantavisor to Your Yocto Build
# Clone the Pantavisor Yocto layer
git clone https://github.com/pantavisor/meta-pantavisor.git
# Add to your bblayers.conf
echo "BBLAYERS += \"${PWD}/meta-pantavisor\"" >> build/conf/bblayers.conf2. Build a Pantavisor-Enabled Image
# Build a standard Yocto image with Pantavisor support
bitbake pantavisor-bsp
# Or build the appengine for testing
bitbake pantavisor-appengine3. Add Your Containers
# Add containers to your firmware composition
pvr app add --from https://gitlab.com/pantacor/pvwificonnect:latest wificonnect
pvr app add --from https://gitlab.com/pantacor/pv-platforms/alpine-connman:latest platform
# Commit the composition
pvr commit4. Deploy and Update
# Deploy to device
pvr post http://DEVICE_IP:12368/cgi-bin
# Later: update just the app container
pvr app update wificonnect --from https://gitlab.com/pantacor/pvwificonnect:latest
pvr commit && pvr postWhy This Approach Wins
Before Pantavisor (Yocto Only)
Change one app → bitbake entire image → flash entire image → test → deploy to fleet
↑ 30-60 min build ↑ risky ↑ downtimeAfter Pantavisor (Yocto + Pantavisor)
Change one app → build just the container → pvr post → atomic update → auto-rollback if fail
↑ 2-5 min build ↑ zero downtime ↑ safeReal-World Use Case: Industrial IoT Gateway
A company building industrial IoT gateways with Raspberry Pi Compute Module:
| Layer | Yocto | Pantavisor |
|---|---|---|
| Linux kernel 6.1 + RPi drivers | ✅ Yocto builds BSP | — |
| Busybox base system | ✅ Yocto rootfs | — |
| Pantavisor initramfs | ✅ meta-pantavisor | ✅ Runtime |
| Network manager (ConnMan) | — | ✅ Container |
| VPN (Tailscale) | — | ✅ Container |
| Modbus TCP adapter | — | ✅ Container |
| Edge ML inference | — | ✅ Container |
| Customer app | — | ✅ Container |
Result: Yocto handles the complex BSP build. Pantavisor handles the dynamic, updatable application layer. The team updates the edge ML model weekly without touching Yocto.
Key Phrases for Embedded Linux Developers
If you’re searching for:
- “yocto container integration” → meta-pantavisor is your layer
- “yocto ota updates” → Pantavisor provides atomic OTA on top of Yocto
- “embedded linux container orchestration” → Pantavisor orchestrates LXC containers
- “yocto fleet management” → Manage Yocto-built devices at scale
- “update yocto image without rebuild” → Update containers, not the full image
- “yocto alternative for app updates” → Keep Yocto, add Pantavisor for apps
Get Started
- meta-pantavisor on GitHub — The Yocto layer
- Build Pantavisor — Step-by-step build guide
- Quick Start Guide — Flash your first Pantavisor image
- PVR CLI Reference — Manage containers and OTA
FAQ
Q: Do I need to stop using Yocto?
A: No. Pantavisor is a Yocto layer (meta-pantavisor). You keep your existing Yocto workflow.
Q: Can I use my existing Yocto MACHINE definitions? A: Yes. meta-pantavisor works with any standard Yocto MACHINE.
Q: What architectures are supported? A: ARM, ARM64, x86, MIPS, RISC-V — anything Yocto supports.
Q: Is this production-ready? A: Yes. Pantavisor powers millions of devices worldwide.
Q: Can I update the kernel/BSP via Pantavisor? A: Yes. The BSP itself can be a container, or you can use Pantavisor’s A/B partition strategy for kernel updates.