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 |
|---|---|---|
|
|
Provide the Python environment used by Zephyr tools. |
|
|
Provide the Zephyr source and build integration. |
|
|
Provide host tools and the Zephyr SDK bundle. |
|
|
Provide the x86 cross-compiler used by |
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:
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 |
|---|---|---|
|
Synchronize all west projects to the manifest revisions. |
$ workshop run zephyr-26-04 -- sync
|
|
Run west build from the Zephyr source directory. |
$ workshop run zephyr-26-04 -- build \
-b qemu_x86 samples/hello_world
|
|
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: