Enabling the App

After creating the systemd service recipe, it is important to install the package to the image.

In meta-subscriber-overrides is recipes-samples/images/lmp-factory-image.bb with the variable CORE_IMAGE_BASE_INSTALL.

To install a package to the image, append this variable with the package name.

For this example, add shellhttpd and netcat. As the Linux® microPlatform does not include curl, let us include curl as well.

Tip

This tutorial installs curl as a package to illustrate how packages can be added to the platform. In practice, you can also install curl as a container. Installing as a container rather than directly on the platform may be simpler and take less time.

Edit recipes-samples/images/lmp-factory-image.bb and append CORE_IMAGE_BASE_INSTALL:

cd ..
gedit recipes-samples/images/lmp-factory-image.bb
SUMMARY = "Minimal factory image which includes OTA Lite, Docker, and OpenSSH support"

require recipes-samples/images/lmp-image-common.inc

# Factory tooling requires SOTA (OSTree + Aktualizr-lite)
require ${@bb.utils.contains('DISTRO_FEATURES', 'sota', 'recipes-samples/images/lmp-feature-factory.inc', '', d)}

# Enable wayland related recipes if required by DISTRO
require ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'recipes-samples/images/lmp-feature-wayland.inc', '', d)}

# Enable OP-TEE related recipes if provided by the image
require ${@bb.utils.contains('MACHINE_FEATURES', 'optee', 'recipes-samples/images/lmp-feature-optee.inc', '', d)}

require recipes-samples/images/lmp-feature-softhsm.inc
require recipes-samples/images/lmp-feature-wireguard.inc
require recipes-samples/images/lmp-feature-docker.inc
require recipes-samples/images/lmp-feature-wifi.inc
require recipes-samples/images/lmp-feature-ota-utils.inc
require recipes-samples/images/lmp-feature-sbin-path-helper.inc

IMAGE_FEATURES += "ssh-server-openssh"

CORE_IMAGE_BASE_INSTALL_GPLV3 = "\
    packagegroup-core-full-cmdline-utils \
    packagegroup-core-full-cmdline-multiuser \
"

CORE_IMAGE_BASE_INSTALL += " \
    kernel-modules \
    networkmanager-nmcli \
    git \
    vim \
    packagegroup-core-full-cmdline-extended \
    ${@bb.utils.contains('LMP_DISABLE_GPLV3', '1', '', '${CORE_IMAGE_BASE_INSTALL_GPLV3}', d)} \
    netcat \
    curl \
    shellhttpd \
"