Applies to version: v1.6.0+
This Isar layer contains recipes, configuration, and other artifacts specific to the Debian-based IOT2050 product. It is accompanied by a lean core BSP and modular, opt-in layers plus KAS fragments for feature and variant enablement (e.g., Node-RED, examples, SM, Hailo AI, etc.).
For the complete architecture rationale and migration guide, see: layer-architecture.
Before building the system, you will need to install Docker on the build host. For example, under Debian Linux:
sudo apt install docker.ioIf you want to run Docker as a non-root user, you need to add your user to the
docker group:
sudo usermod -aG docker $USER # may need to re-login afterInteractive menu:
./kas-container menuOr use kas-container build:
# Example image (includes demos, Node-RED, SM)
./kas-container build kas-iot2050-example.ymlMore composition patterns: build-config Β§3
After the build completes, the final image is located at:
build/tmp/deploy/images/iot2050/iot2050-image-example-iot2050-debian-iot2050.wic
To clean the build result:
./kas-container --isar cleanFor a more detailed reference, please visit build-config.
Under Linux, insert an unused SD card. Assuming the SD card is assigned the
device /dev/mmcblk0, use dd to copy the image to it. For example:
sudo dd if=build/tmp/deploy/images/iot2050/iot2050-image-example-iot2050-debian-iot2050.wic \
of=/dev/mmcblk0 bs=4M oflag=syncAlternatively, install the bmap-tools package and run the following command,
which is generally faster and safer:
sudo bmaptool copy build/tmp/deploy/images/iot2050/iot2050-image-example-iot2050-debian-iot2050.wic /dev/mmcblk0The example image starts with the IP 192.168.200.1 preconfigured on the first
Ethernet interface and uses DHCP on the other. You can use SSH to connect to
the system.
The BSP image does not configure the network. If you want to SSH into the
system, you can use the root terminal via UART to configure the IP address
using ifconfig and then connect via SSH.
NOTE: The default username is root. You are required to change the
default password upon first login.
During the very first boot of the image from an SD card or USB stick, you can request installation to the eMMC. To do this, press the USER button while the status LED is blinking orange during that first boot. Hold the button for at least 5 seconds to start the installation.
NOTE: All content on the eMMC will be overwritten by this procedure!
The ongoing installation is signaled by a fast-blinking status LED. Wait for several minutes until the LED stops blinking and the device reboots to the eMMC. You can safely remove the SD card or USB stick at that point.
The installation can also be triggered automatically by creating the file NOTE: All content of the eMMC will be overwritten by this procedure!
The ongoing installation is signaled by a fast blinking status LED. Wait for several minutes until the LED stops blinking and the device reboots to the eMMC. You can safely remove the SD card or USB stick at that point.
The installation can also be triggered automatically by creating the file
/etc/install-on-emmc on the vanilla image by mounting it under Linux and
executing, e.g., touch <mountpoint>/etc/install-on-emmc.
Starting from V01.05.x, the updated firmware tarball is integrated into the
/usr/share/iot2050/fwu/ directory by default. To update the U-Boot firmware,
execute the following command:
iot2050-firmware-update /usr/share/iot2050/fwu/IOT2050-FW-Update-PKG-<Version>.tar.xzBy default, the boot loader will pick the first bootable device. If that device may no longer fully start, you can select an alternative boot device in the U-Boot shell. Attach a USB-UART adapter to X14, connect it to a host PC and open a terminal program on that port. Reset the device and interrupt the boot when it counts down ("Hit any key to stop autoboot"). Then type
=> setenv boot_targets mmc0
=> run distro_bootcmdto boot from the microSD card. Use usb0 for the first USB mass storage device.
NOTE: This selection is not persistent. The boot loader will fall back to its default boot order after reset.
Legend: β = implicit / already included in example image & SWUpdate images, β = optional fragment, π§© = descriptor (top-level KAS file)
| Type / Feature | Default Contents / Purpose | How to Enable / Build | Extends With |
|---|---|---|---|
| π§© Example image | Demos, Node-RED, SM variant bundled | kas-iot2050-example.yml |
Hailo, LXDE, Docker, SDK, secure boot, QEMU |
| π§© Example image (SWUpdate A/B) | Example image + dual rootfs (A/B) | kas-iot2050-swupdate.yml |
Same as example (larger footprint) |
| π§© Example image (minimal HW enablement) | Core BSP only; lean baseline | kas/iot2050.yml |
example.yml, node-red.yml, sm.yml, others |
| π§© Boot firmware descriptor | TF-A, OP-TEE, U-Boot, SPL artifacts (no rootfs) | kas-iot2050-boot.yml |
Secure boot (signing), provisioning |
| π§© Firmware update package | Boot chain update bundle (.tar.xz) for field updates | kas-iot2050-fwu-package.yml |
N/A |
| QEMU descriptor | Emulated target config | Chain :kas-iot2050-qemu.yml after image |
Adds on top of minimal or example |
| β Example demos (fragment) | Reference apps & sample content | example.yml or implicit |
Combine with minimal image |
| β Node-RED (fragment) | Flow runtime + curated nodes | node-red.yml or implicit |
Combine with minimal image |
| β SM variant (fragment) | Sensors, extended IO services | sm.yml or implicit |
Combine with minimal image |
| β Hailo AI (fragment) | Hailo8 runtime & integration | hailo.yml |
Demos, minimal, example |
| β LXDE desktop (fragment) | Lightweight desktop environment | lxde.yml |
GUI builds (example/minimal) |
| β Docker / containers (fragment) | Container runtime & helpers | docker.yml |
Example/minimal variants |
| β SDK (fragment) | Cross-toolchain + sysroot | sdk.yml or menu |
Any image variant |
| β QEMU (fragment usage) | Emulation add-on (alternate view) | :kas-iot2050-qemu.yml |
Minimal or example builds |
See also composition reference: build-config.
Note: Boot firmware & firmware update descriptors build only boot chain components (no rootfs image). Combine image descriptors separately when you need full system images.
Additional infrastructure / reproducibility / provisioning fragments (RT kernel, package locking, RPMB setup, upstream kernel, mirror override): see Fragment Catalog.
Index landing page: docs index
MIT β see COPYING.MIT