Message ID | 20250211085125.22154-5-Quirin.Gylstorff@siemens.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Make /home partition optional | expand |
On 11.02.25 09:49, Quirin Gylstorff wrote: > From: Quirin Gylstorff <quirin.gylstorff@siemens.com> > > This reduces the amount of necessary partitions. It also > allows to use a A/B-update scheme for the var partition. > > This fixes issue #123. > > https://gitlab.com/cip-project/cip-core/isar-cip-core/-/issues/123 > Signed-off-by: Quirin Gylstorff <quirin.gylstorff@siemens.com> > --- > classes/read-only-rootfs.bbclass | 11 +++++++++++ > kas/opt/home-to-var.yml | 21 +++++++++++++++++++++ > 2 files changed, 32 insertions(+) > create mode 100644 kas/opt/home-to-var.yml > > diff --git a/classes/read-only-rootfs.bbclass b/classes/read-only-rootfs.bbclass > index 99a2909..c809187 100644 > --- a/classes/read-only-rootfs.bbclass > +++ b/classes/read-only-rootfs.bbclass > @@ -17,6 +17,10 @@ do_image_wic[depends] += "${INITRAMFS_RECIPE}:do_build" > IMAGE_INSTALL += "home-fs" > HOME_PARTITION_CMD = "part /home --source rootfs --change-directory=home --fstype=ext4 --label home --align 1024 --size 1G --fsuuid 1f55d66a-40d8-11ee-be56-0242ac120002" > > +HOME_PARTITION_CMD:home-to-var = "" > +IMAGE_INSTALL:remove:home-to-var = " home-fs" > +IMAGE_INSTALL:append:home-to-var = " move-homedir-var" > + > IMAGE_INSTALL:append:buster = " tmp-fs" > IMAGE_INSTALL:append:bullseye = " tmp-fs" > IMAGE_INSTALL:append:bookworm = " tmp-fs" > @@ -37,6 +41,13 @@ copy_dpkg_state() { > sudo cp -a ${ROOTFSDIR}/var/lib/dpkg "$IMMUTABLE_VAR_LIB/" > } > > +ROOTFS_POSTPROCESS_COMMAND:append:home-to-var =" copy_home_to_immutable_data" > +copy_home_to_immutable_data() { > + IMMUTABLE_HOME_DIR="${ROOTFSDIR}/${IMMUTABLE_DATA_DIR}/" > + sudo mkdir -p "$IMMUTABLE_HOME_DIR" > + sudo cp -a ${ROOTFSDIR}/var/home "$IMMUTABLE_HOME_DIR/" > +} > + > RO_ROOTFS_EXCLUDE_DIRS ??= "" > EROFS_EXCLUDE_DIRS = "${RO_ROOTFS_EXCLUDE_DIRS}" > SQUASHFS_EXCLUDE_DIRS = "${RO_ROOTFS_EXCLUDE_DIRS}" > diff --git a/kas/opt/home-to-var.yml b/kas/opt/home-to-var.yml > new file mode 100644 > index 0000000..c40b4cd > --- /dev/null > +++ b/kas/opt/home-to-var.yml > @@ -0,0 +1,21 @@ > +# > +# CIP Core, generic profile > +# > +# Copyright (c) Siemens AG, 2025 > +# > +# Authors: > +# Quirin Gylstorff <quirin.gylstorff@siemens.com> > +# > +# SPDX-License-Identifier: MIT > +# > +# This kas file adds swupdate and generates a ${IMAGE_NAME}.swu > +# from the first wic partition > + > +header: > + version: 14 > + > +local_conf_header: > + move-home-to-var: | > + OVERRIDES .= ":home-to-var" > + remove-home-from-crypt: | > + CRYPT_PARTITIONS:remove:home-to-var = "home:/home:reencrypt" Once all the details are sorted out, I rather think we want to make this pattern opt-out, at least when building new images with isar-cip-core. Existing users should be able to keep the previous variant, but new ones should get it automatically. That would also avoid having to provide a kconfig menu entry (which you forgot). Jan
diff --git a/classes/read-only-rootfs.bbclass b/classes/read-only-rootfs.bbclass index 99a2909..c809187 100644 --- a/classes/read-only-rootfs.bbclass +++ b/classes/read-only-rootfs.bbclass @@ -17,6 +17,10 @@ do_image_wic[depends] += "${INITRAMFS_RECIPE}:do_build" IMAGE_INSTALL += "home-fs" HOME_PARTITION_CMD = "part /home --source rootfs --change-directory=home --fstype=ext4 --label home --align 1024 --size 1G --fsuuid 1f55d66a-40d8-11ee-be56-0242ac120002" +HOME_PARTITION_CMD:home-to-var = "" +IMAGE_INSTALL:remove:home-to-var = " home-fs" +IMAGE_INSTALL:append:home-to-var = " move-homedir-var" + IMAGE_INSTALL:append:buster = " tmp-fs" IMAGE_INSTALL:append:bullseye = " tmp-fs" IMAGE_INSTALL:append:bookworm = " tmp-fs" @@ -37,6 +41,13 @@ copy_dpkg_state() { sudo cp -a ${ROOTFSDIR}/var/lib/dpkg "$IMMUTABLE_VAR_LIB/" } +ROOTFS_POSTPROCESS_COMMAND:append:home-to-var =" copy_home_to_immutable_data" +copy_home_to_immutable_data() { + IMMUTABLE_HOME_DIR="${ROOTFSDIR}/${IMMUTABLE_DATA_DIR}/" + sudo mkdir -p "$IMMUTABLE_HOME_DIR" + sudo cp -a ${ROOTFSDIR}/var/home "$IMMUTABLE_HOME_DIR/" +} + RO_ROOTFS_EXCLUDE_DIRS ??= "" EROFS_EXCLUDE_DIRS = "${RO_ROOTFS_EXCLUDE_DIRS}" SQUASHFS_EXCLUDE_DIRS = "${RO_ROOTFS_EXCLUDE_DIRS}" diff --git a/kas/opt/home-to-var.yml b/kas/opt/home-to-var.yml new file mode 100644 index 0000000..c40b4cd --- /dev/null +++ b/kas/opt/home-to-var.yml @@ -0,0 +1,21 @@ +# +# CIP Core, generic profile +# +# Copyright (c) Siemens AG, 2025 +# +# Authors: +# Quirin Gylstorff <quirin.gylstorff@siemens.com> +# +# SPDX-License-Identifier: MIT +# +# This kas file adds swupdate and generates a ${IMAGE_NAME}.swu +# from the first wic partition + +header: + version: 14 + +local_conf_header: + move-home-to-var: | + OVERRIDES .= ":home-to-var" + remove-home-from-crypt: | + CRYPT_PARTITIONS:remove:home-to-var = "home:/home:reencrypt"