Workshop environment

The Zephyr 26.04 LTS Workshop is the standard development environment. It combines SDKs from the SDK Store into one environment. The Workshop uses the ubuntu@26.04 base.

SDK selection

SDK

Channel

Purpose

uv

latest/stable

Provide the Python environment used by Zephyr tools.

zephyr

26.04/stable

Provide the Zephyr source and build integration.

zephyr-sdk-ng

26.04.0/stable

Provide host tools and the Zephyr SDK bundle.

zephyr-amd64

26.04.0/stable

Provide the x86 cross-compiler used by qemu_x86.

The definition connects the Python environment, SDK bundle, and x86 toolchain to the zephyr SDK. The Workshop mounts the project at /project, and the writable Zephyr source is at /project/zephyr.

Each SDK entry pins one channel. To find other versions and channels an SDK publishes, follow How to find other SDK versions.

Definition

Use this definition for a Zephyr 26.04 LTS workspace:

.workshop/zephyr-26-04.yaml
name: zephyr-26-04
base: ubuntu@26.04
sdks:
  - name: uv
    channel: latest/stable
  - name: zephyr
    channel: 26.04/stable
  - name: zephyr-sdk-ng
    channel: 26.04.0/stable
  - name: zephyr-amd64
    channel: 26.04.0/stable
connections:
  - plug: zephyr:venv
    slot: uv:venv
  - plug: zephyr:sdk-ng
    slot: zephyr-sdk-ng:sdk-ng
  - plug: zephyr-sdk-ng:amd64
    slot: zephyr-amd64:toolchain
actions:
  sync: |
    west update "$@"
  build: |
    source /var/lib/workshop/sdk/zephyr/venv/bin/activate
    cd /project/zephyr
    west build "$@"
  flash: |
    source /var/lib/workshop/sdk/zephyr/venv/bin/activate
    cd /project/zephyr
    west flash "$@"

Store the definition in the project repository. Do not store .workshop.lock in the repository.

Actions

Action

Purpose

Example

sync

Synchronize all west projects to the manifest revisions.

$ workshop run zephyr-26-04 -- sync

build

Run west build from the Zephyr source directory.

$ workshop run zephyr-26-04 -- build \
  -b qemu_x86 samples/hello_world

flash

Run west flash from the Zephyr source directory.

$ workshop run zephyr-26-04 -- flash

Host interfaces

The base definition does not grant access to host devices. The host devices required for flashing vary by board and runner. For example, a serial runner can use a tty device, while a debug probe can expose a different subsystem.

Declare narrowly scoped custom-device plugs in an in-project SDK. Use the device subsystem along with any vendor and product IDs reported by the host. Workshop does not connect custom-device plugs automatically because they grant access to host hardware. Follow How to access hardware from Workshop for the procedure.

Some runners, such as jlink and nrfutil, also call a vendor tool that the SDK bundle does not provide. Package the tool in an in-project SDK, as described in How to add vendor tools to Workshop.

See also

Tutorial:

How-to guides:

Explanation: