Skip to main content
Version: 029-rc4

Building

With a platform and machine file in place, you can build the Pantavisor image and flash it to the board.

Running the Build

All builds run through kas-container, a Docker wrapper that provides a reproducible Yocto environment without requiring a local Yocto toolchain install.

Option A — Interactive Menu

kas menu Kconfig opens a menu-driven configuration interface:

./kas-container menu Kconfig

Walk through the prompts:

  1. Build Type: Choose singleconfig (or multiconfig for separate initramfs and container builds; appengine / appengine-custom build the Docker-based appengine instead of a BSP image).
  2. Codename: Select the Yocto release — scarthgap (primary, CI-tested) or kirkstone (supported).
  3. Build Target:
    • pantavisor-starter — Minimal image with networking, Wi-Fi, and the pvr-sdk container pre-installed.
    • pantavisor-remix — Same base, but lets you choose which containers to pre-install.
    • pantavisor-bsp — BSP-only image (no pre-installed containers).
  4. Machine: Select your target from the list — your new machine file should appear here.

After saving the configuration, the build starts automatically, or run it manually:

./kas-container build .config.yaml

Option B — Direct Config

Build directly with a known config without the menu:

./kas-container build kas/machines/verdin-imx8mm.yaml:kas/scarthgap.yaml:kas/bsp-base.yaml:kas/build-configs/build-base-starter.yaml

The colon-separated fragments are merged by KAS in order. This is the same format used in .github/machines.json.

For the general build workflow (worktrees, build modes, targets, smoke tests), see Get started with meta-pantavisor.

Build Output

Artifacts land in:

build/tmp-scarthgap/deploy/images/<machine>/

Key files:

ArtifactDescription
*.wic / *.wic.bz2Flashable disk image (SD card or eMMC)
pantavisor-initramfs-*.cpio.gzPantavisor initramfs
*.pvrexport.tgzPantavisor container export bundles
*.manifestPackage list for the image

Flashing the Image

pvflasher is Pantacor's cross-platform flashing tool. It handles .wic and .wic.bz2 images without manual decompression and verifies the write with SHA256.

# Install
curl -fsSL https://raw.githubusercontent.com/pantavisor/pvflasher/main/scripts/install.sh | bash

# List candidate target devices
pvflasher list

# Flash
pvflasher copy pantavisor-starter-verdin-imx8mm.wic.bz2 /dev/sdX

Replace /dev/sdX with your SD card or eMMC device.

dd (alternative)

# Decompress first
bunzip2 pantavisor-starter-verdin-imx8mm.wic.bz2

# Write — double-check of= before running
sudo dd if=pantavisor-starter-verdin-imx8mm.wic of=/dev/sdX bs=4M conv=fsync status=progress

Warning: dd overwrites the target without confirmation. Verify your device path with lsblk first.

Board-Specific Flashing

Some boards use special flashing utilities instead of SD card:

Board familyTool / method
Toradex Verdin / Colibripv-flash-bundle — self-contained UUU bundle, no Tezi
NXP i.MX (Variscite)uuu (Universal Update Utility)
RockchipSD card via Maskrom-disabled boot
Raspberry PiSD card always; all RPi variants supported by rpi.yaml multi-kernel build

See the install guides for details: SD card, pv-flash-bundle, NXP uuu, and the supported boards overview.