Commit Graph

4 Commits

Author SHA1 Message Date
Isaac Hermida 08732151b9 meta-digi-dey: cosmetic, remove trailing white spaces
No functional change.

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2025-11-27 13:03:00 +01:00
Gabriel Valcazar db613ceff9 classes/images: Drop ';' delimiter from ROOTFS/IMAGE*COMMAND variables
This is a cosmetic commit that mirrors poky commit 6fd8af0d30e5.

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2024-11-27 12:41:39 +01:00
David Escalona f9396581fd meta-digi-dey: swupdate: add firmware update support based on differences for R/O systems
Implement a new mechanism to allow users to create update packages based on differences for read-only
systems. The update mechanism requires full knowledge of the current software running on the device in order
to compute a sensitive patch. For this reason, only systems without user modifications in the rootfs/boot
partitions are eligible for this kind of updates. At the moment, only the 'rootfs' partition supports the
read-only squashfs file system type, so it is the only partition supporting incremental updates. The 'boot'
partition will still be updated but as a full image.

This new feature is done making use of the SWUpdate 'rdiff' handler, which applies binary deltas with the
functionallity provided by the rsync library. During the update process, the contents of the active 'rootfs'
partition are read as the base and written to the inactive 'rootfs' partition applying the delta binary patch
on-the-fly. To ensure the delta file is applied using the correct base, the firmware update process verifies
the contents of the 'rootfs' base partition before applying the update.

The binary delta file is automatically generated by the DEY build system using the resulting 'rootfs' squashfs
image as target and the user specified file as source. The file is then packaged with the rest of components in
the SWU update image. Users must specify the base source file in their project configuration file using the
new variable 'SWUPDATE_RDIFF_ROOTFS_SOURCE_FILE'. Also, 'read-only-rootfs' image feature should be set in the
project to generate this new SWU update package.

Since a base and a target 'rootfs' partition is required during the update, only 'dualboot' systems can benefit
from this new feature.

Note: If variable 'SWUPDATE_RDIFF_ROOTFS_SOURCE_FILE' is configured in the project but any of 'SWUPDATE_FILES_LIST'
      or 'SWUPDATE_FILES_TARGZ_FILE' variables is also set, the build system will prioritize a SWU update package
      based on files instead of a differences package.

https://onedigi.atlassian.net/browse/DEL-8624

Signed-off-by: David Escalona <david.escalona@digi.com>
2023-08-14 10:59:16 +02:00
David Escalona e65be961cd meta-digi-dey: swupdate: reorganize 'swupdate' custom classes and extensions
We expect new types of SWU update packages to be created in the future. To avoid splitting
all the code in different classes based on the update type, create the generic class
'dey-swupdate' to hold all the custom code and the 'dey-swupdate-common' class to hold all
the required variables. This basically renames the old 'swupdate-files' and 'swupdate-files-common'
classes.

While on it, reorganize the 'swupdate-images' recipe to move variable declarations and
functionallity to the correct place:
  - Move all variable declarations to 'swupdate-digi-common' class and organize them in
    functional groups.
  - Improve the way files are included in the 'SWUPDATE_IMAGES' by using the update type
    variables.
  - Move the update script copy to the 'do_swuimage' prepend function. Until now, the copy
    process was executed in the 'fill_description' method, which should only touch the
    'sw-description' file.
  - Rename some variables to use 'SWUPDATE' prefix.
  - Minor cosmetic changes.

https://onedigi.atlassian.net/browse/DEL-8624

Signed-off-by: David Escalona <david.escalona@digi.com>
2023-08-14 10:36:37 +02:00