Skip to content
Snippets Groups Projects

Yocto crossbuild documentation

Intro

Digi provides yocto setup based on their docker images. For the sake of simplicity, we can use the docker image and build the full firmware in the container with minimal patching images, configs, and recipes.

Some of the original scripts are saved with the postfix .origin.

Patching

There are two main scripts which is used during the build process. The first one is entrypoint of the docker image, which is /home/dey/docker-entrypoint.sh. The second one is mkproject.sh, which located in yocto source directory (/usr/local/mkproject.sh).

Digi makes the build process as interactive, so we need to patch the scripts to make it non-interactive. In other words, we need to skip EULA approval, platform selection, and other interactive steps. in order to do that, we need to patch the scripts.

Build

To build the firmware, please create the directory build in the root of the project and run the following command:

./build.sh <path-to-workspace-directory>

For example,

mkdir -p /home/bob/womolin/build
cd /home/bob/womolin
./build.sh /home/bob/womolin/build

As a result, the firmware will be created in the build/ccmp13-dvk directory. The main file for SD card flashing is ccmp1.wks-202407051052-mmcblk.direct.

OTA update file can be found in build/ccmp13-dvk/tmp/deploy/images/ccmp13-dvk directory. core-image-base-swu-ccmp13-dvk-<timestamp>.swu

Manual build from console

You can run a docker container, download all the yocto sources, run bash, but not run the build process. This can be useful for debugging. In order to do so, please add --console flag to the build.sh script:

./build.sh /home/bob/womolin/build --console

Mosquitto

Mosqiotto package is part of the part of recipes-connectivity. in order to keep it as is and not create own bbappend

HHTP server

mDNS