Overview
Mender is a secure and robust Open source over-the-air (OTA) update manager for Embedded Linux devices. It is used to validate end-to-end OTA functionality across Cassini platforms.
It offers:
A/B system updates
Capsule updates for firmware
Robust rollback mechanisms
Secure authentication and artifact verification
Device grouping and phased rollout support
Duration: up to 60 minutes
This section describes the manual testing process for validating Mender client on Cassini platforms. It ensures end-to-end OTA functionality including provisioning, mender system update and mender capsule update.
The validation workflow begins with the following preparation steps:
This integration prepares the device for Mender OTA flow through:
This integration validates the Mender OTA flow through:
Note
EDK2 on the KV260 platform currently does not support capsule updates due to limitations in the EDK2 firmware stack.
Cleans up the test environment for future test runs:
Mender environment variables:
BRANCH: Specifies the Git branch tag for the Docker image used
CAPSULE: Name of the capsule update image to be used.
HOST_MACHINE_USER : Username of the host machine running Mender server
MACHINE : Target platform machine name
MENDER_SERVER_DIR : Mender server directory on the host machine
MENDER_DUT_TEST_DIR : Mender test directory on DUT. It needs to be part of
/data
MENDER_SERVER_HTTPS_PORT : HTTPS port exposed to clients (default: 443)
MENDER_SERVER_HTTP_PORT : HTTP port exposed to clients (default: 80)
MENDER_SERVER_IP : IP address of the the host machine running Mender server
MENDER_SERVER_NAME : Mender server name
MENDER_FW_GUID : GUID for the ESRT entry and the capsule payload.
MENDER_CAPSULE_VERSION : Version for the capsule payload. This is verified against ESRT entry version after the update.
MENDER_FW_VERSION : Current version for the ESRT entry.
Build with Mender Support
Cassini images include Mender client support by default. For more details, see Over-the-Air Update. It is recommended to build with Developer Support.
These are the required environment variables, refer here for more details.
CAPSULE
MACHINE
MENDER_SERVER_DIR
Create a clean test directory
rm -Rf ${MENDER_SERVER_DIR}
mkdir -p ${MENDER_SERVER_DIR}/artifacts
Copy the generated .mender artifact to a designated directory for performing system update
cp ${BUILDDIR}/tmp/deploy/images/${MACHINE}/cassini-image-base-${MACHINE}.mender \
${MENDER_SERVER_DIR}/artifacts/${MACHINE}.mender
Copy the generated ${CAPSULE} artifact to a designated directory for performing capsule update
cp ${BUILDDIR}/tmp/deploy/images/${MACHINE}/${CAPSULE} \
${MENDER_SERVER_DIR}/artifacts/${MACHINE}.uefi.capsule
Important
The name of ${CAPSULE}
depends on the target platform used to build the capsule.
For
corstone1000
, the capsule name is typically${MACHINE}-v6.uefi.capsule
For
kv260
, the capsule name is typically{{ MACHINE }}_fw.capsule