From c3ae7f9849428a49c077e4b4d212c44ba916c0fb 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 f03875b9..b109b1fc 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 5c5fc4ac..317937bf 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" # The meta-virtualization has a sanity-meta-virt check. # This checker check 'DISTRO_FEATURES has virtualization', but -- cgit 1.2.3-korg