Files
rpi-buildroot/package/mender-update-modules/Config.in
Adam Duskett a474642fdc package/mender-update-modules: new package
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>
2025-05-17 16:34:09 +02:00

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