* [cip-dev][isar-cip-core][RFC] Add option to use swupdate-handler-roundrobin
@ 2021-04-30 13:33 Quirin Gylstorff
2021-04-30 14:42 ` Jan Kiszka
0 siblings, 1 reply; 2+ messages in thread
From: Quirin Gylstorff @ 2021-04-30 13:33 UTC (permalink / raw)
To: jan.kiszka, cip-dev, christian.storm; +Cc: Quirin Gylstorff
[-- Attachment #1: Type: text/plain, Size: 6911 bytes --]
From: Quirin Gylstorff <quirin.gylstorff@siemens.com>
The new swupdate round robin handler is available under[1].
Add the Option `SWUPDATE_USE_ROUND_ROBIN_HANDLER_REPO` to
use the handler directly from the repository.
The handler currently doesn't support secureboot.
[1]:https://gitlab.com/cip-playground/swupdate-handler-roundrobin/
Signed-off-by: Quirin Gylstorff <quirin.gylstorff@siemens.com>
---
classes/swupdate-config.bbclass | 12 ++++++---
kas/opt/ebg-secure-boot-base.yml | 3 +++
.../files/secure-boot/sw-description.tmpl | 2 +-
recipes-core/images/files/sw-description.tmpl | 21 ++++++++++-----
.../files/swupdate.handler.efibootguard.ini | 26 +++++++++++++++++++
recipes-core/swupdate/swupdate.bb | 9 ++++++-
6 files changed, 62 insertions(+), 11 deletions(-)
create mode 100644 recipes-core/swupdate/files/swupdate.handler.efibootguard.ini
diff --git a/classes/swupdate-config.bbclass b/classes/swupdate-config.bbclass
index 8ec1104..e425aa2 100644
--- a/classes/swupdate-config.bbclass
+++ b/classes/swupdate-config.bbclass
@@ -21,9 +21,17 @@ KFEATURE_lua = ""
KFEATURE_lua[BUILD_DEB_DEPENDS] = "liblua5.3-dev"
KFEATURE_lua[KCONFIG_SNIPPETS] = "file://swupdate_defconfig_lua.snippet"
+SWUPDATE_USE_ROUND_ROBIN_HANDLER_REPO ?= "1"
+
+SRC_URI_append = " ${@ 'git://gitlab.com/cip-playground/swupdate-handler-roundrobin.git;protocol=https;destsuffix=swupdate-handler-roundrobin;name=swupdate-handler-roundrobin' \
+ if d.getVar('SWUPDATE_USE_ROUND_ROBIN_HANDLER_REPO') == '1' else '' \
+ }"
+SRCREV_swupdate-handler-roundrobin ?= "6ac9e49eaa4e866a3eda12eee3a223820ba8e0bf"
+SWUPDATE_LUASCRIPT ?= "swupdate-handler-roundrobin/swupdate_handlers_roundrobin.lua"
KFEATURE_luahandler = ""
KFEATURE_luahandler[KCONFIG_SNIPPETS] = "file://swupdate_defconfig_luahandler.snippet"
-KFEATURE_luahandler[SRC_URI] = "file://${SWUPDATE_LUASCRIPT}"
+KFEATURE_luahandler[SRC_URI] = "${@ 'file://${SWUPDATE_LUASCRIPT}' \
+ if d.getVar('SWUPDATE_USE_ROUND_ROBIN_HANDLER_REPO') == '0' else '' }"
KFEATURE_DEPS = ""
KFEATURE_DEPS[luahandler] = "lua"
@@ -58,8 +66,6 @@ KFEATURE_u-boot[DEBIAN_DEPENDS] = "${@ 'libubootenv0.1, u-boot-${MACHINE}-config
KFEATURE_u-boot[DEPENDS] = "${SWUPDATE_U_BOOT} libubootenv"
KFEATURE_u-boot[KCONFIG_SNIPPETS] = "file://swupdate_defconfig_u-boot.snippet"
-SWUPDATE_LUASCRIPT ?= "swupdate_handlers.lua"
-
def get_bootloader_featureset(d):
bootloader = d.getVar("SWUPDATE_BOOTLOADER", True) or ""
if bootloader == "efibootguard":
diff --git a/kas/opt/ebg-secure-boot-base.yml b/kas/opt/ebg-secure-boot-base.yml
index 30ca35a..484d0e5 100644
--- a/kas/opt/ebg-secure-boot-base.yml
+++ b/kas/opt/ebg-secure-boot-base.yml
@@ -16,3 +16,6 @@ local_conf_header:
initramfs: |
IMAGE_INSTALL += "initramfs-abrootfs-secureboot"
SWU_DESCRIPTION = "secureboot"
+ swupdate-secureboot: |
+ SWUPDATE_USE_ROUND_ROBIN_HANDLER_REPO = "0"
+ SWUPDATE_LUASCRIPT = "swupdate_handler.efibootguard.secureboot.lua"
diff --git a/recipes-core/images/files/secure-boot/sw-description.tmpl b/recipes-core/images/files/secure-boot/sw-description.tmpl
index bce97d0..897d819 100644
--- a/recipes-core/images/files/secure-boot/sw-description.tmpl
+++ b/recipes-core/images/files/secure-boot/sw-description.tmpl
@@ -16,7 +16,7 @@ software =
filename = "${ROOTFS_PARTITION_NAME}";
device = "fedcba98-7654-3210-cafe-5e0710000001,fedcba98-7654-3210-cafe-5e0710000002";
type = "roundrobin";
- compressed = "true";
+ compressed = "zlib";
filesystem = "ext4";
});
files: ({
diff --git a/recipes-core/images/files/sw-description.tmpl b/recipes-core/images/files/sw-description.tmpl
index bb34088..3309271 100644
--- a/recipes-core/images/files/sw-description.tmpl
+++ b/recipes-core/images/files/sw-description.tmpl
@@ -16,21 +16,30 @@ software =
filename = "${ROOTFS_PARTITION_NAME}";
device = "fedcba98-7654-3210-cafe-5e0710000001,fedcba98-7654-3210-cafe-5e0710000002";
type = "roundrobin";
- compressed = "true";
+ compressed = "zlib";
filesystem = "ext4";
+ properties: {
+ subtype = "image";
+ };
});
files: ({
filename = "${KERNEL_IMAGE}";
path = "vmlinuz";
- type = "kernelfile";
- device = "sda2,sda3";
+ type = "roundrobin";
+ device = "fedcba98-7654-3210-cafe-5e0710000001->sda2,fedcba98-7654-3210-cafe-5e0710000002->sda3";
filesystem = "vfat";
+ properties: {
+ subtype = "kernel";
+ };
},
{
filename = "${INITRD_IMAGE}";
- path = "initrd.img";
- type = "kernelfile";
- device = "sda2,sda3";
+ path = "${INITRD_IMAGE}";
+ type = "roundrobin";
+ device = "fedcba98-7654-3210-cafe-5e0710000001->sda2,fedcba98-7654-3210-cafe-5e0710000002->sda3";
filesystem = "vfat";
+ properties: {
+ subtype = "initrd";
+ };
});
}
diff --git a/recipes-core/swupdate/files/swupdate.handler.efibootguard.ini b/recipes-core/swupdate/files/swupdate.handler.efibootguard.ini
new file mode 100644
index 0000000..3aee76c
--- /dev/null
+++ b/recipes-core/swupdate/files/swupdate.handler.efibootguard.ini
@@ -0,0 +1,26 @@
+[image]
+chainhandler=raw
+
+[image.selector]
+method=cmdline_rr
+key=root
+
+[image.bootenv]
+kernelparams=root=PARTUUID=${rrtarget} ${cmdline_root}
+
+[kernel]
+chainhandler=rawfile
+
+[kernel.selector]
+method=cmdline_rrmap
+key=root
+
+[kernel.bootenv]
+kernelfile=C:BOOT${rrindex}:vmlinuz
+
+[initrd]
+chainhandler=rawfile
+
+[initrd.selector]
+method=cmdline_rrmap
+key=root
diff --git a/recipes-core/swupdate/swupdate.bb b/recipes-core/swupdate/swupdate.bb
index 526c72f..c03c70b 100644
--- a/recipes-core/swupdate/swupdate.bb
+++ b/recipes-core/swupdate/swupdate.bb
@@ -29,6 +29,7 @@ DEBIAN_DEPENDS = "${shlibs:Depends}, ${misc:Depends}"
inherit dpkg
inherit swupdate-config
+SRC_URI += "file://swupdate.handler.${BOOTLOADER}.ini"
KFEATURES += "luahandler"
S = "${WORKDIR}/git"
@@ -46,5 +47,11 @@ do_prepare_build() {
echo "configs/${DEFCONFIG}" >> ${S}/.gitignore
fi
# luahandler
- install -m 0644 ${WORKDIR}/${SWUPDATE_LUASCRIPT} ${S}
+ if [ -e ${WORKDIR}/${SWUPDATE_LUASCRIPT} ]; then
+ install -m 0644 ${WORKDIR}/${SWUPDATE_LUASCRIPT} ${S}/swupdate_handlers.lua
+ fi
+ if [ -e "${WORKDIR}/swupdate.handler.${BOOTLOADER}.ini" ]; then
+ install -m 0644 ${WORKDIR}/swupdate.handler.${BOOTLOADER}.ini ${S}/swupdate.handler.ini
+ echo "swupdate.handler.ini etc/" >> ${S}/debian/swupdate.install
+ fi
}
--
2.20.1
[-- Attachment #2: Type: text/plain, Size: 428 bytes --]
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#6408): https://lists.cip-project.org/g/cip-dev/message/6408
Mute This Topic: https://lists.cip-project.org/mt/82481536/4520388
Group Owner: cip-dev+owner@lists.cip-project.org
Unsubscribe: https://lists.cip-project.org/g/cip-dev/leave/8129055/4520388/727948398/xyzzy [cip-dev@archiver.kernel.org]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [cip-dev][isar-cip-core][RFC] Add option to use swupdate-handler-roundrobin
2021-04-30 13:33 [cip-dev][isar-cip-core][RFC] Add option to use swupdate-handler-roundrobin Quirin Gylstorff
@ 2021-04-30 14:42 ` Jan Kiszka
0 siblings, 0 replies; 2+ messages in thread
From: Jan Kiszka @ 2021-04-30 14:42 UTC (permalink / raw)
To: Q. Gylstorff, cip-dev, christian.storm
[-- Attachment #1: Type: text/plain, Size: 7470 bytes --]
On 30.04.21 15:33, Q. Gylstorff wrote:
> From: Quirin Gylstorff <quirin.gylstorff@siemens.com>
>
> The new swupdate round robin handler is available under[1].
> Add the Option `SWUPDATE_USE_ROUND_ROBIN_HANDLER_REPO` to
> use the handler directly from the repository.
>
> The handler currently doesn't support secureboot.
...but the in-tree handler does. How much effort is needed to port that
feature into the new handler?
Jan
>
> [1]:https://gitlab.com/cip-playground/swupdate-handler-roundrobin/
>
> Signed-off-by: Quirin Gylstorff <quirin.gylstorff@siemens.com>
> ---
> classes/swupdate-config.bbclass | 12 ++++++---
> kas/opt/ebg-secure-boot-base.yml | 3 +++
> .../files/secure-boot/sw-description.tmpl | 2 +-
> recipes-core/images/files/sw-description.tmpl | 21 ++++++++++-----
> .../files/swupdate.handler.efibootguard.ini | 26 +++++++++++++++++++
> recipes-core/swupdate/swupdate.bb | 9 ++++++-
> 6 files changed, 62 insertions(+), 11 deletions(-)
> create mode 100644 recipes-core/swupdate/files/swupdate.handler.efibootguard.ini
>
> diff --git a/classes/swupdate-config.bbclass b/classes/swupdate-config.bbclass
> index 8ec1104..e425aa2 100644
> --- a/classes/swupdate-config.bbclass
> +++ b/classes/swupdate-config.bbclass
> @@ -21,9 +21,17 @@ KFEATURE_lua = ""
> KFEATURE_lua[BUILD_DEB_DEPENDS] = "liblua5.3-dev"
> KFEATURE_lua[KCONFIG_SNIPPETS] = "file://swupdate_defconfig_lua.snippet"
>
> +SWUPDATE_USE_ROUND_ROBIN_HANDLER_REPO ?= "1"
> +
> +SRC_URI_append = " ${@ 'git://gitlab.com/cip-playground/swupdate-handler-roundrobin.git;protocol=https;destsuffix=swupdate-handler-roundrobin;name=swupdate-handler-roundrobin' \
> + if d.getVar('SWUPDATE_USE_ROUND_ROBIN_HANDLER_REPO') == '1' else '' \
> + }"
> +SRCREV_swupdate-handler-roundrobin ?= "6ac9e49eaa4e866a3eda12eee3a223820ba8e0bf"
> +SWUPDATE_LUASCRIPT ?= "swupdate-handler-roundrobin/swupdate_handlers_roundrobin.lua"
> KFEATURE_luahandler = ""
> KFEATURE_luahandler[KCONFIG_SNIPPETS] = "file://swupdate_defconfig_luahandler.snippet"
> -KFEATURE_luahandler[SRC_URI] = "file://${SWUPDATE_LUASCRIPT}"
> +KFEATURE_luahandler[SRC_URI] = "${@ 'file://${SWUPDATE_LUASCRIPT}' \
> + if d.getVar('SWUPDATE_USE_ROUND_ROBIN_HANDLER_REPO') == '0' else '' }"
>
> KFEATURE_DEPS = ""
> KFEATURE_DEPS[luahandler] = "lua"
> @@ -58,8 +66,6 @@ KFEATURE_u-boot[DEBIAN_DEPENDS] = "${@ 'libubootenv0.1, u-boot-${MACHINE}-config
> KFEATURE_u-boot[DEPENDS] = "${SWUPDATE_U_BOOT} libubootenv"
> KFEATURE_u-boot[KCONFIG_SNIPPETS] = "file://swupdate_defconfig_u-boot.snippet"
>
> -SWUPDATE_LUASCRIPT ?= "swupdate_handlers.lua"
> -
> def get_bootloader_featureset(d):
> bootloader = d.getVar("SWUPDATE_BOOTLOADER", True) or ""
> if bootloader == "efibootguard":
> diff --git a/kas/opt/ebg-secure-boot-base.yml b/kas/opt/ebg-secure-boot-base.yml
> index 30ca35a..484d0e5 100644
> --- a/kas/opt/ebg-secure-boot-base.yml
> +++ b/kas/opt/ebg-secure-boot-base.yml
> @@ -16,3 +16,6 @@ local_conf_header:
> initramfs: |
> IMAGE_INSTALL += "initramfs-abrootfs-secureboot"
> SWU_DESCRIPTION = "secureboot"
> + swupdate-secureboot: |
> + SWUPDATE_USE_ROUND_ROBIN_HANDLER_REPO = "0"
> + SWUPDATE_LUASCRIPT = "swupdate_handler.efibootguard.secureboot.lua"
> diff --git a/recipes-core/images/files/secure-boot/sw-description.tmpl b/recipes-core/images/files/secure-boot/sw-description.tmpl
> index bce97d0..897d819 100644
> --- a/recipes-core/images/files/secure-boot/sw-description.tmpl
> +++ b/recipes-core/images/files/secure-boot/sw-description.tmpl
> @@ -16,7 +16,7 @@ software =
> filename = "${ROOTFS_PARTITION_NAME}";
> device = "fedcba98-7654-3210-cafe-5e0710000001,fedcba98-7654-3210-cafe-5e0710000002";
> type = "roundrobin";
> - compressed = "true";
> + compressed = "zlib";
> filesystem = "ext4";
> });
> files: ({
> diff --git a/recipes-core/images/files/sw-description.tmpl b/recipes-core/images/files/sw-description.tmpl
> index bb34088..3309271 100644
> --- a/recipes-core/images/files/sw-description.tmpl
> +++ b/recipes-core/images/files/sw-description.tmpl
> @@ -16,21 +16,30 @@ software =
> filename = "${ROOTFS_PARTITION_NAME}";
> device = "fedcba98-7654-3210-cafe-5e0710000001,fedcba98-7654-3210-cafe-5e0710000002";
> type = "roundrobin";
> - compressed = "true";
> + compressed = "zlib";
> filesystem = "ext4";
> + properties: {
> + subtype = "image";
> + };
> });
> files: ({
> filename = "${KERNEL_IMAGE}";
> path = "vmlinuz";
> - type = "kernelfile";
> - device = "sda2,sda3";
> + type = "roundrobin";
> + device = "fedcba98-7654-3210-cafe-5e0710000001->sda2,fedcba98-7654-3210-cafe-5e0710000002->sda3";
> filesystem = "vfat";
> + properties: {
> + subtype = "kernel";
> + };
> },
> {
> filename = "${INITRD_IMAGE}";
> - path = "initrd.img";
> - type = "kernelfile";
> - device = "sda2,sda3";
> + path = "${INITRD_IMAGE}";
> + type = "roundrobin";
> + device = "fedcba98-7654-3210-cafe-5e0710000001->sda2,fedcba98-7654-3210-cafe-5e0710000002->sda3";
> filesystem = "vfat";
> + properties: {
> + subtype = "initrd";
> + };
> });
> }
> diff --git a/recipes-core/swupdate/files/swupdate.handler.efibootguard.ini b/recipes-core/swupdate/files/swupdate.handler.efibootguard.ini
> new file mode 100644
> index 0000000..3aee76c
> --- /dev/null
> +++ b/recipes-core/swupdate/files/swupdate.handler.efibootguard.ini
> @@ -0,0 +1,26 @@
> +[image]
> +chainhandler=raw
> +
> +[image.selector]
> +method=cmdline_rr
> +key=root
> +
> +[image.bootenv]
> +kernelparams=root=PARTUUID=${rrtarget} ${cmdline_root}
> +
> +[kernel]
> +chainhandler=rawfile
> +
> +[kernel.selector]
> +method=cmdline_rrmap
> +key=root
> +
> +[kernel.bootenv]
> +kernelfile=C:BOOT${rrindex}:vmlinuz
> +
> +[initrd]
> +chainhandler=rawfile
> +
> +[initrd.selector]
> +method=cmdline_rrmap
> +key=root
> diff --git a/recipes-core/swupdate/swupdate.bb b/recipes-core/swupdate/swupdate.bb
> index 526c72f..c03c70b 100644
> --- a/recipes-core/swupdate/swupdate.bb
> +++ b/recipes-core/swupdate/swupdate.bb
> @@ -29,6 +29,7 @@ DEBIAN_DEPENDS = "${shlibs:Depends}, ${misc:Depends}"
> inherit dpkg
> inherit swupdate-config
>
> +SRC_URI += "file://swupdate.handler.${BOOTLOADER}.ini"
> KFEATURES += "luahandler"
>
> S = "${WORKDIR}/git"
> @@ -46,5 +47,11 @@ do_prepare_build() {
> echo "configs/${DEFCONFIG}" >> ${S}/.gitignore
> fi
> # luahandler
> - install -m 0644 ${WORKDIR}/${SWUPDATE_LUASCRIPT} ${S}
> + if [ -e ${WORKDIR}/${SWUPDATE_LUASCRIPT} ]; then
> + install -m 0644 ${WORKDIR}/${SWUPDATE_LUASCRIPT} ${S}/swupdate_handlers.lua
> + fi
> + if [ -e "${WORKDIR}/swupdate.handler.${BOOTLOADER}.ini" ]; then
> + install -m 0644 ${WORKDIR}/swupdate.handler.${BOOTLOADER}.ini ${S}/swupdate.handler.ini
> + echo "swupdate.handler.ini etc/" >> ${S}/debian/swupdate.install
> + fi
> }
>
--
Siemens AG, T RDA IOT
Corporate Competence Center Embedded Linux
[-- Attachment #2: Type: text/plain, Size: 428 bytes --]
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#6410): https://lists.cip-project.org/g/cip-dev/message/6410
Mute This Topic: https://lists.cip-project.org/mt/82481536/4520388
Group Owner: cip-dev+owner@lists.cip-project.org
Unsubscribe: https://lists.cip-project.org/g/cip-dev/leave/8129055/4520388/727948398/xyzzy [cip-dev@archiver.kernel.org]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-04-30 14:42 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-30 13:33 [cip-dev][isar-cip-core][RFC] Add option to use swupdate-handler-roundrobin Quirin Gylstorff
2021-04-30 14:42 ` Jan Kiszka
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.