summaryrefslogtreecommitdiffstats
path: root/meta-agl-ic-container
diff options
context:
space:
mode:
authorNaoto Yamaguchi <naoto.yamaguchi@aisin.co.jp>2023-05-02 20:01:14 +0900
committerNaoto Yamaguchi <naoto.yamaguchi@aisin.co.jp>2023-05-09 08:13:10 +0900
commit445bebc668e39da6ff531382ecd99fa42ab0b3c4 (patch)
tree7be65bb74308b25b0399a9f29b4a933c446f263e /meta-agl-ic-container
parent57bf13e421a22a7476be89529076c8c6bc508c61 (diff)
Rework images to support some integration types
Existing lxc-host-image-minimal support multiconfig based single root filesystem integration. On the other hand, when we want to use multi partition integration, we need to fully replace lxc-host-image-minimal recipe. This patch divide lxc-config installation and single root filesystem integration feature from lxc-host-image-minimal to agl-lxc-install-single-imgage.inc and agl-lxc-autostart.inc. This change realize to support integration types using lxc-host-image-minimal. Bug-AGL: SPEC-4777 Change-Id: I95d866ff6eaddf793927aacb056334e573389804 Signed-off-by: Naoto Yamaguchi <naoto.yamaguchi@aisin.co.jp>
Diffstat (limited to 'meta-agl-ic-container')
-rw-r--r--meta-agl-ic-container/recipes-platform/images/agl-cluster-demo-lxc-host.bb3
-rw-r--r--meta-agl-ic-container/recipes-platform/images/agl-lxc-autostart.inc19
-rw-r--r--meta-agl-ic-container/recipes-platform/images/agl-lxc-install-single-image.inc36
-rw-r--r--meta-agl-ic-container/recipes-platform/images/lxc-host-image-minimal.bb47
4 files changed, 58 insertions, 47 deletions
diff --git a/meta-agl-ic-container/recipes-platform/images/agl-cluster-demo-lxc-host.bb b/meta-agl-ic-container/recipes-platform/images/agl-cluster-demo-lxc-host.bb
index d26e6a63..66e8b62b 100644
--- a/meta-agl-ic-container/recipes-platform/images/agl-cluster-demo-lxc-host.bb
+++ b/meta-agl-ic-container/recipes-platform/images/agl-cluster-demo-lxc-host.bb
@@ -2,6 +2,8 @@ SUMMARY = "LXC host demo image"
LICENSE = "MIT"
require lxc-host-image-minimal.bb
+require recipes-platform/images/agl-lxc-install-single-image.inc
+require recipes-platform/images/agl-lxc-autostart.inc
CONTAINER_IMAGES ?= "agl-container-cluster:guest-image-cluster-demo \
agl-container-ivi:guest-image-ivi-demo \
@@ -17,7 +19,6 @@ IMAGE_INSTALL += " \
# packages required for network bridge settings via lxc-net
IMAGE_INSTALL += " \
- lxc-autostart \
lxc-networking \
iptables-modules \
dnsmasq \
diff --git a/meta-agl-ic-container/recipes-platform/images/agl-lxc-autostart.inc b/meta-agl-ic-container/recipes-platform/images/agl-lxc-autostart.inc
new file mode 100644
index 00000000..41a925e3
--- /dev/null
+++ b/meta-agl-ic-container/recipes-platform/images/agl-lxc-autostart.inc
@@ -0,0 +1,19 @@
+# Integration type support for lxc autostart based startup.
+
+IMAGE_INSTALL += " \
+ ${LXC_CONTAINER_CONFIGS} \
+ lxc-autostart \
+"
+
+LXC_CONTAINER_CONFIGS ?= ""
+
+python __anonymous() {
+ for c in (d.getVar('CONTAINER_IMAGES') or "").split():
+ (mc, image) = c.split(':')
+
+ # Assume there is a X-lxc-config package for guest-image-X
+ config = image
+ if config.startswith('guest-image-'):
+ config = config[len('guest-image-'):]
+ d.appendVar('LXC_CONTAINER_CONFIGS', ' ' + 'lxc-config-' + config)
+}
diff --git a/meta-agl-ic-container/recipes-platform/images/agl-lxc-install-single-image.inc b/meta-agl-ic-container/recipes-platform/images/agl-lxc-install-single-image.inc
new file mode 100644
index 00000000..de2ea5ca
--- /dev/null
+++ b/meta-agl-ic-container/recipes-platform/images/agl-lxc-install-single-image.inc
@@ -0,0 +1,36 @@
+# Integration type support for install guest root filesystem into host image.
+
+# Handle modification of IMAGE_LINK_NAME done by ULCB builds with Kingfisher support
+MACHINE_SUFFIX = "${@bb.utils.contains('AGL_FEATURES', 'kingfisher', '-kf', '', d)}"
+
+python __anonymous() {
+ for c in (d.getVar('CONTAINER_IMAGES') or "").split():
+ (mc, image) = c.split(':')
+ dependency = 'mc::' + mc + ':' + image + ':do_image_complete'
+ d.appendVarFlag('do_rootfs', 'mcdepends', ' ' + dependency)
+}
+
+install_container_images() {
+ for c in ${CONTAINER_IMAGES}; do
+ config=${c%:*}
+ image=${c#*:}
+ name=${image#guest-image-}
+ rm -rf ${IMAGE_ROOTFS}/var/lib/machines/${name}
+ install -m 0755 -d ${IMAGE_ROOTFS}/var/lib/machines/${name}
+ src="${TOPDIR}/tmp-${config}/deploy/images/${MACHINE}/${image}-${MACHINE}${MACHINE_SUFFIX}.tar.bz2"
+ bbnote "Installing ${src}"
+ tar -C ${IMAGE_ROOTFS}/var/lib/machines/${name} -xf ${src}
+ done
+}
+
+#
+# Force rebuild of rootfs on every build to work around mcdepends issue
+#
+# NOTE:
+# This is currently required as bitbake fails to trigger do_rootfs
+# sometimes even when the guest image has in fact rebuilt. This is
+# being investigated with upstream.
+#
+do_rootfs[nostamp] = "1"
+
+ROOTFS_POSTPROCESS_COMMAND += "install_container_images; "
diff --git a/meta-agl-ic-container/recipes-platform/images/lxc-host-image-minimal.bb b/meta-agl-ic-container/recipes-platform/images/lxc-host-image-minimal.bb
index 38fc7b26..1b4f7a27 100644
--- a/meta-agl-ic-container/recipes-platform/images/lxc-host-image-minimal.bb
+++ b/meta-agl-ic-container/recipes-platform/images/lxc-host-image-minimal.bb
@@ -5,58 +5,13 @@ require recipes-platform/images/agl-image-boot.inc
IMAGE_INSTALL += " \
kernel-image \
lxc \
- ${LXC_CONTAINER_CONFIGS} \
drm-lease-manager \
"
CONTAINER_IMAGES ??= ""
-LXC_CONTAINER_CONFIGS ?= ""
-
-IMAGE_LINGUAS = " "
+IMAGE_LINGUAS ?= " "
NO_RECOMMENDATIONS = "1"
-# Handle modification of IMAGE_LINK_NAME done by ULCB builds with Kingfisher support
-MACHINE_SUFFIX = "${@bb.utils.contains('AGL_FEATURES', 'kingfisher', '-kf', '', d)}"
-
-python __anonymous() {
- for c in (d.getVar('CONTAINER_IMAGES') or "").split():
- (mc, image) = c.split(':')
- dependency = 'mc::' + mc + ':' + image + ':do_image_complete'
- d.appendVarFlag('do_rootfs', 'mcdepends', ' ' + dependency)
-
- # Assume there is a X-lxc-config package for guest-image-X
- config = image
- if config.startswith('guest-image-'):
- config = config[len('guest-image-'):]
- d.appendVar('LXC_CONTAINER_CONFIGS', ' ' + 'lxc-config-' + config)
-}
-
-install_container_images() {
- for c in ${CONTAINER_IMAGES}; do
- config=${c%:*}
- image=${c#*:}
- name=${image#guest-image-}
- rm -rf ${IMAGE_ROOTFS}/var/lib/machines/${name}
- install -m 0755 -d ${IMAGE_ROOTFS}/var/lib/machines/${name}
- src="${TOPDIR}/tmp-${config}/deploy/images/${MACHINE}/${image}-${MACHINE}${MACHINE_SUFFIX}.tar.bz2"
- bbnote "Installing ${src}"
- tar -C ${IMAGE_ROOTFS}/var/lib/machines/${name} -xf ${src}
- done
-}
-
-#
-# Force rebuild of rootfs on every build to work around mcdepends issue
-#
-# NOTE:
-# This is currently required as bitbake fails to trigger do_rootfs
-# sometimes even when the guest image has in fact rebuilt. This is
-# being investigated with upstream.
-#
-do_rootfs[nostamp] = "1"
-
-ROOTFS_POSTPROCESS_COMMAND += "install_container_images; "
-
IMAGE_ROOTFS_EXTRA_SPACE:append = "${@bb.utils.contains("DISTRO_FEATURES", "systemd", " + 4096", "" ,d)}"
-