summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2023-02-13 19:48:05 -0500
committerScott Murray <scott.murray@konsulko.com>2023-02-13 19:48:05 -0500
commit0907a8b8f37e4374eba4f61a63dc29107bcf11f8 (patch)
tree6a865527bad885a16d9557596eb4172c395fadc6
parentc111707a036678c92df8cf633a9ee74f11cdfb13 (diff)
Add example IC EG container demo image
Changes: - Add a meta-agl-ic-container dynamic layer hierarchy to hold metadata dependent on the agl-ic-container feature. - Add configuration to allow building the agl-demo-platform image as a guest container with agl-ic-container. - Add a agl-lxc-demo-platform image that uses agl-demo-platform as the IVI guest container. NOTE: While this image boots, further integration of IC EG work is required to actually successfully boot the agl-demo-platform guest. Bug-AGL: SPEC-4703 Change-Id: I60a46b6ae3c950c4aa25554639d7828462745bfa Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-rw-r--r--conf/layer.conf5
-rw-r--r--dynamic-layers/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-agl-demo-platform/basic.in9
-rw-r--r--dynamic-layers/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-agl-demo-platform/environment.in8
-rw-r--r--dynamic-layers/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-agl-demo-platform/misc.in3
-rw-r--r--dynamic-layers/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-agl-demo-platform/mount.in17
-rw-r--r--dynamic-layers/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-agl-demo-platform/network.in3
-rw-r--r--dynamic-layers/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-agl-demo-platform/system.conf.agl-demo-platform.in9
-rw-r--r--dynamic-layers/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-agl-demo-platform_1.0.bb7
-rw-r--r--dynamic-layers/meta-agl-ic-container/recipes-platform/images/agl-lxc-demo-platform.bb31
9 files changed, 92 insertions, 0 deletions
diff --git a/conf/layer.conf b/conf/layer.conf
index b294db47..fa43bcc6 100644
--- a/conf/layer.conf
+++ b/conf/layer.conf
@@ -9,6 +9,11 @@ BBFILE_COLLECTIONS += "agldemo"
BBFILE_PATTERN_agldemo = "^${LAYERDIR}/"
BBFILE_PRIORITY_agldemo = "70"
+BBFILES_DYNAMIC += " \
+ aglcontainermc:${LAYERDIR}/dynamic-layers/meta-agl-ic-container/*/*/*.bb \
+ aglcontainermc:${LAYERDIR}/dynamic-layers/meta-agl-ic-container/*/*/*.bbappend \
+"
+
LAYERSERIES_COMPAT_agldemo = "kirkstone"
LAYERDEPENDS_agldemo = "aglcore qt5-layer openembedded-layer"
diff --git a/dynamic-layers/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-agl-demo-platform/basic.in b/dynamic-layers/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-agl-demo-platform/basic.in
new file mode 100644
index 00000000..1fd9f347
--- /dev/null
+++ b/dynamic-layers/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-agl-demo-platform/basic.in
@@ -0,0 +1,9 @@
+# lxc basic setting
+lxc.rootfs.path = dir:/var/lib/machines/ivi-demo
+lxc.signal.halt = SIGRTMIN+3
+lxc.signal.reboot = SIGTERM
+lxc.uts.name = "ivi"
+lxc.tty.max = 1
+lxc.pty.max = 1
+lxc.cap.drop = sys_module mac_admin mac_override sys_time
+
diff --git a/dynamic-layers/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-agl-demo-platform/environment.in b/dynamic-layers/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-agl-demo-platform/environment.in
new file mode 100644
index 00000000..632252d5
--- /dev/null
+++ b/dynamic-layers/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-agl-demo-platform/environment.in
@@ -0,0 +1,8 @@
+# lxc environment variable setting
+lxc.environment = QT_QPA_PLATFORM=wayland
+lxc.environment = QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/plugins/
+lxc.environment = QML_IMPORT_PATH=/usr/lib/qml/
+lxc.environment = QML2_IMPORT_PATH=/usr/lib/qml/
+lxc.environment = QT_WAYLAND_SHELL_INTEGRATION=xdg-shell
+lxc.environment = PIPEWIRE_RUNTIME_DIR=/var
+
diff --git a/dynamic-layers/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-agl-demo-platform/misc.in b/dynamic-layers/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-agl-demo-platform/misc.in
new file mode 100644
index 00000000..9b4f4883
--- /dev/null
+++ b/dynamic-layers/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-agl-demo-platform/misc.in
@@ -0,0 +1,3 @@
+# lxc misc setting
+lxc.start.auto = @LXC_AUTO_START@
+
diff --git a/dynamic-layers/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-agl-demo-platform/mount.in b/dynamic-layers/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-agl-demo-platform/mount.in
new file mode 100644
index 00000000..262f09bd
--- /dev/null
+++ b/dynamic-layers/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-agl-demo-platform/mount.in
@@ -0,0 +1,17 @@
+# lxc mount setting
+lxc.mount.entry = /var/lib/lxc/ivi-demo/system.conf etc/systemd/system.conf.d/10-environment.conf none bind,optional,create=file
+
+lxc.mount.auto = cgroup:mixed proc:mixed sys:mixed
+lxc.mount.entry = shm /dev/shm tmpfs defaults 0 0
+lxc.mount.entry = /sys/kernel/security sys/kernel/security none ro,bind,optional 0 0
+lxc.mount.entry = tmpfs run tmpfs defaults
+lxc.mount.entry = /run/udev/data run/udev/data none ro,bind,optional,create=dir
+
+lxc.cgroup.devices.allow = c 226:* rwm
+lxc.mount.entry = /dev/dri dev/dri none bind,optional,create=dir
+
+lxc.mount.entry = /run/drm-lease-manager/lease-ivi var/display/drm-lease-manager/lease none bind,create=file
+
+lxc.cgroup.devices.allow = c 13:* rwm
+lxc.mount.entry = /dev/input dev/input none bind,optional,create=dir
+lxc.mount.entry = /run/pipewire/pipewire-0 var/pipewire-0 none bind,optional,create=file
diff --git a/dynamic-layers/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-agl-demo-platform/network.in b/dynamic-layers/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-agl-demo-platform/network.in
new file mode 100644
index 00000000..573f4796
--- /dev/null
+++ b/dynamic-layers/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-agl-demo-platform/network.in
@@ -0,0 +1,3 @@
+# lxc network setting
+lxc.net.0.type = empty
+
diff --git a/dynamic-layers/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-agl-demo-platform/system.conf.agl-demo-platform.in b/dynamic-layers/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-agl-demo-platform/system.conf.agl-demo-platform.in
new file mode 100644
index 00000000..de7c6cdd
--- /dev/null
+++ b/dynamic-layers/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-agl-demo-platform/system.conf.agl-demo-platform.in
@@ -0,0 +1,9 @@
+[Manager]
+DefaultEnvironment = DLM_RUNTIME_PATH=/var/display/drm-lease-manager
+DefaultEnvironment = DRM_LEASE_DEVICE=@DRM_LEASE_DEVICE@
+DefaultEnvironment = QT_QPA_PLATFORM=wayland
+DefaultEnvironment = QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/plugins/
+DefaultEnvironment = QML_IMPORT_PATH=/usr/lib/qml/
+DefaultEnvironment = QML2_IMPORT_PATH=/usr/lib/qml/
+DefaultEnvironment = QT_WAYLAND_SHELL_INTEGRATION=xdg-shell
+DefaultEnvironment = PIPEWIRE_RUNTIME_DIR=/var
diff --git a/dynamic-layers/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-agl-demo-platform_1.0.bb b/dynamic-layers/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-agl-demo-platform_1.0.bb
new file mode 100644
index 00000000..049c8ab8
--- /dev/null
+++ b/dynamic-layers/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-agl-demo-platform_1.0.bb
@@ -0,0 +1,7 @@
+DESCRIPTION = "AGL IVI demo container LXC config"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9"
+
+inherit lxc-config
+
+LXC_AUTO_START ??= "0"
diff --git a/dynamic-layers/meta-agl-ic-container/recipes-platform/images/agl-lxc-demo-platform.bb b/dynamic-layers/meta-agl-ic-container/recipes-platform/images/agl-lxc-demo-platform.bb
new file mode 100644
index 00000000..b8402294
--- /dev/null
+++ b/dynamic-layers/meta-agl-ic-container/recipes-platform/images/agl-lxc-demo-platform.bb
@@ -0,0 +1,31 @@
+SUMMARY = "LXC host demo image"
+LICENSE = "MIT"
+
+require recipes-platform/images/lxc-host-image-minimal.bb
+
+CONTAINER_IMAGES ?= "agl-container-cluster:guest-image-cluster-demo \
+ agl-container-ivi:agl-demo-platform \
+ "
+
+IMAGE_INSTALL += " \
+ kernel-modules \
+ alsa-utils \
+ packagegroup-pipewire \
+ pipewire-ic-ipc \
+ wireplumber-config-agl \
+"
+
+# packages required for network bridge settings via lxc-net
+IMAGE_INSTALL += " \
+ lxc-networking \
+ iptables-modules \
+ dnsmasq \
+ systemd-netif-config \
+ kernel-module-xt-addrtype \
+ kernel-module-xt-multiport \
+"
+
+# network manager to use
+VIRTUAL-RUNTIME_net_manager = "systemd"
+
+IMAGE_INSTALL:append:rcar-gen3 = " kernel-module-gles "