From 1f63a80ae9380317f11417819aa8f8656a4e5ef2 Mon Sep 17 00:00:00 2001 From: Scott Murray Date: Mon, 7 Jun 2021 18:26:50 -0400 Subject: Add meta-agl-lxc Add meta-agl-lxc layer with LXC container integration recipes, and "agl-lxc" feature to enable its use. The changes are based on the previous prototypes by Tadao Tanikawa and the updates done for the trial integration layers on the agl-ic-eg github by Naoto Yamaguchi, Hiroyuki Ishii, and Jan-Simon Moeller. The layer can be used by running aglsetup.sh with just the "agl-lxc" feature, then building lxc-host-image-demo with bitbake. Notes: - The agl-lxc feature enables a "agl-container-guest" multiconfig configuration for building the guest image(s). This suffices for demonstrating integrated builds with multiconfig, but may change in the future with extension of aglsetup.sh to add more flexibility. - There are guest-image-minimal and guest-image-cluster-demo recipes that are intended as a base container template and a demo of its use. The cluster-demo image contains the demo cluster reference UI application, and is roughly equivalent to what is named cluster-guest in the agl-ic-eg trial integration configuration. - There are likewise lxc-host-image-minimal and lxc-host-image-demo images. The host demo is configured to pull in the cluster-demo guest image, and configuration has been added such that it will automatically boot and start the cluster reference UI application. - Unlike previous work where the guest container image is added to the host image via a recipe that packages up the guest image's contents, a more direct scheme is used where the guest image is unpacked inside the host image rootfs via the use of the ROOTFS_POSTPROCESS_COMMAND mechanism. This avoids some hassles around potentially mismatched user and group id lists in the host and guest images, with the additional benefit of being faster. However, using this scheme is to some degree only necessary due to the use of LXC with unpacked guest image hierarchies. With other container tooling that uses e.g. OCI images, a revert to using packages may be preferable. - The reusable logic in the lxc-host-image-minimal recipe makes some assumptions wrt naming. They are: - guest image names have the format guest-image- - guest images have a corresponding LXC configuration file recipe with the name lxc-config- The intent is to simplify reuse of the base minimal recipes, but this can be reworked if deemed too restrictive. - packagegroups for e.g. pipewire and weston have purposefully not been defined at this time. It seems better to wait until it is more obvious how useful they would be. Limitations: - The host image is currently rebuilt every time to work around an issue with multiconfig dependencies that is being investigated upstream. This can hopefully be removed in the near future. - The demo images are currently in meta-agl-lxc for convenience. It may make more sense for them to reside in another location to ease shifting some things into meta-agl. - At the moment, only qemux86-64 has been tested. The changes to enable host and guest configuration tweaks for the rcar3 BSP need further investigation and discussion on where they should be maintained. Bug-AGL: SPEC-3953, SPEC-3955 Signed-off-by: Scott Murray Change-Id: I69d41f1d1c736f05cf3b4997dbda147879e2e25d --- templates/feature/agl-lxc/50_bblayers.conf.inc | 4 ++++ templates/feature/agl-lxc/50_local.conf.inc | 1 + templates/feature/agl-lxc/README_feature_agl-lxc.md | 14 ++++++++++++++ templates/feature/agl-lxc/included.dep | 1 + 4 files changed, 20 insertions(+) create mode 100644 templates/feature/agl-lxc/50_bblayers.conf.inc create mode 100644 templates/feature/agl-lxc/50_local.conf.inc create mode 100644 templates/feature/agl-lxc/README_feature_agl-lxc.md create mode 100644 templates/feature/agl-lxc/included.dep (limited to 'templates/feature') diff --git a/templates/feature/agl-lxc/50_bblayers.conf.inc b/templates/feature/agl-lxc/50_bblayers.conf.inc new file mode 100644 index 00000000..766d1da3 --- /dev/null +++ b/templates/feature/agl-lxc/50_bblayers.conf.inc @@ -0,0 +1,4 @@ +BBLAYERS =+ " \ + ${METADIR}/external/meta-qt5 \ + ${METADIR}/meta-agl-devel/meta-agl-lxc \ +" diff --git a/templates/feature/agl-lxc/50_local.conf.inc b/templates/feature/agl-lxc/50_local.conf.inc new file mode 100644 index 00000000..eeb6aa70 --- /dev/null +++ b/templates/feature/agl-lxc/50_local.conf.inc @@ -0,0 +1 @@ +BBMULTICONFIG = "agl-container-guest" diff --git a/templates/feature/agl-lxc/README_feature_agl-lxc.md b/templates/feature/agl-lxc/README_feature_agl-lxc.md new file mode 100644 index 00000000..e5b5391c --- /dev/null +++ b/templates/feature/agl-lxc/README_feature_agl-lxc.md @@ -0,0 +1,14 @@ +--- +description: Feature agl-lxc +authors: Tadao Tanikawa +--- + +### Feature agl-lxc + +*Description is missing - please complete file meta-agl-devel/templates/feature/agl-lxc/README_feature_agl-lxc.md* + +### Dependent features pulled by agl-lxc + +The following features are pulled: + +* agl-container diff --git a/templates/feature/agl-lxc/included.dep b/templates/feature/agl-lxc/included.dep new file mode 100644 index 00000000..df937c78 --- /dev/null +++ b/templates/feature/agl-lxc/included.dep @@ -0,0 +1 @@ +agl-virt agl-drm-lease -- cgit 1.2.3-korg