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