Contains community supported Update Modules. An Update Module is an extension to the Mender client for supporting a new type of software update, such as a package manager, container, bootloader or even updates of nearby microcontrollers. An Update Module can be tailored to a specific device or environment (e.g. update a proprietary bootloader), or be more general-purpose (e.g. install a set of .rpm packages.). Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
184 lines
6.7 KiB
Plaintext
184 lines
6.7 KiB
Plaintext
config BR2_PACKAGE_MENDER_UPDATE_MODULES
|
|
bool "mender-update-modules"
|
|
depends on BR2_PACKAGE_HOST_GO_HOST_ARCH_SUPPORTS
|
|
depends on BR2_PACKAGE_MENDER
|
|
select BR2_PACKAGE_HOST_MENDER_ARTIFACT
|
|
help
|
|
community supported Update Modules. An Update Module is an
|
|
extension to the Mender client for supporting a new type of
|
|
software update, such as a package manager, container,
|
|
bootloader or even updates of nearby microcontrollers.
|
|
An Update Module can be tailored to a specific device or
|
|
environment (e.g. update a proprietary bootloader), or be
|
|
more general-purpose (e.g. install a set of .deb packages.).
|
|
|
|
https://github.com/mendersoftware/mender-update-modules
|
|
|
|
if BR2_PACKAGE_MENDER_UPDATE_MODULES
|
|
|
|
config BR2_PACKAGE_MENDER_UPDATE_MODULES_DFU
|
|
bool "DFU"
|
|
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
|
|
select BR2_PACKAGE_DFU_UTIL
|
|
help
|
|
The DFU Update Module is able to update peripheral devices
|
|
connected to the device running Mender.
|
|
Example use-cases:
|
|
- Deploy firmware updates to peripheral devices using the
|
|
USB Device Firmware Update (DFU) protocol
|
|
|
|
https://github.com/mendersoftware/mender-update-modules/tree/master/dfu
|
|
|
|
config BR2_PACKAGE_MENDER_UPDATE_MODULES_DIR_OVERLAY
|
|
bool "dir-overlay"
|
|
help
|
|
The Directory Overlay Update Module installs a user defined
|
|
file tree structure into a given destination directory in the
|
|
target.
|
|
|
|
Before the deploy into the destination folder on the device,
|
|
the Update Module will take a backup copy of the current
|
|
contents, allowing restore of it using the rollback mechanism
|
|
of the Mender client if something goes wrong. The Update
|
|
Module will also delete the current installed content that was
|
|
previously installed using the same module, this means that
|
|
each deployment is self contained and there is no residues
|
|
left on the system from the previous deployment.
|
|
|
|
Example use-cases:
|
|
- Deploy root filesystem overlays
|
|
|
|
https://github.com/mendersoftware/mender-update-modules/tree/master/dir-overlay
|
|
|
|
config BR2_PACKAGE_MENDER_UPDATE_MODULES_DIRTY
|
|
bool "dirty"
|
|
help
|
|
The dirty Update Module: modify your device state without
|
|
installing an artifact
|
|
Example use-cases:
|
|
- You have a specific action on the device that you want to
|
|
run multiple times
|
|
|
|
- You want to avoid re-creating artifacts just for the sake
|
|
of a new version/name
|
|
|
|
- You don't want the artifact the show up in the list of
|
|
installed artifacts
|
|
|
|
- The module will always fail the update process, which
|
|
means it can never be marked as installed. So it can be
|
|
attempted any number of times without having to recreate
|
|
newly versioned artifacts.
|
|
|
|
https://github.com/mendersoftware/mender-update-modules/tree/master/dirty
|
|
|
|
config BR2_PACKAGE_MENDER_UPDATE_MODULES_IPK
|
|
bool "ipk"
|
|
select BR2_PACKAGE_OPKG
|
|
help
|
|
The IPK Update Module allows opkg-based packages to be
|
|
installed on a device
|
|
|
|
Example use-cases:
|
|
- Deploy any ipk package
|
|
|
|
https://github.com/mendersoftware/mender-update-modules/tree/master/ipk
|
|
|
|
config BR2_PACKAGE_MENDER_UPDATE_MODULES_PODMAN
|
|
bool "podman"
|
|
depends on BR2_USE_MMU # podman
|
|
depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS # podman
|
|
depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS # podman
|
|
depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS # podman
|
|
depends on BR2_PACKAGE_LIBSECCOMP_ARCH_SUPPORTS # podman
|
|
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 # podman
|
|
depends on BR2_TOOLCHAIN_HAS_THREADS # podman
|
|
depends on BR2_USE_WCHAR # podman
|
|
select BR2_PACKAGE_JQ # runtime
|
|
select BR2_PACKAGE_PODMAN
|
|
help
|
|
The Podman Update Module handles the Podman container images
|
|
that shall be running on the target device. A deployment with
|
|
this module will stop all currently running Podman containers
|
|
on the device and start new containers based on the list of
|
|
Podman images provided in the Mender Artifact.
|
|
|
|
In case of any unforeseen error during the process, the module
|
|
will trigger the rollback mechanism of the Mender client to
|
|
restore the previously running Podman containers.
|
|
|
|
https://github.com/mendersoftware/mender-update-modules/tree/master/podman
|
|
|
|
comment "podman support needs a toolchain w/ headers >= 3.17, threads, wchar"
|
|
depends on BR2_USE_MMU
|
|
depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS
|
|
depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS
|
|
depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS
|
|
depends on BR2_PACKAGE_LIBSECCOMP_ARCH_SUPPORTS
|
|
depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 \
|
|
|| !BR2_TOOLCHAIN_HAS_THREADS \
|
|
|| !BR2_USE_WCHAR
|
|
|
|
config BR2_PACKAGE_MENDER_UPDATE_MODULES_REBOOT
|
|
bool "reboot"
|
|
help
|
|
The reboot Update Module: reboot your device remotely.
|
|
|
|
Example use-cases:
|
|
- Something went wrong and you have to reboot your device
|
|
remotely, and all access to the device you have is Mender.
|
|
|
|
https://github.com/mendersoftware/mender-update-modules/tree/master/reboot
|
|
|
|
config BR2_PACKAGE_MENDER_UPDATE_MODULES_ROOTFS_VERSION_CHECK
|
|
bool "rootfs version check"
|
|
depends on BR2_TOOLCHAIN_HAS_THREADS # python3
|
|
depends on !BR2_STATIC_LIBS # python3
|
|
select BR2_PACKAGE_PYTHON3 # runtime
|
|
help
|
|
The rootfs-version-check Update Module implements a full image
|
|
update with additional checks to protect against replay
|
|
attacks.
|
|
|
|
This is functionally equivalent to the built-in full image
|
|
update with an extra check to ensure the artifact name
|
|
follows a specific format and that installing "older" images
|
|
is rejected. For this reference implementaton, we simply use
|
|
a numeric identifier and ensure that it is larger than the
|
|
version installed. For actual device fleet use, you may need
|
|
to customize this based on your artifact naming scheme.
|
|
|
|
Example use-cases:
|
|
- Deploy root filesystem updates and ensure only newer
|
|
artifacts are installed
|
|
|
|
https://github.com/mendersoftware/mender-update-modules/tree/master/rootfs-version-check
|
|
|
|
comment "rootfs version check needs a toolchain w/ threads"
|
|
depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
|
|
|
|
config BR2_PACKAGE_MENDER_UPDATE_MODULES_SWU
|
|
bool "swupdate"
|
|
depends on !BR2_STATIC_LIBS
|
|
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # swupdate
|
|
select BR2_PACKAGE_JQ # runtime
|
|
select BR2_PACKAGE_SWUPDATE
|
|
help
|
|
The SWU Update Module allows deploying an SWUpdate-based
|
|
artifact to the device.
|
|
|
|
Example use-cases:
|
|
- Extend an existing platform using SWUpdate with OTA.
|
|
|
|
https://github.com/mendersoftware/mender-update-modules/tree/master/swu
|
|
|
|
comment "swupdate support needs a toolchain w/ dynamic library"
|
|
depends on BR2_TOOLCHAIN_HAS_SYNC_4
|
|
depends on BR2_STATIC_LIBS
|
|
|
|
endif
|
|
|
|
comment "mender-update-modules needs mender"
|
|
depends on BR2_PACKAGE_HOST_GO_HOST_ARCH_SUPPORTS
|
|
depends on !BR2_PACKAGE_MENDER
|