Create projects

Before you build Digi Embedded Yocto, you need to create a platform-specific project.

If you are using the Digi Embedded Yocto Docker container, the startup script offers to create a new project. If you already created one, go directly to Build images.

You can also follow these steps to create a project manually.

Use the mkproject.sh script to check supported platforms:

$ source /usr/local/dey-3.2/mkproject.sh -l

To initialize the project and environment, use the mkproject.sh script. For example, for the ConnectCore 6 SBC, do the following:

$ mkdir -p ${HOME}/workspace/ccimx6sbc
$ cd ${HOME}/workspace/ccimx6sbc
$ source /usr/local/dey-3.2/mkproject.sh -p ccimx6sbc

This initializes the project with a conf directory and two configuration files:

  • bblayers.conf: The available layers are configured here.

  • local.conf: Local configuration variables affecting only this project are customized here.

The mkproject.sh script sets the environment for the build in the current running terminal. It also creates a dey-setup-environment script in the project’s root folder. This script can safely be rerun over existing projects to set up the build environment on a new terminal.

If you close your current terminal and open a new one, you must run the dey-setup-environment script before you use Digi Embedded Yocto.

Update existing projects

When updating your installation of Digi Embedded Yocto, you need to erase the tmp and sstate-cache directories from existing projects and build them from scratch. Leaving the directories intact may result in problems in the build and the final images.

Build images

By default, ConnectCore 6 Digi Embedded Yocto images include the XWayland desktop backend.

To build Digi Embedded Yocto images, use the command bitbake <image-recipe> from your project’s directory. For example:

$ bitbake dey-image-qt
The compilation can take several hours on a powerful state-of-the-art workstation, depending on the selected image recipe.

Inspect build deliverables

You can find generated images inside your project’s directory, in the <project_folder>/tmp/deploy/images/<platform> folder. This directory contains the following files:

  • Boot image, with the boot.vfat file extension, which contains the Linux kernel, device trees and U-Boot scripts

  • Root file system images in the following formats:

    • rootfs.ext4.gz, a compressed ext4 partition image that can be programmed into the eMMC or SD card after being decompressed

    • rootfs.sdcard.gz, a compressed SD card image you can use to create a bootable SD card after being decompressed

    • rootfs.tar.bz2, a compressed root file system tarball that you can use to set up a remote NFS share to boot from

    • rootfs.manifest, a text file with the list of all the built packages

  • Recovery image, with the recovery.vfat file extension, which contains the recovery Linux kernel, device tree files, and U-Boot scripts

  • U-Boot images with the imx file extension

  • Linux kernel images with the bin file extension, which you can use to update an existing boot partition

  • Linux kernel device tree images with the dtb file extension, which you can use to update an existing boot partition

Build a software update package

To build a software update package, use the following command from your project’s directory:

$ bitbake dey-image-qt-swu

This will generate the update package under <project_folder>/tmp/deploy/images/<platform>:

dey-image-qt-swu-<platform>-<timestamp>.swu

To install the update package in your device, see Program firmware from Linux.