From 2df877da915944438a13eb2ce269be7b603ede21 Mon Sep 17 00:00:00 2001 From: Naoto Yamaguchi Date: Thu, 7 Oct 2021 07:22:31 +0900 Subject: Create new image for ivi container demo AGL IC integration will have two guests, one of the cluster demo, one of the simple ivi demo. This patch add initial support for ivi container for demo. Bug-AGL: SPEC-4099 Signed-off-by: Naoto Yamaguchi Change-Id: I4a1da6e30aee99e8ce2e2c404da78a413c647fd2 --- .../conf/multiconfig/agl-container-ivi.conf | 23 +++++++++++++++ .../lxc-config-cluster-demo_1.0.bbappend | 1 + .../lxc-config/lxc-config-ivi-demo_1.0.bbappend | 3 ++ .../lxc-config/files/config.ivi-demo.in | 33 ++++++++++++++++++++++ .../lxc-config/files/system.conf.ivi-demo.in | 8 ++++++ .../lxc-config/lxc-config-cluster-demo_1.0.bb | 2 +- .../lxc-config/lxc-config-ivi-demo_1.0.bb | 7 +++++ .../images/guest-image-ivi-demo.bb | 9 ++++++ .../recipes-platform/images/lxc-host-image-demo.bb | 4 ++- templates/feature/agl-lxc/50_local.conf.inc | 2 +- 10 files changed, 89 insertions(+), 3 deletions(-) create mode 100644 meta-agl-lxc/conf/multiconfig/agl-container-ivi.conf create mode 100644 meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo_1.0.bbappend create mode 100644 meta-agl-lxc/recipes-container/lxc-config/files/config.ivi-demo.in create mode 100644 meta-agl-lxc/recipes-container/lxc-config/files/system.conf.ivi-demo.in create mode 100644 meta-agl-lxc/recipes-container/lxc-config/lxc-config-ivi-demo_1.0.bb create mode 100644 meta-agl-lxc/recipes-platform/images/guest-image-ivi-demo.bb diff --git a/meta-agl-lxc/conf/multiconfig/agl-container-ivi.conf b/meta-agl-lxc/conf/multiconfig/agl-container-ivi.conf new file mode 100644 index 00000000..d5bc5c41 --- /dev/null +++ b/meta-agl-lxc/conf/multiconfig/agl-container-ivi.conf @@ -0,0 +1,23 @@ +OVERRIDES:append = ":aglcontainerivi" + +TMPDIR = "${TOPDIR}/tmp-${BB_CURRENT_MC}" + +# Can be blank as container image type results in a .tar.bz2 +AGL_DEFAULT_IMAGE_FSTYPES:aglcontainerivi = "" +AGL_EXTRA_IMAGE_FSTYPES:aglcontainerivi = "" + +IMAGE_FSTYPES:aglcontainerivi = "container" + +IMAGE_LINGUAS:append:aglcontainerivi = " en-us" + +PREFERRED_PROVIDER_virtual/kernel_aglcontainerguest = "linux-dummy" +KERNEL_DEVICETREE:aglcontainerivi = "" + +# Disable serial consoles +SERIAL_CONSOLES:aglcontainerivi = "" + +# Remove unneeded firmware packages +EXTRA_IMAGEDEPENDS:remove:aglcontainerivi = "arm-trusted-firmware optee-os u-boot" + +# We assume rngd is running on the host, so unnecessary in container +VIRTUAL-RUNTIME_rngd = "" diff --git a/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-cluster-demo_1.0.bbappend b/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-cluster-demo_1.0.bbappend index 63c45261..b795a9bf 100644 --- a/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-cluster-demo_1.0.bbappend +++ b/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-cluster-demo_1.0.bbappend @@ -1,2 +1,3 @@ +# If you want to change display assign in your board, please change this line in your recipe. DRM_LEASE_DEVICE ?= "${@bb.utils.contains("AGL_FEATURES", "kingfisher", "card0-HDMI-A-2", "card0-HDMI-A-1" ,d)}" diff --git a/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo_1.0.bbappend b/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo_1.0.bbappend new file mode 100644 index 00000000..d38dd3ef --- /dev/null +++ b/meta-agl-lxc/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo_1.0.bbappend @@ -0,0 +1,3 @@ + +# If you want to change display assign in your board, please change this line in your recipe. +DRM_LEASE_DEVICE ?= "${@bb.utils.contains("AGL_FEATURES", "kingfisher", "card0-HDMI-A-1", "card0-HDMI-A-1" ,d)}" diff --git a/meta-agl-lxc/recipes-container/lxc-config/files/config.ivi-demo.in b/meta-agl-lxc/recipes-container/lxc-config/files/config.ivi-demo.in new file mode 100644 index 00000000..01b42802 --- /dev/null +++ b/meta-agl-lxc/recipes-container/lxc-config/files/config.ivi-demo.in @@ -0,0 +1,33 @@ +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 + +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.cgroup.devices.allow = c 226:* rwm +lxc.mount.entry = /dev/dri dev/dri none bind,optional,create=dir + +#lxc.mount.entry = /lxc/share lxc/share none bind,optional,create=dir +lxc.mount.entry = /run/drm-lease-manager/@DRM_LEASE_DEVICE@ var/display/drm-lease-manager/@DRM_LEASE_DEVICE@ none bind,create=file + +lxc.cgroup.devices.allow = c 10:* rwm +lxc.mount.entry = /dev/pvr_sync dev/pvr_sync none bind,optional,create=file + +lxc.net.0.type = empty + +lxc.environment = QT_QPA_PLATFORM=wayland +lxc.environment = QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/plugins/ +#lxc.environment = QT_DEBUG_PLUGINS=1 +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.start.auto = @LXC_AUTO_START@ diff --git a/meta-agl-lxc/recipes-container/lxc-config/files/system.conf.ivi-demo.in b/meta-agl-lxc/recipes-container/lxc-config/files/system.conf.ivi-demo.in new file mode 100644 index 00000000..29a49b6c --- /dev/null +++ b/meta-agl-lxc/recipes-container/lxc-config/files/system.conf.ivi-demo.in @@ -0,0 +1,8 @@ +[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 diff --git a/meta-agl-lxc/recipes-container/lxc-config/lxc-config-cluster-demo_1.0.bb b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-cluster-demo_1.0.bb index 5657785b..57101f7a 100644 --- a/meta-agl-lxc/recipes-container/lxc-config/lxc-config-cluster-demo_1.0.bb +++ b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-cluster-demo_1.0.bb @@ -1,4 +1,4 @@ -DESCRIPTION = "AGL demo container LXC config" +DESCRIPTION = "AGL cluster demo container LXC config" LICENSE = "BSD" LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD;md5=3775480a712fc46a69647678acb234cb" diff --git a/meta-agl-lxc/recipes-container/lxc-config/lxc-config-ivi-demo_1.0.bb b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-ivi-demo_1.0.bb new file mode 100644 index 00000000..6c387def --- /dev/null +++ b/meta-agl-lxc/recipes-container/lxc-config/lxc-config-ivi-demo_1.0.bb @@ -0,0 +1,7 @@ +DESCRIPTION = "AGL simple IVI demo container LXC config" +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD;md5=3775480a712fc46a69647678acb234cb" + +inherit lxc-config + +LXC_AUTO_START = "0" diff --git a/meta-agl-lxc/recipes-platform/images/guest-image-ivi-demo.bb b/meta-agl-lxc/recipes-platform/images/guest-image-ivi-demo.bb new file mode 100644 index 00000000..0eb73102 --- /dev/null +++ b/meta-agl-lxc/recipes-platform/images/guest-image-ivi-demo.bb @@ -0,0 +1,9 @@ +SUMMARY = "LXC ivi demo guest image" +LICENSE = "MIT" + +require guest-image-minimal.bb + +IMAGE_INSTALL += " \ + weston \ + weston-init-guest \ +" diff --git a/meta-agl-lxc/recipes-platform/images/lxc-host-image-demo.bb b/meta-agl-lxc/recipes-platform/images/lxc-host-image-demo.bb index f4d263e9..89b08aca 100644 --- a/meta-agl-lxc/recipes-platform/images/lxc-host-image-demo.bb +++ b/meta-agl-lxc/recipes-platform/images/lxc-host-image-demo.bb @@ -3,7 +3,9 @@ LICENSE = "MIT" require lxc-host-image-minimal.bb -CONTAINER_IMAGES ?= "agl-container-guest:guest-image-cluster-demo" +CONTAINER_IMAGES ?= "agl-container-guest:guest-image-cluster-demo \ + agl-container-ivi:guest-image-ivi-demo \ + " IMAGE_INSTALL += " \ kernel-modules \ diff --git a/templates/feature/agl-lxc/50_local.conf.inc b/templates/feature/agl-lxc/50_local.conf.inc index 964376de..37076877 100644 --- a/templates/feature/agl-lxc/50_local.conf.inc +++ b/templates/feature/agl-lxc/50_local.conf.inc @@ -1,4 +1,4 @@ -BBMULTICONFIG = "agl-container-guest" +BBMULTICONFIG = "agl-container-guest agl-container-ivi" # Disable the meta-virtualization configuration support enabled by # agl-virt. This should be revisited when upgrading past dunfell, -- cgit 1.2.3-korg