diff options
141 files changed, 1532 insertions, 790 deletions
diff --git a/meta-agl-drm-lease/SECURITY.md b/meta-agl-drm-lease/SECURITY.md new file mode 100644 index 00000000..a3c80fdd --- /dev/null +++ b/meta-agl-drm-lease/SECURITY.md @@ -0,0 +1,19 @@ +How to Report a Potential Vulnerability? +======================================== + +If you would like to report a public issue (for example, one with a released +CVE number), please report it to security AT automotivelinux DOT org + +If you are dealing with a not-yet released or urgent issue, please send a +message to security AT automotivelinux DOT org, including as many details as +possible: the layer or software module affected, the recipe and its version, +and any example code, if available. + +Branches maintained with security fixes +--------------------------------------- + +See [https://wiki.automotivelinux.org/schedule this page] +for detailed info regarding the policies and maintenance of Stable branches. + +The [https://wiki.automotivelinux.org/agl-distro/release-notes Release page] +contains a list of all releases of Automotive Grade Linux. diff --git a/meta-agl-drm-lease/dynamic-layers/meta-agl-core/recipes-graphics/agl-compositor/agl-compositor/0001-Add-drm-lease-support.patch b/meta-agl-drm-lease/dynamic-layers/meta-agl-core/recipes-graphics/agl-compositor/agl-compositor/0001-Add-drm-lease-support.patch deleted file mode 100644 index a5853d36..00000000 --- a/meta-agl-drm-lease/dynamic-layers/meta-agl-core/recipes-graphics/agl-compositor/agl-compositor/0001-Add-drm-lease-support.patch +++ /dev/null @@ -1,222 +0,0 @@ -From 7963529fc8e3e17a9596ef27cccc5c1b9e065e30 Mon Sep 17 00:00:00 2001 -From: Marius Vlad <marius.vlad@collabora.com> -Date: Fri, 3 May 2024 14:29:13 +0300 -Subject: [PATCH] Add drm-lease support - -Add an option to use a DRM lease instead of a DRM device -as the video output. This will allow agl-compositor to -operate alongside other applications output via a DRM -lease. - -Signed-off-by: Marius Vlad <marius.vlad@collabora.com> -Signed-off-by: Damian Hobson-Garcia <dhobsong@igel.co.jp> -Change-Id: I78f8b9425280d4c0606003cd86f4cf30c065b888 ---- - meson.build | 6 +++++ - meson_options.txt | 8 +++++++ - src/compositor.c | 7 ++++++ - src/drm-lease.c | 52 ++++++++++++++++++++++++++++++++++++++++++++ - src/drm-lease.h | 19 ++++++++++++++++ - src/ivi-compositor.h | 2 ++ - 6 files changed, 94 insertions(+) - create mode 100644 src/drm-lease.c - create mode 100644 src/drm-lease.h - -diff --git a/meson.build b/meson.build -index aa811ad..f5a98e8 100644 ---- a/meson.build -+++ b/meson.build -@@ -163,6 +163,12 @@ elif policy_to_install == 'rba' - message('Installing rba policy') - endif - -+if get_option('drm-lease') -+ deps_libweston += dependency('libdlmclient') -+ srcs_agl_compositor += 'src/drm-lease.c' -+ config_h.set('HAVE_DRM_LEASE', '1') -+endif -+ - # From meson documentation: - # In order to look for headers in a specific directory you can use args : - # '-I/extra/include/dir, but this should only be used in exceptional cases for -diff --git a/meson_options.txt b/meson_options.txt -index 7c0e103..e0463f4 100644 ---- a/meson_options.txt -+++ b/meson_options.txt -@@ -5,6 +5,7 @@ option( - value: 'allow-all', - description: 'Default policy when no specific policy was set' - ) -+ - option( - 'grpc-proxy', - type: 'boolean', -@@ -24,3 +25,10 @@ option( - value: '/usr/bin/Xwayland', - description: 'Xwayland: path to installed Xwayland binary' - ) -+ -+option( -+ 'drm-lease', -+ type: 'boolean', -+ value: false, -+ description: 'Support for running weston with a leased DRM Master' -+) -diff --git a/src/compositor.c b/src/compositor.c -index 078157a..156a0ae 100644 ---- a/src/compositor.c -+++ b/src/compositor.c -@@ -57,6 +57,8 @@ - #include "config.h" - #include "agl-shell-server-protocol.h" - -+#include "drm-lease.h" -+ - #ifdef HAVE_REMOTING - #include "remote.h" - #endif -@@ -1069,6 +1071,7 @@ load_drm_backend(struct ivi_compositor *ivi, int *argc, char *argv[], - bool force_pixman = false; - bool use_shadow; - bool without_input = false; -+ char *drm_lease_name = NULL; - - const struct weston_option options[] = { - { WESTON_OPTION_STRING, "seat", 0, &config.seat_id }, -@@ -1094,6 +1097,7 @@ load_drm_backend(struct ivi_compositor *ivi, int *argc, char *argv[], - &config.pageflip_timeout, 0); - weston_config_section_get_bool(section, "pixman-shadow", &use_shadow, 1); - config.use_pixman_shadow = use_shadow; -+ config.device_fd = get_drm_lease(&ivi->drm_lease, drm_lease_name); - - if (without_input) - ivi->compositor->require_input = !without_input; -@@ -1114,12 +1118,14 @@ load_drm_backend(struct ivi_compositor *ivi, int *argc, char *argv[], - goto error; - } - -+ free(drm_lease_name); - load_remoting_plugin(ivi, ivi->config); - - return 0; - - error: - free(config.gbm_format); -+ free(drm_lease_name); - free(config.seat_id); - return -1; - } -@@ -2263,6 +2269,7 @@ error_compositor: - free(modules); - modules = NULL; - -+ release_drm_lease(ivi.drm_lease); - weston_compositor_destroy(ivi.compositor); - - weston_log_scope_destroy(log_scope); -diff --git a/src/drm-lease.c b/src/drm-lease.c -new file mode 100644 -index 0000000..887277d ---- /dev/null -+++ b/src/drm-lease.c -@@ -0,0 +1,52 @@ -+/* -+ * Copyright © 2022 IGEL Co., Ltd. -+ * -+ * Permission is hereby granted, free of charge, to any person obtaining -+ * a copy of this software and associated documentation files (the -+ * "Software"), to deal in the Software without restriction, including -+ * without limitation the rights to use, copy, modify, merge, publish, -+ * distribute, sublicense, and/or sell copies of the Software, and to -+ * permit persons to whom the Software is furnished to do so, subject to -+ * the following conditions: -+ * -+ * The above copyright notice and this permission notice (including the -+ * next paragraph) shall be included in all copies or substantial -+ * portions of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS -+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -+ * SOFTWARE. -+ */ -+ -+#include "drm-lease.h" -+ -+#include <libweston/libweston.h> -+ -+int get_drm_lease(struct dlm_lease **drm_lease, const char *drm_lease_name) { -+ if (!drm_lease_name) -+ return -1; -+ -+ int drm_fd = -1; -+ struct dlm_lease *lease = dlm_get_lease(drm_lease_name); -+ if (lease) { -+ drm_fd = dlm_lease_fd(lease); -+ if (drm_fd < 0) -+ dlm_release_lease(lease); -+ } -+ if (drm_fd < 0) -+ weston_log("Could not get DRM lease %s\n", drm_lease_name); -+ -+ *drm_lease = lease; -+ return drm_fd; -+} -+ -+void release_drm_lease(struct dlm_lease *lease) { -+ if (lease) -+ dlm_release_lease(lease); -+} -+ -diff --git a/src/drm-lease.h b/src/drm-lease.h -new file mode 100644 -index 0000000..9fdc428 ---- /dev/null -+++ b/src/drm-lease.h -@@ -0,0 +1,19 @@ -+#ifndef DRM_LEASE_H -+#define DRM_LEASE_H -+ -+#include "config.h" -+ -+#ifdef HAVE_DRM_LEASE -+#include <dlmclient.h> -+int get_drm_lease(struct dlm_lease **drm_lease, const char *drm_lease_name); -+void release_drm_lease(struct dlm_lease *drm_lease); -+#else -+struct dlm_lease; -+static int get_drm_lease(struct dlm_lease **drm_lease, const char *drm_lease_name) { -+ return -1; -+} -+static void release_drm_lease(struct dlm_lease *drm_lease) { -+} -+ -+#endif -+#endif /* DRM_LEASE_H */ -diff --git a/src/ivi-compositor.h b/src/ivi-compositor.h -index 695cf95..e3df79a 100644 ---- a/src/ivi-compositor.h -+++ b/src/ivi-compositor.h -@@ -36,6 +36,7 @@ - #include <libweston/desktop.h> - - #include "remote.h" -+#include "drm-lease.h" - - #include "agl-shell-server-protocol.h" - -@@ -145,6 +146,7 @@ struct ivi_compositor { - - bool need_ivi_output_relayout; - struct wl_list child_process_list; -+ struct dlm_lease *drm_lease; - }; - - struct ivi_surface; --- -2.43.0 - diff --git a/meta-agl-drm-lease/dynamic-layers/meta-agl-core/recipes-graphics/agl-compositor/agl-compositor/0001-compositor-Add-missing-drm-lease-name.patch b/meta-agl-drm-lease/dynamic-layers/meta-agl-core/recipes-graphics/agl-compositor/agl-compositor/0001-compositor-Add-missing-drm-lease-name.patch deleted file mode 100644 index 57ff8486..00000000 --- a/meta-agl-drm-lease/dynamic-layers/meta-agl-core/recipes-graphics/agl-compositor/agl-compositor/0001-compositor-Add-missing-drm-lease-name.patch +++ /dev/null @@ -1,35 +0,0 @@ -From f2e5939476630add3bf2c9254f72a0b57101f848 Mon Sep 17 00:00:00 2001 -From: Marius Vlad <marius.vlad@collabora.com> -Date: Mon, 10 Jun 2024 12:02:33 +0300 -Subject: [PATCH] compositor: Add missing drm-lease-name - -This was an oversight from commit 7963529fc8e3e, 'Add drm-lease -support', which backported the drm-lease support in the AGL compositor -for next release. - -Without a drm-lease-name, the device_id will be an negative integer -resulting in not using the parameter. This should fix leasing with the -AGL compositor. - -Bug-AGL: SPEC-5160 -Signed-off-by: Marius Vlad <marius.vlad@collabora.com> -Change-Id: I4282c115d2038852f6a56a77ce6ab81f2b8f62b4 ---- - src/compositor.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/compositor.c b/src/compositor.c -index 156a0ae..65c61d8 100644 ---- a/src/compositor.c -+++ b/src/compositor.c -@@ -1076,6 +1076,7 @@ load_drm_backend(struct ivi_compositor *ivi, int *argc, char *argv[], - const struct weston_option options[] = { - { WESTON_OPTION_STRING, "seat", 0, &config.seat_id }, - { WESTON_OPTION_STRING, "drm-device", 0, &config.specific_device }, -+ { WESTON_OPTION_STRING, "drm-lease", 0, &drm_lease_name }, - { WESTON_OPTION_BOOLEAN, "current-mode", 0, &use_current_mode }, - { WESTON_OPTION_BOOLEAN, "use-pixman", 0, &force_pixman }, - { WESTON_OPTION_BOOLEAN, "continue-without-input", false, &without_input } --- -2.43.0 - diff --git a/meta-agl-drm-lease/dynamic-layers/meta-agl-core/recipes-graphics/agl-compositor/agl-compositor_git.bbappend b/meta-agl-drm-lease/dynamic-layers/meta-agl-core/recipes-graphics/agl-compositor/agl-compositor_git.bbappend index 63138299..e84635f4 100644 --- a/meta-agl-drm-lease/dynamic-layers/meta-agl-core/recipes-graphics/agl-compositor/agl-compositor_git.bbappend +++ b/meta-agl-drm-lease/dynamic-layers/meta-agl-core/recipes-graphics/agl-compositor/agl-compositor_git.bbappend @@ -1,6 +1 @@ -FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" - -SRC_URI += "file://0001-Add-drm-lease-support.patch file://0001-compositor-Add-missing-drm-lease-name.patch" - -PACKAGECONFIG[drm-lease] = "-Ddrm-lease=true,-Ddrm-lease=false,drm-lease-manager" PACKAGECONFIG:append = " drm-lease" diff --git a/meta-agl-ic-container/SECURITY.md b/meta-agl-ic-container/SECURITY.md new file mode 100644 index 00000000..a3c80fdd --- /dev/null +++ b/meta-agl-ic-container/SECURITY.md @@ -0,0 +1,19 @@ +How to Report a Potential Vulnerability? +======================================== + +If you would like to report a public issue (for example, one with a released +CVE number), please report it to security AT automotivelinux DOT org + +If you are dealing with a not-yet released or urgent issue, please send a +message to security AT automotivelinux DOT org, including as many details as +possible: the layer or software module affected, the recipe and its version, +and any example code, if available. + +Branches maintained with security fixes +--------------------------------------- + +See [https://wiki.automotivelinux.org/schedule this page] +for detailed info regarding the policies and maintenance of Stable branches. + +The [https://wiki.automotivelinux.org/agl-distro/release-notes Release page] +contains a list of all releases of Automotive Grade Linux. diff --git a/meta-agl-ic-container/classes/lxc-config.bbclass b/meta-agl-ic-container/classes/lxc-config.bbclass deleted file mode 100644 index 921aaf92..00000000 --- a/meta-agl-ic-container/classes/lxc-config.bbclass +++ /dev/null @@ -1,58 +0,0 @@ -# Helper class for installing LXC guest configuration. -# Assumes that: -# - Recipe name is 'lxc-config-' + <guest name> -# - Corresponding files {config,system.conf}.<guest name>.in are in -# the file search path -# - That references to the DRM lease device name are parameterized -# with @DRM_LEASE_DEVICE@ in the .in files -# As well: -# - The .in files can optionally use the @LXC_AUTO_START@ parameter -# to pick up the value of the LXC_AUTO_START variable for use in -# defining lxc.start.auto. The default value is "0", so recipes -# need to assign the variable to "1" to have the associated -# container start automatically. - -python __anonymous() { - bpn = d.getVar('BPN') - if not bpn.startswith('lxc-config-'): - bb.error('Recipe name does not start with \'lxc-config-\'') - config = bpn[11:] - d.setVar('LXC_CONFIG_NAME', config) - src_uri = 'file://basic.in' \ - + ' file://mount.in' \ - + ' file://network.in' \ - + ' file://environment.in' \ - + ' file://misc.in' \ - + ' file://system.conf.' + config + '.in' - d.setVar('SRC_URI', src_uri) -} - -S = "${WORKDIR}" - -inherit allarch - -DRM_LEASE_DEVICE ??= "card0-HDMI-A-1" - -DRM_LEASE_DEVICE:qemuall ?= "card0-Virtual-1" - -LXC_AUTO_START ??= "0" - -do_configure[noexec] = "1" -do_compile[noexec] = "1" - -do_install () { - rm -f ${WORKDIR}/config.${LXC_CONFIG_NAME}.in - files="basic.in mount.in network.in environment.in misc.in" - for f in ${files}; do - cat ${WORKDIR}/$f >> ${WORKDIR}/config.${LXC_CONFIG_NAME}.in - done - - install -m 0755 -d ${D}/var/lib/lxc/${LXC_CONFIG_NAME} - for f in config.${LXC_CONFIG_NAME}.in system.conf.${LXC_CONFIG_NAME}.in; do - sed -e 's|@DRM_LEASE_DEVICE@|${DRM_LEASE_DEVICE}|g' \ - -e 's|@LXC_AUTO_START@|${LXC_AUTO_START}|g' \ - ${WORKDIR}/$f > ${D}${localstatedir}/lib/lxc/${LXC_CONFIG_NAME}/${f%.${LXC_CONFIG_NAME}.in} - done -} - -FILES:${PN} = "${localstatedir}/lib/lxc/" diff --git a/meta-agl-ic-container/conf/include/drm-lease-multi-display.inc b/meta-agl-ic-container/conf/include/drm-lease-multi-display.inc deleted file mode 100644 index 398958f5..00000000 --- a/meta-agl-ic-container/conf/include/drm-lease-multi-display.inc +++ /dev/null @@ -1,6 +0,0 @@ -HAS_MULTI_DISPLAY ?= "" -HAS_MULTI_DISPLAY += "${@bb.utils.contains("AGL_FEATURES", "kingfisher", "1", "" ,d)}" -HAS_MULTI_DISPLAY += "${@bb.utils.contains("AGL_FEATURES", "agl-refhw-h3", "1", "" ,d)}" -HAS_MULTI_DISPLAY += "${@bb.utils.contains("MACHINE", "raspberrypi4-64", "1", "" ,d)}" -HAS_MULTI_DISPLAY += "${@bb.utils.contains("MACHINE", "raspberrypi5", "1", "" ,d)}" -HAS_MULTI_DISPLAY += "${@bb.utils.contains("MACHINE", "salvator-x", "1", "" ,d)}" diff --git a/meta-agl-ic-container/conf/include/mc-conf-default.inc b/meta-agl-ic-container/conf/include/mc-conf-default.inc deleted file mode 100644 index 1d3022e4..00000000 --- a/meta-agl-ic-container/conf/include/mc-conf-default.inc +++ /dev/null @@ -1,2 +0,0 @@ -# We don't want the app framework or demo bits in the host image. -AGL_FEATURES:remove = "agl-app-fw agldemo agl-flutter" diff --git a/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/lxc-config/lxc-config-cluster-demo/mount.in b/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/lxc-config/lxc-config-cluster-demo/mount.in deleted file mode 100644 index fdb51877..00000000 --- a/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/lxc-config/lxc-config-cluster-demo/mount.in +++ /dev/null @@ -1,13 +0,0 @@ -# lxc mount setting -lxc.mount.entry = /var/lib/lxc/cluster-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 = /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 = /run/drm-lease-manager/lease-cluster var/display/drm-lease-manager/lease none bind,create=file - -lxc.mount.entry = /run/pipewire/icipc-0 var/icipc-0 none bind,optional,create=file - diff --git a/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/lxc-config/lxc-config-cluster-demo_1.0.bbappend b/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/lxc-config/lxc-config-cluster-demo_1.0.bbappend deleted file mode 100644 index 07fc0da3..00000000 --- a/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/lxc-config/lxc-config-cluster-demo_1.0.bbappend +++ /dev/null @@ -1,8 +0,0 @@ -require conf/include/drm-lease-multi-display.inc - -FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" - -# If you want to change display assign in your board, please change this line in your recipe. -DRM_LEASE_DEVICE ?= "${@bb.utils.contains("HAS_MULTI_DISPLAY", "1", "card0-HDMI-A-2", "card0-HDMI-A-1" ,d)}" - -LXC_AUTO_START ?= "1" diff --git a/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/lxc-config/lxc-config-ivi-demo/mount.in b/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/lxc-config/lxc-config-ivi-demo/mount.in deleted file mode 100644 index ab6f7540..00000000 --- a/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/lxc-config/lxc-config-ivi-demo/mount.in +++ /dev/null @@ -1,18 +0,0 @@ -# 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 = /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/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/lxc-config/lxc-config-ivi-demo/network.in b/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/lxc-config/lxc-config-ivi-demo/network.in deleted file mode 100644 index 6545b1ad..00000000 --- a/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/lxc-config/lxc-config-ivi-demo/network.in +++ /dev/null @@ -1,5 +0,0 @@ -# lxc network setting -lxc.net.0.type = veth -lxc.net.0.link = lxcbr0 -lxc.net.0.flags = up -lxc.net.0.hwaddr = 00:16:3e:69:87:a4 diff --git a/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/lxc-config/lxc-config-ivi-demo_1.0.bbappend b/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/lxc-config/lxc-config-ivi-demo_1.0.bbappend deleted file mode 100644 index f3a0e60d..00000000 --- a/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/lxc-config/lxc-config-ivi-demo_1.0.bbappend +++ /dev/null @@ -1,5 +0,0 @@ -require conf/include/drm-lease-multi-display.inc - -FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" - -LXC_AUTO_START ?= "${@bb.utils.contains("HAS_MULTI_DISPLAY", "1", "1", "0" ,d)}" diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-cluster-demo/mount.in b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-cluster-demo/mount.in deleted file mode 100644 index 523b5272..00000000 --- a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-cluster-demo/mount.in +++ /dev/null @@ -1,17 +0,0 @@ -# lxc mount setting -lxc.mount.entry = /var/lib/lxc/cluster-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 = /run/drm-lease-manager/lease-cluster var/display/drm-lease-manager/lease 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.mount.entry = /run/pipewire/icipc-0 var/icipc-0 none bind,optional,create=file - diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-cluster-demo_1.0.bbappend b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-cluster-demo_1.0.bbappend deleted file mode 100644 index 07fc0da3..00000000 --- a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-cluster-demo_1.0.bbappend +++ /dev/null @@ -1,8 +0,0 @@ -require conf/include/drm-lease-multi-display.inc - -FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" - -# If you want to change display assign in your board, please change this line in your recipe. -DRM_LEASE_DEVICE ?= "${@bb.utils.contains("HAS_MULTI_DISPLAY", "1", "card0-HDMI-A-2", "card0-HDMI-A-1" ,d)}" - -LXC_AUTO_START ?= "1" diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo/mount.in b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo/mount.in deleted file mode 100644 index 2fbf4193..00000000 --- a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo/mount.in +++ /dev/null @@ -1,22 +0,0 @@ -# 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.cgroup.devices.allow = c 10:* rwm -lxc.mount.entry = /dev/pvr_sync dev/pvr_sync none bind,optional,create=file - -lxc.mount.entry = /run/pipewire/pipewire-0 var/pipewire-0 none bind,optional,create=file - diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo/network.in b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo/network.in deleted file mode 100644 index 6545b1ad..00000000 --- a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo/network.in +++ /dev/null @@ -1,5 +0,0 @@ -# lxc network setting -lxc.net.0.type = veth -lxc.net.0.link = lxcbr0 -lxc.net.0.flags = up -lxc.net.0.hwaddr = 00:16:3e:69:87:a4 diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo_1.0.bbappend b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo_1.0.bbappend deleted file mode 100644 index f3a0e60d..00000000 --- a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/lxc-config/lxc-config-ivi-demo_1.0.bbappend +++ /dev/null @@ -1,5 +0,0 @@ -require conf/include/drm-lease-multi-display.inc - -FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" - -LXC_AUTO_START ?= "${@bb.utils.contains("HAS_MULTI_DISPLAY", "1", "1", "0" ,d)}" diff --git a/meta-agl-ic-container/dynamic-layers/meta-rockchip/recipes-platform/images/agl-host-image-drm-lease-test.bbappend b/meta-agl-ic-container/dynamic-layers/meta-rockchip/recipes-platform/images/agl-host-image-drm-lease-test.bbappend new file mode 100644 index 00000000..138ee521 --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rockchip/recipes-platform/images/agl-host-image-drm-lease-test.bbappend @@ -0,0 +1,5 @@ +IMAGE_INSTALL:append = " \ + linux-firmware-rtl8822 \ + linux-firmware-rtl8125 \ + rockchip-libmali-firmware \ +" diff --git a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo/nanopct6/agl-flutter-ivi-demo.json b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo/nanopct6/agl-flutter-ivi-demo.json index 3066c4da..2b67c107 100644 --- a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo/nanopct6/agl-flutter-ivi-demo.json +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo/nanopct6/agl-flutter-ivi-demo.json @@ -30,9 +30,14 @@ }, "resource": [ { - "type": "cgroup", + "type": "cgroupv2", "object": "cpuset.cpus", - "value": "0-6" + "value": "1-7" + }, + { + "type": "cgroupv2", + "object": "memory.max", + "value": "8G" }, { "type": "prlimit", @@ -123,6 +128,15 @@ "optional": 0, "wideallow": 0, "exclusive": 0 + }, + { + "type": "devnode", + "from": "/dev/mpp_service", + "to": "dev/mpp_service", + "devnode": "/dev/mpp_service", + "optional": 1, + "wideallow": 1, + "exclusive": 0 } ], "dynamic": [ diff --git a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo/rcar-gen3/agl-flutter-ivi-demo.json b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo/rcar-gen3/agl-flutter-ivi-demo.json index 78a03ef8..f8799738 100644 --- a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo/rcar-gen3/agl-flutter-ivi-demo.json +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo/rcar-gen3/agl-flutter-ivi-demo.json @@ -26,6 +26,18 @@ "HOME=/home/root" ] }, + "resource": [ + { + "type": "cgroupv2", + "object": "cpuset.cpus", + "value": "1-7" + }, + { + "type": "prlimit", + "object": "rtprio", + "value": "50" + } + ], "fs": { "mount": [ { diff --git a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo_1.0.bb b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo_1.0.bb index c9563c11..07120eee 100644 --- a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo_1.0.bb +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo_1.0.bb @@ -12,6 +12,7 @@ do_install:append() { install -Dm644 ${WORKDIR}/agl-flutter-ivi-demo.json ${D}/opt/container/conf/agl-flutter-ivi-demo.json install -d ${D}/opt/container/guests/agl-flutter-ivi-demo/rootfs install -d ${D}/opt/container/guests/agl-flutter-ivi-demo/nv + install -d ${D}/opt/container/guests/agl-flutter-ivi-demo/shmounts } PACKAGE_ARCH = "${MACHINE_ARCH}" diff --git a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo/nanopct6/agl-momi-ivi-demo.json b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo/nanopct6/agl-momi-ivi-demo.json index 25caed4a..bea3cb34 100644 --- a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo/nanopct6/agl-momi-ivi-demo.json +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo/nanopct6/agl-momi-ivi-demo.json @@ -29,9 +29,14 @@ }, "resource": [ { - "type": "cgroup", + "type": "cgroupv2", "object": "cpuset.cpus", - "value": "0-6" + "value": "1-7" + }, + { + "type": "cgroupv2", + "object": "memory.max", + "value": "8G" }, { "type": "prlimit", @@ -122,6 +127,15 @@ "optional": 0, "wideallow": 0, "exclusive": 0 + }, + { + "type": "devnode", + "from": "/dev/mpp_service", + "to": "dev/mpp_service", + "devnode": "/dev/mpp_service", + "optional": 1, + "wideallow": 1, + "exclusive": 0 } ], "dynamic": [ diff --git a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo/rcar-gen3/agl-momi-ivi-demo.json b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo/rcar-gen3/agl-momi-ivi-demo.json index 97f3c3d1..f48664d4 100644 --- a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo/rcar-gen3/agl-momi-ivi-demo.json +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo/rcar-gen3/agl-momi-ivi-demo.json @@ -27,6 +27,18 @@ "HOME=/home/root" ] }, + "resource": [ + { + "type": "cgroupv2", + "object": "cpuset.cpus", + "value": "1-7" + }, + { + "type": "prlimit", + "object": "rtprio", + "value": "50" + } + ], "fs": { "mount": [ { diff --git a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo_1.0.bb b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo_1.0.bb index 682d6527..6b4ce42c 100644 --- a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo_1.0.bb +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo_1.0.bb @@ -12,6 +12,7 @@ do_install:append() { install -Dm644 ${WORKDIR}/agl-momi-ivi-demo.json ${D}/opt/container/conf/agl-momi-ivi-demo.json install -d ${D}/opt/container/guests/agl-momi-ivi-demo/rootfs install -d ${D}/opt/container/guests/agl-momi-ivi-demo/nv + install -d ${D}/opt/container/guests/agl-momi-ivi-demo/shmounts } PACKAGE_ARCH = "${MACHINE_ARCH}" diff --git a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo/nanopct6/agl-qt-ivi-demo.json b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo/nanopct6/agl-qt-ivi-demo.json index b74170ef..0e7521c4 100644 --- a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo/nanopct6/agl-qt-ivi-demo.json +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo/nanopct6/agl-qt-ivi-demo.json @@ -31,9 +31,14 @@ }, "resource": [ { - "type": "cgroup", + "type": "cgroupv2", "object": "cpuset.cpus", - "value": "0-6" + "value": "1-7" + }, + { + "type": "cgroupv2", + "object": "memory.max", + "value": "8G" }, { "type": "prlimit", @@ -124,6 +129,15 @@ "optional": 0, "wideallow": 0, "exclusive": 0 + }, + { + "type": "devnode", + "from": "/dev/mpp_service", + "to": "dev/mpp_service", + "devnode": "/dev/mpp_service", + "optional": 1, + "wideallow": 1, + "exclusive": 0 } ], "dynamic": [ diff --git a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo/rcar-gen3/agl-qt-ivi-demo.json b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo/rcar-gen3/agl-qt-ivi-demo.json index ccbf66b6..bf01e0e2 100644 --- a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo/rcar-gen3/agl-qt-ivi-demo.json +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo/rcar-gen3/agl-qt-ivi-demo.json @@ -27,6 +27,18 @@ "HOME=/home/root" ] }, + "resource": [ + { + "type": "cgroupv2", + "object": "cpuset.cpus", + "value": "1-7" + }, + { + "type": "prlimit", + "object": "rtprio", + "value": "50" + } + ], "fs": { "mount": [ { diff --git a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo_1.0.bb b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo_1.0.bb index 6752beaa..606e5759 100644 --- a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo_1.0.bb +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo_1.0.bb @@ -12,6 +12,7 @@ do_install:append() { install -Dm644 ${WORKDIR}/agl-qt-ivi-demo.json ${D}/opt/container/conf/agl-qt-ivi-demo.json install -d ${D}/opt/container/guests/agl-qt-ivi-demo/rootfs install -d ${D}/opt/container/guests/agl-qt-ivi-demo/nv + install -d ${D}/opt/container/guests/agl-qt-ivi-demo/shmounts } PACKAGE_ARCH = "${MACHINE_ARCH}" diff --git a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-cluster-demo/nanopct6/cluster-demo.json b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-cluster-demo/nanopct6/cluster-demo.json index 90a9b0a8..7058f5a5 100644 --- a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-cluster-demo/nanopct6/cluster-demo.json +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-cluster-demo/nanopct6/cluster-demo.json @@ -28,7 +28,7 @@ }, "resource": [ { - "type": "cgroup", + "type": "cgroupv2", "object": "cpuset.cpus", "value": "0" }, diff --git a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-cluster-demo/rcar-gen3/cluster-demo.json b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-cluster-demo/rcar-gen3/cluster-demo.json index c0bff97b..2aa0dcf3 100644 --- a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-cluster-demo/rcar-gen3/cluster-demo.json +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-cluster-demo/rcar-gen3/cluster-demo.json @@ -26,6 +26,18 @@ "HOME=/home/root" ] }, + "resource": [ + { + "type": "cgroupv2", + "object": "cpuset.cpus", + "value": "0" + }, + { + "type": "prlimit", + "object": "rtprio", + "value": "50" + } + ], "fs": { "mount": [ { diff --git a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-cluster-demo_1.0.bb b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-cluster-demo_1.0.bb index b5c2aea1..9bc43f6f 100644 --- a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-cluster-demo_1.0.bb +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-cluster-demo_1.0.bb @@ -13,6 +13,7 @@ do_install:append() { install -Dm644 ${WORKDIR}/cluster-demo.json ${D}/opt/container/conf/cluster-demo.json install -d ${D}/opt/container/guests/cluster-demo/rootfs install -d ${D}/opt/container/guests/cluster-demo/nv + install -d ${D}/opt/container/guests/cluster-demo/shmounts } PACKAGE_ARCH = "${MACHINE_ARCH}" diff --git a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-drm-lease-test-cluster/drm-lease-test-cluster.json b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-drm-lease-test-cluster/drm-lease-test-cluster.json new file mode 100644 index 00000000..fc173b86 --- /dev/null +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-drm-lease-test-cluster/drm-lease-test-cluster.json @@ -0,0 +1,3 @@ +{ + "name": "cluster-demo" +} diff --git a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-drm-lease-test-cluster/nanopct6/drm-lease-test-cluster.json b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-drm-lease-test-cluster/nanopct6/drm-lease-test-cluster.json new file mode 100644 index 00000000..c8f7e8da --- /dev/null +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-drm-lease-test-cluster/nanopct6/drm-lease-test-cluster.json @@ -0,0 +1,95 @@ +{ + "name": "drm-lease-test-cluster", + "role": "cluster", + "base": { + "autoboot": true, + "bootpriority": 1, + "rootfs": { + "path": "/opt/container/guests/drm-lease-test-cluster/rootfs", + "mode": "rw", + "hostpath": [ + "/var/lib/machines/guest1" + ] + }, + "lifecycle": { + "halt": "SIGRTMIN+3", + "reboot": "SIGTERM", + "timeout": 5000 + }, + "cap": { + "drop": "sys_module mac_admin mac_override sys_time", + "keep": "" + }, + "environment": [ + "HOME=/home/root" + ] + }, + "fs": { + "mount": [ + { + "type": "filesystem", + "from": "tmpfs", + "to": "run", + "fstype": "tmpfs", + "option": "defaults 0 0" + }, + { + "type": "directory", + "from": "/sys/kernel/security", + "to": "sys/kernel/security", + "fstype": "none", + "option": "ro,bind,optional 0 0" + }, + { + "type": "directory", + "from": "/run/drm-lease-manager/lease-cluster", + "to": "var/display/drm-lease-manager/lease", + "fstype": "none", + "option": "bind,create=file" + }, + { + "type": "directory", + "from": "/run/dlt", + "to": "run/dlt", + "fstype": "none", + "option": "bind,optional,create=dir" + } + ] + }, + "device": { + "static": [ + { + "type": "devdir", + "from": "/dev/dri", + "to": "dev/dri", + "devnode": "/dev/dri/card0", + "optional": 0, + "wideallow": 1, + "exclusive": 0 + }, + { + "type": "devnode", + "from": "/dev/mali0", + "to": "dev/mali0", + "devnode": "/dev/mali0", + "optional": 0, + "wideallow": 0, + "exclusive": 0 + } + ] + }, + "network": { + "static": [ + { + "type": "veth", + "param": { + "name": "veth0", + "link": "lxcbr0", + "flags": "up", + "hwaddr": "00:16:3e:xx:xx:xx", + "mode": "bridge" + } + } + ] + } +} diff --git a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-drm-lease-test-cluster/qemux86-64/drm-lease-test-cluster.json b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-drm-lease-test-cluster/qemux86-64/drm-lease-test-cluster.json new file mode 100644 index 00000000..47161e1f --- /dev/null +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-drm-lease-test-cluster/qemux86-64/drm-lease-test-cluster.json @@ -0,0 +1,86 @@ +{ + "name": "drm-lease-test-cluster", + "role": "cluster", + "base": { + "autoboot": true, + "bootpriority": 1, + "rootfs": { + "path": "/opt/container/guests/drm-lease-test-cluster/rootfs", + "mode": "rw", + "hostpath": [ + "/var/lib/machines/guest1" + ] + }, + "lifecycle": { + "halt": "SIGRTMIN+3", + "reboot": "SIGTERM", + "timeout": 5000 + }, + "cap": { + "drop": "sys_module mac_admin mac_override sys_time", + "keep": "" + }, + "environment": [ + "HOME=/home/root" + ] + }, + "fs": { + "mount": [ + { + "type": "filesystem", + "from": "tmpfs", + "to": "run", + "fstype": "tmpfs", + "option": "defaults 0 0" + }, + { + "type": "directory", + "from": "/sys/kernel/security", + "to": "sys/kernel/security", + "fstype": "none", + "option": "ro,bind,optional 0 0" + }, + { + "type": "directory", + "from": "/run/drm-lease-manager/lease-cluster", + "to": "var/display/drm-lease-manager/lease", + "fstype": "none", + "option": "bind,create=file" + }, + { + "type": "directory", + "from": "/run/dlt", + "to": "run/dlt", + "fstype": "none", + "option": "bind,optional,create=dir" + } + ] + }, + "device": { + "static": [ + { + "type": "devdir", + "from": "/dev/dri", + "to": "dev/dri", + "devnode": "/dev/dri/card0", + "optional": 0, + "wideallow": 1, + "exclusive": 0 + } + ] + }, + "network": { + "static": [ + { + "type": "veth", + "param": { + "name": "veth0", + "link": "lxcbr0", + "flags": "up", + "hwaddr": "00:16:3e:xx:xx:xx", + "mode": "bridge" + } + } + ] + } +} diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/system.conf.drm-lease-test-cluster.in b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-drm-lease-test-cluster/system.conf.drm-lease-test-cluster.in index f496c589..f496c589 100644 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/system.conf.drm-lease-test-cluster.in +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-drm-lease-test-cluster/system.conf.drm-lease-test-cluster.in diff --git a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-drm-lease-test-cluster_1.0.bb b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-drm-lease-test-cluster_1.0.bb new file mode 100644 index 00000000..80a794fe --- /dev/null +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-drm-lease-test-cluster_1.0.bb @@ -0,0 +1,25 @@ +DESCRIPTION = "Container Manager config for drm lease test cluster" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9" + + +SRC_URI = "file://drm-lease-test-cluster.json \ + file://system.conf.drm-lease-test-cluster.in \ + " + +inherit cm-config + +do_install:append() { + install -Dm644 ${WORKDIR}/drm-lease-test-cluster.json ${D}/opt/container/conf/drm-lease-test-cluster.json + install -d ${D}/opt/container/guests/drm-lease-test-cluster/rootfs + install -d ${D}/opt/container/guests/drm-lease-test-cluster/nv + install -d ${D}/opt/container/guests/drm-lease-test-cluster/shmounts +} + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +FILES:${PN} += " \ + /opt/container/conf/* \ + /opt/container/guests/drm-lease-test-cluster/* \ + " + diff --git a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-drm-lease-test-ivi/drm-lease-test-ivi.json b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-drm-lease-test-ivi/drm-lease-test-ivi.json new file mode 100644 index 00000000..b9828b6f --- /dev/null +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-drm-lease-test-ivi/drm-lease-test-ivi.json @@ -0,0 +1,3 @@ +{ + "name": "agl-momi-ivi-demo" +} diff --git a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-drm-lease-test-ivi/nanopct6/drm-lease-test-ivi.json b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-drm-lease-test-ivi/nanopct6/drm-lease-test-ivi.json new file mode 100644 index 00000000..cc0748bf --- /dev/null +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-drm-lease-test-ivi/nanopct6/drm-lease-test-ivi.json @@ -0,0 +1,121 @@ +{ + "name": "drm-lease-test-ivi", + "role": "ivi", + "base": { + "autoboot": true, + "bootpriority": 10, + "rootfs": { + "path": "/opt/container/guests/drm-lease-test-ivi/rootfs", + "mode": "rw", + "hostpath": [ + "/var/lib/machines/guest2" + ] + }, + "lifecycle": { + "halt": "SIGRTMIN+3", + "reboot": "SIGTERM", + "timeout": 15000 + }, + "cap": { + "drop": "sys_module mac_admin mac_override", + "keep": "" + }, + "environment": [ + "PIPEWIRE_RUNTIME_DIR=/var", + "HOME=/home/root" + ] + }, + "fs": { + "mount": [ + { + "type": "filesystem", + "from": "tmpfs", + "to": "run", + "fstype": "tmpfs", + "option": "defaults 0 0" + }, + { + "type": "directory", + "from": "/sys/kernel/security", + "to": "sys/kernel/security", + "fstype": "none", + "option": "ro,bind,optional 0 0" + }, + { + "type": "directory", + "from": "/run/udev/data", + "to": "run/udev/data", + "fstype": "none", + "option": "ro,bind,optional,create=dir" + }, + { + "type": "directory", + "from": "/run/drm-lease-manager/lease-ivi", + "to": "var/display/drm-lease-manager/lease", + "fstype": "none", + "option": "bind,create=file" + }, + { + "type": "directory", + "from": "/run/dlt", + "to": "run/dlt", + "fstype": "none", + "option": "bind,optional,create=dir" + } + ] + }, + "device": { + "static": [ + { + "type": "devdir", + "from": "/dev/dri", + "to": "dev/dri", + "devnode": "/dev/dri/card0", + "optional": 0, + "wideallow": 1, + "exclusive": 0 + }, + { + "type": "devdir", + "from": "/dev/input", + "to": "dev/input", + "devnode": "/dev/input/event0", + "optional": 1, + "wideallow": 1, + "exclusive": 0 + }, + { + "type": "devdir", + "from": "/dev/snd", + "to": "dev/snd", + "devnode": "/dev/snd/controlC0", + "optional": 1, + "wideallow": 1, + "exclusive": 0 + }, + { + "type": "devnode", + "from": "/dev/mali0", + "to": "dev/mali0", + "devnode": "/dev/mali0", + "optional": 0, + "wideallow": 0, + "exclusive": 0 + } + ] + }, + "network": { + "static": [ + { + "type": "veth", + "param": { + "name": "eth0", + "link": "lxcbr0", + "flags": "up", + "hwaddr": "00:16:3e:xx:xx:xx", + "mode": "bridge" + } + } + ] + } +} diff --git a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-drm-lease-test-ivi/qemux86-64/drm-lease-test-ivi.json b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-drm-lease-test-ivi/qemux86-64/drm-lease-test-ivi.json new file mode 100644 index 00000000..631816bd --- /dev/null +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-drm-lease-test-ivi/qemux86-64/drm-lease-test-ivi.json @@ -0,0 +1,103 @@ +{ + "name": "drm-lease-test-ivi", + "role": "ivi", + "base": { + "autoboot": true, + "bootpriority": 10, + "rootfs": { + "path": "/opt/container/guests/drm-lease-test-ivi/rootfs", + "mode": "rw", + "hostpath": [ + "/var/lib/machines/guest2" + ] + }, + "lifecycle": { + "halt": "SIGRTMIN+3", + "reboot": "SIGTERM", + "timeout": 15000 + }, + "cap": { + "drop": "sys_module mac_admin mac_override", + "keep": "" + }, + "environment": [ + "PIPEWIRE_RUNTIME_DIR=/var", + "HOME=/home/root" + ] + }, + "fs": { + "mount": [ + { + "type": "filesystem", + "from": "tmpfs", + "to": "run", + "fstype": "tmpfs", + "option": "defaults 0 0" + }, + { + "type": "directory", + "from": "/sys/kernel/security", + "to": "sys/kernel/security", + "fstype": "none", + "option": "ro,bind,optional 0 0" + }, + { + "type": "directory", + "from": "/run/udev/data", + "to": "run/udev/data", + "fstype": "none", + "option": "ro,bind,optional,create=dir" + }, + { + "type": "directory", + "from": "/run/drm-lease-manager/lease-ivi", + "to": "var/display/drm-lease-manager/lease", + "fstype": "none", + "option": "bind,create=file" + }, + { + "type": "directory", + "from": "/run/dlt", + "to": "run/dlt", + "fstype": "none", + "option": "bind,optional,create=dir" + } + ] + }, + "device": { + "static": [ + { + "type": "devdir", + "from": "/dev/dri", + "to": "dev/dri", + "devnode": "/dev/dri/card0", + "optional": 0, + "wideallow": 1, + "exclusive": 0 + }, + { + "type": "devdir", + "from": "/dev/input", + "to": "dev/input", + "devnode": "/dev/input/event0", + "optional": 1, + "wideallow": 1, + "exclusive": 0 + } + ] + }, + "network": { + "static": [ + { + "type": "veth", + "param": { + "name": "eth0", + "link": "lxcbr0", + "flags": "up", + "hwaddr": "00:16:3e:xx:xx:xx", + "mode": "bridge" + } + } + ] + } +} diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/system.conf.drm-lease-test-ivi.in b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-drm-lease-test-ivi/system.conf.drm-lease-test-ivi.in index f496c589..f496c589 100644 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/system.conf.drm-lease-test-ivi.in +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-drm-lease-test-ivi/system.conf.drm-lease-test-ivi.in diff --git a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-drm-lease-test-ivi_1.0.bb b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-drm-lease-test-ivi_1.0.bb new file mode 100644 index 00000000..9d2d62f5 --- /dev/null +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-drm-lease-test-ivi_1.0.bb @@ -0,0 +1,23 @@ +DESCRIPTION = "Container Manager config for drm lease test ivi" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9" + +SRC_URI = "file://drm-lease-test-ivi.json \ + file://system.conf.drm-lease-test-ivi.in \ + " + +inherit cm-config + +do_install:append() { + install -Dm644 ${WORKDIR}/drm-lease-test-ivi.json ${D}/opt/container/conf/drm-lease-test-ivi.json + install -d ${D}/opt/container/guests/drm-lease-test-ivi/rootfs + install -d ${D}/opt/container/guests/drm-lease-test-ivi/nv + install -d ${D}/opt/container/guests/drm-lease-test-ivi/shmounts +} + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +FILES:${PN} += " \ + /opt/container/conf/* \ + /opt/container/guests/drm-lease-test-ivi/* \ + " diff --git a/meta-agl-ic-container/recipes-container/container-manager/container-manager/container-manager.service b/meta-agl-ic-container/recipes-container/container-manager/container-manager/container-manager.service index de532fd5..554cdb2f 100644 --- a/meta-agl-ic-container/recipes-container/container-manager/container-manager/container-manager.service +++ b/meta-agl-ic-container/recipes-container/container-manager/container-manager/container-manager.service @@ -6,6 +6,7 @@ Wants=drm-lease-manager.service lxc-net.service multi-user.target [Service] Type=notify ExecStart=/usr/bin/containermanager +Delegate=true [Install] WantedBy=multi-user.target diff --git a/meta-agl-ic-container/recipes-container/container-manager/container-manager_git.bb b/meta-agl-ic-container/recipes-container/container-manager/container-manager_git.bb index 41f75d4d..0e6bfe07 100644 --- a/meta-agl-ic-container/recipes-container/container-manager/container-manager_git.bb +++ b/meta-agl-ic-container/recipes-container/container-manager/container-manager_git.bb @@ -15,7 +15,7 @@ SRC_URI = " \ file://container-manager.service \ file://container-manager.json \ " -SRCREV = "e516cfeca7859a74a47155ab77d4b1610cae6617" +SRCREV = "665d8985e07688e8e8ec9dbaec63acd3ccd2d715" S = "${WORKDIR}/git" diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/basic.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/basic.in deleted file mode 100644 index 22a8f8de..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/basic.in +++ /dev/null @@ -1,9 +0,0 @@ -# lxc basic setting -lxc.rootfs.path = dir:/var/lib/machines/cluster-demo -lxc.signal.halt = SIGRTMIN+3 -lxc.signal.reboot = SIGTERM -lxc.uts.name = "cluster" -lxc.tty.max = 1 -lxc.pty.max = 1 -lxc.cap.drop = sys_module mac_admin mac_override sys_time - diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/environment.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/environment.in deleted file mode 100644 index 374b9c03..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/environment.in +++ /dev/null @@ -1,7 +0,0 @@ -# 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 - diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/misc.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/misc.in deleted file mode 100644 index 9b4f4883..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/misc.in +++ /dev/null @@ -1,3 +0,0 @@ -# lxc misc setting -lxc.start.auto = @LXC_AUTO_START@ - diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/mount.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/mount.in deleted file mode 100644 index a87322ba..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/mount.in +++ /dev/null @@ -1,14 +0,0 @@ -# lxc mount setting -lxc.mount.entry = /var/lib/lxc/cluster-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 = /run/drm-lease-manager/lease-cluster var/display/drm-lease-manager/lease none bind,create=file - -lxc.mount.entry = /run/pipewire/icipc-0 var/icipc-0 none bind,optional,create=file - diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/network.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/network.in deleted file mode 100644 index 573f4796..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/network.in +++ /dev/null @@ -1,3 +0,0 @@ -# lxc network setting -lxc.net.0.type = empty - diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/system.conf.cluster-demo.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/system.conf.cluster-demo.in deleted file mode 100644 index f496c589..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo/system.conf.cluster-demo.in +++ /dev/null @@ -1,2 +0,0 @@ -[Manager] -#DefaultEnvironment = diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo_1.0.bb b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo_1.0.bb deleted file mode 100644 index a30505e9..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-cluster-demo_1.0.bb +++ /dev/null @@ -1,7 +0,0 @@ -DESCRIPTION = "AGL cluster 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 ??= "1" diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/basic.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/basic.in deleted file mode 100644 index d4a490ab..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/basic.in +++ /dev/null @@ -1,9 +0,0 @@ -# lxc basic setting -lxc.rootfs.path = dir:/var/lib/machines/drm-lease-test-cluster -lxc.signal.halt = SIGRTMIN+3 -lxc.signal.reboot = SIGTERM -lxc.uts.name = "cluster" -lxc.tty.max = 1 -lxc.pty.max = 1 -lxc.cap.drop = sys_module mac_admin mac_override sys_time - diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/environment.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/environment.in deleted file mode 100644 index 632252d5..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/environment.in +++ /dev/null @@ -1,8 +0,0 @@ -# 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/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/misc.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/misc.in deleted file mode 100644 index 9b4f4883..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/misc.in +++ /dev/null @@ -1,3 +0,0 @@ -# lxc misc setting -lxc.start.auto = @LXC_AUTO_START@ - diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/mount.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/mount.in deleted file mode 100644 index 0468866d..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/mount.in +++ /dev/null @@ -1,17 +0,0 @@ -# lxc mount setting -lxc.mount.entry = /var/lib/lxc/drm-lease-test-cluster/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/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/network.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/network.in deleted file mode 100644 index 87fff1de..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/network.in +++ /dev/null @@ -1,5 +0,0 @@ -# lxc network setting -lxc.net.0.type = veth -lxc.net.0.link = lxcbr0 -lxc.net.0.flags = up -lxc.net.0.hwaddr = 00:16:3e:69:87:a5 diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster_1.0.bb b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster_1.0.bb deleted file mode 100644 index a30505e9..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster_1.0.bb +++ /dev/null @@ -1,7 +0,0 @@ -DESCRIPTION = "AGL cluster 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 ??= "1" diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/basic.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/basic.in deleted file mode 100644 index 186ab509..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/basic.in +++ /dev/null @@ -1,9 +0,0 @@ -# lxc basic setting -lxc.rootfs.path = dir:/var/lib/machines/drm-lease-test-ivi -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/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/environment.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/environment.in deleted file mode 100644 index 632252d5..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/environment.in +++ /dev/null @@ -1,8 +0,0 @@ -# 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/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/misc.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/misc.in deleted file mode 100644 index 9b4f4883..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/misc.in +++ /dev/null @@ -1,3 +0,0 @@ -# lxc misc setting -lxc.start.auto = @LXC_AUTO_START@ - diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/mount.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/mount.in deleted file mode 100644 index 2026c577..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/mount.in +++ /dev/null @@ -1,17 +0,0 @@ -# lxc mount setting -lxc.mount.entry = /var/lib/lxc/drm-lease-test-ivi/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/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/network.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/network.in deleted file mode 100644 index 6545b1ad..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/network.in +++ /dev/null @@ -1,5 +0,0 @@ -# lxc network setting -lxc.net.0.type = veth -lxc.net.0.link = lxcbr0 -lxc.net.0.flags = up -lxc.net.0.hwaddr = 00:16:3e:69:87:a4 diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi_1.0.bb b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi_1.0.bb deleted file mode 100644 index a30505e9..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi_1.0.bb +++ /dev/null @@ -1,7 +0,0 @@ -DESCRIPTION = "AGL cluster 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 ??= "1" diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/basic.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/basic.in deleted file mode 100644 index 603e902e..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/basic.in +++ /dev/null @@ -1,9 +0,0 @@ -# lxc basic setting -lxc.rootfs.path = dir:/var/lib/machines/dummy -lxc.signal.halt = SIGRTMIN+3 -lxc.signal.reboot = SIGTERM -lxc.uts.name = "guest-dummy" -lxc.tty.max = 1 -lxc.pty.max = 1 -lxc.cap.drop = sys_module mac_admin mac_override sys_time - diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/environment.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/environment.in deleted file mode 100644 index b7cde1c8..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/environment.in +++ /dev/null @@ -1,2 +0,0 @@ -# lxc environment variable setting - diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/misc.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/misc.in deleted file mode 100644 index 9b4f4883..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/misc.in +++ /dev/null @@ -1,3 +0,0 @@ -# lxc misc setting -lxc.start.auto = @LXC_AUTO_START@ - diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/mount.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/mount.in deleted file mode 100644 index 686fdcb9..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/mount.in +++ /dev/null @@ -1,7 +0,0 @@ -# lxc mount setting -lxc.mount.entry = /var/lib/lxc/dummy/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 - diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/network.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/network.in deleted file mode 100644 index 573f4796..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/network.in +++ /dev/null @@ -1,3 +0,0 @@ -# lxc network setting -lxc.net.0.type = empty - diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/system.conf.dummy.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/system.conf.dummy.in deleted file mode 100644 index f496c589..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy/system.conf.dummy.in +++ /dev/null @@ -1,2 +0,0 @@ -[Manager] -#DefaultEnvironment = diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy_1.0.bb b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy_1.0.bb deleted file mode 100644 index 41246391..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-dummy_1.0.bb +++ /dev/null @@ -1,5 +0,0 @@ -DESCRIPTION = "AGL dummy container LXC config" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9" - -inherit lxc-config diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/basic.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/basic.in deleted file mode 100644 index 1fd9f347..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/basic.in +++ /dev/null @@ -1,9 +0,0 @@ -# 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/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/environment.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/environment.in deleted file mode 100644 index 632252d5..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/environment.in +++ /dev/null @@ -1,8 +0,0 @@ -# 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/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/misc.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/misc.in deleted file mode 100644 index 9b4f4883..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/misc.in +++ /dev/null @@ -1,3 +0,0 @@ -# lxc misc setting -lxc.start.auto = @LXC_AUTO_START@ - diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/mount.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/mount.in deleted file mode 100644 index 262f09bd..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/mount.in +++ /dev/null @@ -1,17 +0,0 @@ -# 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/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/network.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/network.in deleted file mode 100644 index 6545b1ad..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/network.in +++ /dev/null @@ -1,5 +0,0 @@ -# lxc network setting -lxc.net.0.type = veth -lxc.net.0.link = lxcbr0 -lxc.net.0.flags = up -lxc.net.0.hwaddr = 00:16:3e:69:87:a4 diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/system.conf.ivi-demo.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/system.conf.ivi-demo.in deleted file mode 100644 index 7605d25f..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo/system.conf.ivi-demo.in +++ /dev/null @@ -1,2 +0,0 @@ -[Manager] -DefaultEnvironment = PIPEWIRE_RUNTIME_DIR=/var diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo_1.0.bb b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo_1.0.bb deleted file mode 100644 index 05e3bab0..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-ivi-demo_1.0.bb +++ /dev/null @@ -1,9 +0,0 @@ -DESCRIPTION = "AGL simple IVI demo container LXC config" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9" - -inherit lxc-config - -require multi-display.inc - -LXC_AUTO_START ??= "${@bb.utils.contains("HAS_MULTI_DISPLAY", "1", "1", "0" ,d)}" diff --git a/meta-agl-ic-container/recipes-container/lxc-config/multi-display.inc b/meta-agl-ic-container/recipes-container/lxc-config/multi-display.inc deleted file mode 100644 index 9d1e4fdf..00000000 --- a/meta-agl-ic-container/recipes-container/lxc-config/multi-display.inc +++ /dev/null @@ -1 +0,0 @@ -HAS_MULTI_DISPLAY ??= "1" diff --git a/meta-agl-ic-container/recipes-core/systemd/systemd-netif-config_0.1.bb b/meta-agl-ic-container/recipes-core/systemd/systemd-netif-config_0.1.bb index 4024c278..2f6abe46 100644 --- a/meta-agl-ic-container/recipes-core/systemd/systemd-netif-config_0.1.bb +++ b/meta-agl-ic-container/recipes-core/systemd/systemd-netif-config_0.1.bb @@ -2,7 +2,7 @@ SUMMARY = "Systemd network interface configuration" DESCRIPTION = "Systemd network interface configuration \ " LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" SRC_URI = " \ file://20-wired.network \ diff --git a/meta-agl-ic-container/recipes-core/systemd/systemd-timesyncd-guest/timesyncd-run-guest.conf b/meta-agl-ic-container/recipes-core/systemd/systemd-timesyncd-guest/timesyncd-run-guest.conf new file mode 100644 index 00000000..9a5cd624 --- /dev/null +++ b/meta-agl-ic-container/recipes-core/systemd/systemd-timesyncd-guest/timesyncd-run-guest.conf @@ -0,0 +1,2 @@ +[Unit] +ConditionVirtualization= diff --git a/meta-agl-ic-container/recipes-core/systemd/systemd-timesyncd-guest_1.0.bb b/meta-agl-ic-container/recipes-core/systemd/systemd-timesyncd-guest_1.0.bb new file mode 100644 index 00000000..0a9b7470 --- /dev/null +++ b/meta-agl-ic-container/recipes-core/systemd/systemd-timesyncd-guest_1.0.bb @@ -0,0 +1,19 @@ +SUMMARY = "Container guest configuration for systemd-timesyncd." +DESCRIPTION = "Container guest configuration for systemd-timesyncd. \ + It enables systemd-timesyncd in container guest." +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +SRC_URI = " \ + file://timesyncd-run-guest.conf \ + " + +do_install() { + install -D -m644 ${WORKDIR}/timesyncd-run-guest.conf ${D}/${systemd_system_unitdir}/systemd-timesyncd.service.d/timesyncd-run-guest.conf +} + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +FILES:${PN} = "\ + ${systemd_system_unitdir}/systemd-timesyncd.service.d/* \ +" diff --git a/meta-agl-ic-container/recipes-demo/momikey/momikey_0.1.bb b/meta-agl-ic-container/recipes-demo/momikey/momikey_0.1.bb index 845ef46d..aa37c84a 100644 --- a/meta-agl-ic-container/recipes-demo/momikey/momikey_0.1.bb +++ b/meta-agl-ic-container/recipes-demo/momikey/momikey_0.1.bb @@ -2,7 +2,7 @@ SUMMARY = "CH57x keyboard based UI for container demo" DESCRIPTION = "Container exchange user interface using CH57x keyboard. \ This UI based on mock container manager for AGL CES2023 demo." LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" SRC_URI += " \ file://momikey.sh \ diff --git a/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-drm-lease-test.bb b/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-drm-lease-test.bb new file mode 100644 index 00000000..15b44ed2 --- /dev/null +++ b/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-drm-lease-test.bb @@ -0,0 +1,43 @@ +SUMMARY = "Configuration files for the Weston compositors for DRM lease testing" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +SRC_URI = " \ + file://weston.ini.ivi \ + file://weston.ini.cluster \ +" + +S = "${WORKDIR}" + +inherit allarch update-alternatives + +# On-target weston.ini directory +weston_ini_dir = "${sysconfdir}/xdg/weston" + +do_install() { + install -d ${D}${weston_ini_dir} + install -m 0644 ${WORKDIR}/weston.ini.ivi ${D}${weston_ini_dir}/ + install -m 0644 ${WORKDIR}/weston.ini.cluster ${D}${weston_ini_dir}/ +} + +ALTERNATIVE_LINK_NAME[weston.ini] = "${weston_ini_dir}/weston.ini" + +RDEPENDS:${PN} = "${BPN}-ivi" +ALLOW_EMPTY:${PN} = "1" + +PACKAGE_BEFORE_PN += "${PN}-ivi" + +FILES:${PN}-ivi = "${weston_ini_dir}/weston.ini.ivi" + +RPROVIDES:${PN}-ivi = "weston-ini" +ALTERNATIVE:${PN}-ivi = "weston.ini" +ALTERNATIVE_TARGET_${PN}-ivi = "${weston_ini_dir}/weston.ini.ivi" + +PACKAGE_BEFORE_PN += "${PN}-cluster" + +FILES:${PN}-cluster = "${weston_ini_dir}/weston.ini.cluster" + +RPROVIDES:${PN}-cluster = "weston-ini" +RCONFLICTS:${PN}-cluster = "${PN}-ivi" +ALTERNATIVE:${PN}-cluster = "weston.ini" +ALTERNATIVE_TARGET_${PN}-cluster = "${weston_ini_dir}/weston.ini.cluster" diff --git a/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-drm-lease-test/weston.ini.cluster b/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-drm-lease-test/weston.ini.cluster new file mode 100644 index 00000000..13347577 --- /dev/null +++ b/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-drm-lease-test/weston.ini.cluster @@ -0,0 +1,26 @@ +[core] +backend=drm-backend.so +require-input=false +idle-time=0 +modules=systemd-notify.so + +[shell] +locking=false +panel-position=none +background-color=0xff00ff00 + +[output] +name=Virtual-1 +mode=1920x1080 + +[output] +name=Virtual-2 +mode=1920x1080 + +[output] +name=HDMI-A-1 +mode=1920x1080 + +[output] +name=HDMI-A-2 +mode=1920x1080 diff --git a/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-drm-lease-test/weston.ini.ivi b/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-drm-lease-test/weston.ini.ivi new file mode 100644 index 00000000..24d4ee29 --- /dev/null +++ b/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-drm-lease-test/weston.ini.ivi @@ -0,0 +1,26 @@ +[core] +backend=drm-backend.so +require-input=false +idle-time=0 +modules=systemd-notify.so + +[shell] +locking=false +panel-position=none +background-color=0xffff0000 + +[output] +name=Virtual-1 +mode=1920x1080 + +[output] +name=Virtual-2 +mode=1920x1080 + +[output] +name=HDMI-A-1 +mode=1920x1080 + +[output] +name=HDMI-A-2 +mode=1920x1080 diff --git a/meta-agl-ic-container/recipes-graphics/wayland/weston-init-guest/weston.env b/meta-agl-ic-container/recipes-graphics/wayland/weston-init-guest/weston.env new file mode 100644 index 00000000..7df25aa2 --- /dev/null +++ b/meta-agl-ic-container/recipes-graphics/wayland/weston-init-guest/weston.env @@ -0,0 +1,6 @@ +XDG_RUNTIME_DIR=/run/user/0 +DLM_RUNTIME_PATH=/var/display/drm-lease-manager +DRM_LEASE_DEVICE=lease +WAYLAND_DISPLAY=wayland-1 +LIBSEAT_BACKEND=builtin +SEATD_VTBOUND=0 diff --git a/meta-agl-ic-container/recipes-graphics/wayland/weston-init-guest/weston.service b/meta-agl-ic-container/recipes-graphics/wayland/weston-init-guest/weston.service new file mode 100644 index 00000000..94a2a530 --- /dev/null +++ b/meta-agl-ic-container/recipes-graphics/wayland/weston-init-guest/weston.service @@ -0,0 +1,21 @@ +[Unit] +Description=Weston Wayland Compositor +RequiresMountsFor=/run +After=multi-user.target +Wants=multi-user.target + +[Service] +User=root +PAMName=login +EnvironmentFile=-/etc/default/weston +StandardError=journal +PermissionsStartOnly=true +IgnoreSIGPIPE=no +Type=notify +Restart=on-failure +StartLimitInterval=0 + +ExecStart=/usr/bin/weston --config /etc/xdg/weston/weston.ini --idle-time=0 --drm-lease=${DRM_LEASE_DEVICE} --log=/var/log/weston.log + +[Install] +WantedBy=multi-user.target diff --git a/meta-agl-ic-container/recipes-graphics/wayland/weston-init-guest_0.1.bb b/meta-agl-ic-container/recipes-graphics/wayland/weston-init-guest_0.1.bb new file mode 100644 index 00000000..d444317b --- /dev/null +++ b/meta-agl-ic-container/recipes-graphics/wayland/weston-init-guest_0.1.bb @@ -0,0 +1,46 @@ +SUMMARY = "Startup script and systemd unit file for the Weston Wayland compositor in guest cotainer" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +SRC_URI = "file://weston.env \ + file://weston.service \ + " + +S = "${WORKDIR}" + +inherit features_check systemd + +do_install() { + install -Dm644 ${WORKDIR}/weston.env ${D}${sysconfdir}/default/weston + + # Install Weston systemd service and accompanying udev rule + install -D -p -m0644 ${WORKDIR}/weston.service ${D}${systemd_system_unitdir}/weston.service + sed -i -e s:/etc:${sysconfdir}:g \ + -e s:/usr/bin:${bindir}:g \ + -e s:/var:${localstatedir}:g \ + ${D}${systemd_unitdir}/system/weston.service +} + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +# rdepends on weston-init-guest which depends on wayland +REQUIRED_DISTRO_FEATURES = "wayland" + +FILES:${PN} += " \ + ${sysconfdir}/xdg/weston/weston.ini \ + ${systemd_system_unitdir}/weston.service \ + ${sysconfdir}/default/weston \ + " +CONFFILES:${PN} += " \ + ${sysconfdir}/xdg/weston/weston.ini \ + ${sysconfdir}/default/weston \ + " +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE:${PN} = "weston.service" +SYSTEMD_AUTO_ENABLE = "enable" + +RDEPENDS:${PN} = " \ + weston \ + weston-ini \ + " +RCONFLICTS:${PN} = "weston-init" diff --git a/meta-agl-ic-container/recipes-kernel/linux/linux/lxc.cfg b/meta-agl-ic-container/recipes-kernel/linux/linux/lxc.cfg index fb87ea19..6fbf43f5 100644 --- a/meta-agl-ic-container/recipes-kernel/linux/linux/lxc.cfg +++ b/meta-agl-ic-container/recipes-kernel/linux/linux/lxc.cfg @@ -1,10 +1,14 @@ +CONFIG_BPF=y CONFIG_CGROUP_DEVICE=y CONFIG_CPUSETS=y CONFIG_PROC_PID_CPUSET=y CONFIG_MEMCG=y CONFIG_CGROUP_SCHED=y CONFIG_FAIR_GROUP_SCHED=y -CONFIG_RT_GROUP_SCHED=y +# CONFIG_RT_GROUP_SCHED is not set +CONFIG_BLK_CGROUP=y +CONFIG_NET_CLS_CGROUP=y +CONFIG_CGROUP_NET_PRIO=y CONFIG_CHECKPOINT_RESTORE=y CONFIG_NAMESPACES=y CONFIG_UTS_NS=y @@ -13,14 +17,8 @@ CONFIG_USER_NS=y CONFIG_PID_NS=y CONFIG_NET_NS=y -CONFIG_NET_CLS_CGROUP=m -CONFIG_BLK_CGROUP=y -CONFIG_CGROUP_NET_PRIO=y - -# Virtual drivers -CONFIG_HVC_DRIVER=y - -# Support for virtual ethernet and LXC CONFIG_VETH=y -CONFIG_MACVLAN=y +CONFIG_MACVLAN=m CONFIG_VXLAN=m + +CONFIG_VXCAN=y diff --git a/meta-agl-ic-container/recipes-multimedia/pulseaudio/pulseaudio/raspberrypi4-64/system.pa b/meta-agl-ic-container/recipes-multimedia/pulseaudio/pulseaudio/rpi/system.pa index 5bb33743..5bb33743 100644 --- a/meta-agl-ic-container/recipes-multimedia/pulseaudio/pulseaudio/raspberrypi4-64/system.pa +++ b/meta-agl-ic-container/recipes-multimedia/pulseaudio/pulseaudio/rpi/system.pa diff --git a/meta-agl-ic-container/recipes-platform/drm-lease-test/image-mount-drm-lease-test-cluster/drm-lease-test-cluster.mount b/meta-agl-ic-container/recipes-platform/drm-lease-test/image-mount-drm-lease-test-cluster/drm-lease-test-cluster.mount new file mode 100644 index 00000000..8415cd8c --- /dev/null +++ b/meta-agl-ic-container/recipes-platform/drm-lease-test/image-mount-drm-lease-test-cluster/drm-lease-test-cluster.mount @@ -0,0 +1,11 @@ +[Unit] +Description=Image mount for drl-lease-test-cluster + +[Mount] +What=/var/lib/machines/guest-image-drm-lease-test-cluster.ext4 +Where=/var/lib/machines/guest1 +Type=ext4 +Options=rw + +[Install] +WantedBy=local-fs.target diff --git a/meta-agl-ic-container/recipes-platform/drm-lease-test/image-mount-drm-lease-test-cluster_1.0.bb b/meta-agl-ic-container/recipes-platform/drm-lease-test/image-mount-drm-lease-test-cluster_1.0.bb new file mode 100644 index 00000000..7ab01743 --- /dev/null +++ b/meta-agl-ic-container/recipes-platform/drm-lease-test/image-mount-drm-lease-test-cluster_1.0.bb @@ -0,0 +1,24 @@ +SUMMARY = "AGL CI guest image mounter for drm-lease-test-cluster." +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +SRC_URI += " \ + file://drm-lease-test-cluster.mount \ +" + +inherit systemd + +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE:${PN} = "var-lib-machines-guest1.mount" +SYSTEMD_AUTO_ENABLE:${PN} = "enable" + +do_install:append () { + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/drm-lease-test-cluster.mount ${D}${systemd_system_unitdir}/var-lib-machines-guest1.mount + install -d ${D}/var/lib/machines/guest1 +} + +FILES:${PN} += " \ + ${systemd_system_unitdir} \ + /var/lib/machines/* \ +" diff --git a/meta-agl-ic-container/recipes-platform/drm-lease-test/image-mount-drm-lease-test-ivi/drm-lease-test-ivi.mount b/meta-agl-ic-container/recipes-platform/drm-lease-test/image-mount-drm-lease-test-ivi/drm-lease-test-ivi.mount new file mode 100644 index 00000000..252dc61c --- /dev/null +++ b/meta-agl-ic-container/recipes-platform/drm-lease-test/image-mount-drm-lease-test-ivi/drm-lease-test-ivi.mount @@ -0,0 +1,11 @@ +[Unit] +Description=Image mount for drl-lease-test-cluster + +[Mount] +What=/var/lib/machines/guest-image-drm-lease-test-ivi.ext4 +Where=/var/lib/machines/guest2 +Type=ext4 +Options=rw + +[Install] +WantedBy=local-fs.target diff --git a/meta-agl-ic-container/recipes-platform/drm-lease-test/image-mount-drm-lease-test-ivi_1.0.bb b/meta-agl-ic-container/recipes-platform/drm-lease-test/image-mount-drm-lease-test-ivi_1.0.bb new file mode 100644 index 00000000..2c0607f0 --- /dev/null +++ b/meta-agl-ic-container/recipes-platform/drm-lease-test/image-mount-drm-lease-test-ivi_1.0.bb @@ -0,0 +1,24 @@ +SUMMARY = "AGL CI guest image mounter for drm-lease-test-ivi." +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +SRC_URI += " \ + file://drm-lease-test-ivi.mount \ +" + +inherit systemd + +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE:${PN} = "var-lib-machines-guest2.mount" +SYSTEMD_AUTO_ENABLE:${PN} = "enable" + +do_install:append () { + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/drm-lease-test-ivi.mount ${D}${systemd_system_unitdir}/var-lib-machines-guest2.mount + install -d ${D}/var/lib/machines/guest2 +} + +FILES:${PN} += " \ + ${systemd_system_unitdir} \ + /var/lib/machines/* \ +" 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 deleted file mode 100644 index 03a49d33..00000000 --- a/meta-agl-ic-container/recipes-platform/images/agl-cluster-demo-lxc-host.bb +++ /dev/null @@ -1,35 +0,0 @@ -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 \ - " - -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" - - -# Under the this line, shall describe machine specific package. -IMAGE_INSTALL:append:rcar-gen3 = " kernel-module-gles gles-user-module-firmware" diff --git a/meta-agl-ic-container/recipes-platform/images/agl-host-image-drm-lease-test.bb b/meta-agl-ic-container/recipes-platform/images/agl-host-image-drm-lease-test.bb index 09b6ddac..5b751c0c 100644 --- a/meta-agl-ic-container/recipes-platform/images/agl-host-image-drm-lease-test.bb +++ b/meta-agl-ic-container/recipes-platform/images/agl-host-image-drm-lease-test.bb @@ -2,8 +2,7 @@ SUMMARY = "DRM Lease LXC test host 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 +require recipes-platform/images/agl-lxc-multiconfig-build.inc CONTAINER_IMAGES ?= "agl-container-ivi:guest-image-drm-lease-test-ivi \ agl-container-cluster:guest-image-drm-lease-test-cluster \ @@ -15,6 +14,9 @@ IMAGE_INSTALL += " \ # packages required for network bridge settings via lxc-net IMAGE_INSTALL += " \ + container-manager \ + cm-config-drm-lease-test-cluster image-mount-drm-lease-test-cluster \ + cm-config-drm-lease-test-ivi image-mount-drm-lease-test-ivi \ lxc-networking \ iptables-modules \ dnsmasq \ @@ -23,5 +25,19 @@ IMAGE_INSTALL += " \ kernel-module-xt-multiport \ " +install_container_images() { + for c in ${CONTAINER_IMAGES}; do + config=${c%:*} + image=${c#*:} + name=${image#guest-image-} + src="${TOPDIR}/tmp-${config}/deploy/images/${MACHINE}/${image}-${MACHINE}${MACHINE_SUFFIX}${IMAGE_NAME_SUFFIX}.ext4" + bbnote "Installing ${src}" + install -Dm644 ${src} ${IMAGE_ROOTFS}/var/lib/machines/${image}.ext4 + done +} + +ROOTFS_POSTPROCESS_COMMAND += "install_container_images; " + + # Under the this line, shall describe machine specific package. IMAGE_INSTALL:append:rcar-gen3 = " kernel-module-gles gles-user-module-firmware" 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 deleted file mode 100644 index 41a925e3..00000000 --- a/meta-agl-ic-container/recipes-platform/images/agl-lxc-autostart.inc +++ /dev/null @@ -1,19 +0,0 @@ -# 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 deleted file mode 100644 index 4f230298..00000000 --- a/meta-agl-ic-container/recipes-platform/images/agl-lxc-install-single-image.inc +++ /dev/null @@ -1,21 +0,0 @@ -# Integration type support for install guest root filesystem into host image. - -require recipes-platform/images/agl-lxc-multiconfig-build.inc - -# Handle modification of IMAGE_LINK_NAME done by ULCB builds with Kingfisher support -MACHINE_SUFFIX = "${@bb.utils.contains('AGL_FEATURES', 'kingfisher', '-kf', '', d)}" - -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}${IMAGE_NAME_SUFFIX}.tar.bz2" - bbnote "Installing ${src}" - tar -C ${IMAGE_ROOTFS}/var/lib/machines/${name} -xf ${src} - done -} - -ROOTFS_POSTPROCESS_COMMAND += "install_container_images; " diff --git a/meta-agl-ic-container/recipes-platform/images/guest-image-ivi-demo.bb b/meta-agl-ic-container/recipes-platform/images/guest-image-ivi-demo.bb index f9dbabd6..aba7198d 100644 --- a/meta-agl-ic-container/recipes-platform/images/guest-image-ivi-demo.bb +++ b/meta-agl-ic-container/recipes-platform/images/guest-image-ivi-demo.bb @@ -10,7 +10,6 @@ IMAGE_INSTALL += " \ mominavi \ momiplay \ momiweather \ - chrony \ systemd-netif-config \ ttf-dejavu-sans \ ttf-dejavu-sans-mono \ @@ -28,4 +27,4 @@ IMAGE_INSTALL:append:rpi = " mesa-megadriver" IMAGE_OVERHEAD_FACTOR = "0" EXTRA_IMAGECMD:append = " -L agl-momi-ivi" IMAGE_ROOTFS_EXTRA_SPACE = "0" -IMAGE_ROOTFS_SIZE = "1048576" +IMAGE_ROOTFS_SIZE = "2097152" diff --git a/meta-agl-ic-container/recipes-platform/images/guest-image-minimal.bb b/meta-agl-ic-container/recipes-platform/images/guest-image-minimal.bb index 8dcdb3fb..0a7eeb1e 100644 --- a/meta-agl-ic-container/recipes-platform/images/guest-image-minimal.bb +++ b/meta-agl-ic-container/recipes-platform/images/guest-image-minimal.bb @@ -6,6 +6,7 @@ IMAGE_ROOTFS_EXTRA_SPACE:append = "${@bb.utils.contains("DISTRO_FEATURES", "syst IMAGE_INSTALL += " \ packagegroup-agl-container-feature-logging-guest \ + ${@bb.utils.contains('VIRTUAL-RUNTIME_net_manager', 'systemd', 'systemd-timesyncd-guest', '', d)} \ " FEATURE_PACKAGES_selinux:remove = " \ diff --git a/meta-agl-rdp/README.md b/meta-agl-rdp/README.md new file mode 100644 index 00000000..cfd5775e --- /dev/null +++ b/meta-agl-rdp/README.md @@ -0,0 +1,8 @@ +Virtualization support (meta-agl-rdp) +====================================================== + +meta-agl-rdp adds video output over rdp so you can connect +to the machine with an rdp client. + +Maintainers: + Jan-Simon Moeller<jsmoeller@linuxfoundation.org> diff --git a/meta-agl-rdp/SECURITY.md b/meta-agl-rdp/SECURITY.md new file mode 100644 index 00000000..a3c80fdd --- /dev/null +++ b/meta-agl-rdp/SECURITY.md @@ -0,0 +1,19 @@ +How to Report a Potential Vulnerability? +======================================== + +If you would like to report a public issue (for example, one with a released +CVE number), please report it to security AT automotivelinux DOT org + +If you are dealing with a not-yet released or urgent issue, please send a +message to security AT automotivelinux DOT org, including as many details as +possible: the layer or software module affected, the recipe and its version, +and any example code, if available. + +Branches maintained with security fixes +--------------------------------------- + +See [https://wiki.automotivelinux.org/schedule this page] +for detailed info regarding the policies and maintenance of Stable branches. + +The [https://wiki.automotivelinux.org/agl-distro/release-notes Release page] +contains a list of all releases of Automotive Grade Linux. diff --git a/meta-agl-test/SECURITY.md b/meta-agl-test/SECURITY.md new file mode 100644 index 00000000..a3c80fdd --- /dev/null +++ b/meta-agl-test/SECURITY.md @@ -0,0 +1,19 @@ +How to Report a Potential Vulnerability? +======================================== + +If you would like to report a public issue (for example, one with a released +CVE number), please report it to security AT automotivelinux DOT org + +If you are dealing with a not-yet released or urgent issue, please send a +message to security AT automotivelinux DOT org, including as many details as +possible: the layer or software module affected, the recipe and its version, +and any example code, if available. + +Branches maintained with security fixes +--------------------------------------- + +See [https://wiki.automotivelinux.org/schedule this page] +for detailed info regarding the policies and maintenance of Stable branches. + +The [https://wiki.automotivelinux.org/agl-distro/release-notes Release page] +contains a list of all releases of Automotive Grade Linux. diff --git a/meta-egvirt/SECURITY.md b/meta-egvirt/SECURITY.md new file mode 100644 index 00000000..a3c80fdd --- /dev/null +++ b/meta-egvirt/SECURITY.md @@ -0,0 +1,19 @@ +How to Report a Potential Vulnerability? +======================================== + +If you would like to report a public issue (for example, one with a released +CVE number), please report it to security AT automotivelinux DOT org + +If you are dealing with a not-yet released or urgent issue, please send a +message to security AT automotivelinux DOT org, including as many details as +possible: the layer or software module affected, the recipe and its version, +and any example code, if available. + +Branches maintained with security fixes +--------------------------------------- + +See [https://wiki.automotivelinux.org/schedule this page] +for detailed info regarding the policies and maintenance of Stable branches. + +The [https://wiki.automotivelinux.org/agl-distro/release-notes Release page] +contains a list of all releases of Automotive Grade Linux. diff --git a/meta-egvirt/conf/include/agl-egvirt.inc b/meta-egvirt/conf/include/agl-egvirt.inc index 1e3660ec..4373931f 100644 --- a/meta-egvirt/conf/include/agl-egvirt.inc +++ b/meta-egvirt/conf/include/agl-egvirt.inc @@ -1,7 +1,7 @@ REQUIRED_VERSION_libgpiod = "2.1" FEATURE_PACKAGES_virtio-loopback = " \ - kernel-module-virtio-loopback \ + virtio-loopback-driver \ virtio-can-driver \ virtio-loopback-adapter \ vhost-device-rng \ diff --git a/meta-egvirt/recipes-extended/vhost-device-sound/vhost-device-sound_0.2.0.bb b/meta-egvirt/recipes-extended/vhost-device-sound/vhost-device-sound_0.2.0.bb index 2520e481..eaafe9de 100644 --- a/meta-egvirt/recipes-extended/vhost-device-sound/vhost-device-sound_0.2.0.bb +++ b/meta-egvirt/recipes-extended/vhost-device-sound/vhost-device-sound_0.2.0.bb @@ -27,4 +27,6 @@ inherit cargo inherit cargo-update-recipe-crates inherit pkgconfig +export BINDGEN_EXTRA_CLANG_ARGS= "--sysroot=${STAGING_DIR_TARGET}" + include vhost-device-sound-crates.inc diff --git a/meta-egvirt/recipes-kernel/kernel-module-virtio-loopback/kernel-module-virtio-loopback.bb b/meta-egvirt/recipes-kernel/kernel-module-virtio-loopback/virtio-loopback-driver_git.bb index a7a13ffe..86e82b4a 100644 --- a/meta-egvirt/recipes-kernel/kernel-module-virtio-loopback/kernel-module-virtio-loopback.bb +++ b/meta-egvirt/recipes-kernel/kernel-module-virtio-loopback/virtio-loopback-driver_git.bb @@ -1,16 +1,16 @@ SUMMARY = "Virtio-loopback driver" DESCRIPTION = "Virtio-Loopback kernel driver" LICENSE = "GPL-2.0-or-later" -LIC_FILES_CHKSUM = "file://README.md;md5=a504d51f03528972061035344480790b" +LIC_FILES_CHKSUM = "file://COPYING;md5=570a9b3749dd0463a1778803b12a6dce" inherit module SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/virtio/virtio-loopback-driver.git;protocol=http;branch=${AGL_BRANCH}" -SRCREV = "8948c9808eded80772de98cd4e8dd0cc71fdbe17" +SRCREV = "6dbaa892941dcb7cde05094f29425bc0533a579c" S = "${WORKDIR}/git" +UNPACKDIR = "${S}" -MAKE_TARGETS = "-C ${STAGING_KERNEL_DIR} M=${WORKDIR}/git" -MODULES_INSTALL_TARGET = "-C ${STAGING_KERNEL_DIR} M=${WORKDIR}/git modules_install" - +MAKE_TARGETS = "-C ${STAGING_KERNEL_DIR} M=${S}" +MODULES_INSTALL_TARGET = "-C ${STAGING_KERNEL_DIR} M=${S} modules_install" diff --git a/meta-egvirt/recipes-virtioloopback/virtio-loopback-adapter/virtio-loopback-adapter.bb b/meta-egvirt/recipes-virtioloopback/virtio-loopback-adapter/virtio-loopback-adapter.bb index 556e6850..a9391cc3 100644 --- a/meta-egvirt/recipes-virtioloopback/virtio-loopback-adapter/virtio-loopback-adapter.bb +++ b/meta-egvirt/recipes-virtioloopback/virtio-loopback-adapter/virtio-loopback-adapter.bb @@ -1,11 +1,11 @@ SUMMARY = "Virtio-loopback-adapter application" DESCRIPTION = "Adapter bridge for virtio-loopback" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://README.md;md5=ecc9c54ada6f0c33054d3bde010744f7" +LICENSE = "GPL-2.0-or-later" +LIC_FILES_CHKSUM = "file://COPYING;md5=570a9b3749dd0463a1778803b12a6dce" FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}-${PV}:" SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/virtio/virtio-loopback-adapter;protocol=http;branch=${AGL_BRANCH}" -SRCREV = "5d3c11bfab25ba6ffc37182df25c82d23dfcfb36" +SRCREV = "4bf3f656b9d58b4b99f6ddbe5ca27f4a39876ed0" S = "${WORKDIR}/git" TARGET_CC_ARCH += "${LDFLAGS}" diff --git a/meta-offline-voice-agent/SECURITY.md b/meta-offline-voice-agent/SECURITY.md new file mode 100644 index 00000000..a3c80fdd --- /dev/null +++ b/meta-offline-voice-agent/SECURITY.md @@ -0,0 +1,19 @@ +How to Report a Potential Vulnerability? +======================================== + +If you would like to report a public issue (for example, one with a released +CVE number), please report it to security AT automotivelinux DOT org + +If you are dealing with a not-yet released or urgent issue, please send a +message to security AT automotivelinux DOT org, including as many details as +possible: the layer or software module affected, the recipe and its version, +and any example code, if available. + +Branches maintained with security fixes +--------------------------------------- + +See [https://wiki.automotivelinux.org/schedule this page] +for detailed info regarding the policies and maintenance of Stable branches. + +The [https://wiki.automotivelinux.org/agl-distro/release-notes Release page] +contains a list of all releases of Automotive Grade Linux. diff --git a/meta-uhmi/SECURITY.md b/meta-uhmi/SECURITY.md new file mode 100644 index 00000000..a3c80fdd --- /dev/null +++ b/meta-uhmi/SECURITY.md @@ -0,0 +1,19 @@ +How to Report a Potential Vulnerability? +======================================== + +If you would like to report a public issue (for example, one with a released +CVE number), please report it to security AT automotivelinux DOT org + +If you are dealing with a not-yet released or urgent issue, please send a +message to security AT automotivelinux DOT org, including as many details as +possible: the layer or software module affected, the recipe and its version, +and any example code, if available. + +Branches maintained with security fixes +--------------------------------------- + +See [https://wiki.automotivelinux.org/schedule this page] +for detailed info regarding the policies and maintenance of Stable branches. + +The [https://wiki.automotivelinux.org/agl-distro/release-notes Release page] +contains a list of all releases of Automotive Grade Linux. diff --git a/meta-uhmi/meta-agl-uhmi-demo/README.md b/meta-uhmi/meta-agl-uhmi-demo/README.md new file mode 100644 index 00000000..df956f04 --- /dev/null +++ b/meta-uhmi/meta-agl-uhmi-demo/README.md @@ -0,0 +1,53 @@ +# Unified HMI preconfigured demo images + +## Introduction +Unified HMI needs a litle complex environment setup, so here we provide a recipe that allow you to create a pre-configured images. + +## Unified HMI frameworks +For a detailed explanation of Unified HMI, please refer to the [AGL Documentation](https://docs.automotivelinux.org/en/master/#06_Component_Documentation/11_Unified_HMI/) + +## Demo environment +Demo images supports three boards: qemux-86-64, raspberrypi4, and agl-refhw. +Please prepare two boards, one is the sender and the other is the receiver, on any boards and build the respective images for each. + +* sender +``` +IP: 192.168.0.100 +HOSTNAME: agl-host0 +``` + +* receiver +``` +IP: 192.168.0.101 +HOSTNAME: agl-host1 +``` + +## How to build +Follow the [AGL documentation](https://docs.automotivelinux.org/en/master/#01_Getting_Started/02_Building_AGL_Image/01_Build_Process_Overview/) for the build process, and set up the "[Initializing Your Build Environment](https://docs.automotivelinux.org/en/master/#01_Getting_Started/02_Building_AGL_Image/04_Initializing_Your_Build_Environment/)" section as described below to enable the AGL feature 'agl-uhmi-demo'. + +For example: +``` +$ cd $AGL_TOP/master +$ source ./meta-agl/scripts/aglsetup.sh -m qemux86-64 -b qemux86-64 agl-devel agl-uhmi-demo +``` + +After adding the feature, execute the bitbake command: + +for sender +``` +$ bitbake agl-uhmi-demo-preconfigured-sender +``` + +for receiver +``` +$ bitbake agl-uhmi-demo-preconfigured-receiver +``` + +## How to use +After both the sender and receiver have successfully booted, you can execute the following commands on the sender to confirm that the application is displayed across two displays each connected to diferrent boards. + +on sender (IP:192.168.0.100, hostname:agl-host0): +``` +$ cat /var/local/uhmi-app/glmark2/app.json | ucl-distrib-com /etc/uhmi-framework/virtual-screen-def.json & +$ cat /var/local/uhmi-app/glmark2/initial_vscreen.json | ula-distrib-com +``` diff --git a/meta-uhmi/meta-agl-uhmi-demo/conf/layer.conf b/meta-uhmi/meta-agl-uhmi-demo/conf/layer.conf new file mode 100644 index 00000000..3d3466b1 --- /dev/null +++ b/meta-uhmi/meta-agl-uhmi-demo/conf/layer.conf @@ -0,0 +1,14 @@ +# We have a conf and classes directory, add to BBPATH +BBPATH =. "${LAYERDIR}:" + +# We have recipes-* directories, add to BBFILES +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ + ${LAYERDIR}/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "agl-uhmi-demo-layer" +BBFILE_PATTERN_agl-uhmi-demo-layer = "^${LAYERDIR}/" +BBFILE_PRIORITY_agl-uhmi-demo-layer = "70" + +LAYERSERIES_COMPAT_agl-uhmi-demo-layer = "scarthgap" + +LAYERDEPENDS_agl-uhmi-demo-layer = "agldemo" diff --git a/meta-uhmi/meta-agl-uhmi-demo/recipes-config/udev/uhmi-udev-conf/99-uhmi-user.rules b/meta-uhmi/meta-agl-uhmi-demo/recipes-config/udev/uhmi-udev-conf/99-uhmi-user.rules new file mode 100644 index 00000000..bf75adf1 --- /dev/null +++ b/meta-uhmi/meta-agl-uhmi-demo/recipes-config/udev/uhmi-udev-conf/99-uhmi-user.rules @@ -0,0 +1,4 @@ +KERNEL=="virtio-lo", GROUP="video", MODE="0660" +KERNEL=="uinput", RUN="/usr/bin/chown agl-driver:input /dev/uinput" +SUBSYSTEM=="drm", KERNEL=="card[1-9]*", ACTION=="add", PROGRAM="/bin/bash -c '[ -f /tmp/rvgpu-index ] && cat /tmp/rvgpu-index || echo \"\"'", RUN="/usr/bin/chown agl-driver:video /dev/dri/rvgpu_virtio%c" +SUBSYSTEM=="input", KERNEL=="event[1-9]*", ACTION=="add", ATTRS{name}=="rvgpu*", PROGRAM="/bin/bash -c '[ -f /tmp/rvgpu-index ] && cat /tmp/rvgpu-index || echo \"\"'", RUN="/usr/bin/chown agl-driver:input /dev/input/%s{name}%c" diff --git a/meta-uhmi/meta-agl-uhmi-demo/recipes-config/udev/uhmi-udev-conf_1.0.bb b/meta-uhmi/meta-agl-uhmi-demo/recipes-config/udev/uhmi-udev-conf_1.0.bb new file mode 100644 index 00000000..6566208d --- /dev/null +++ b/meta-uhmi/meta-agl-uhmi-demo/recipes-config/udev/uhmi-udev-conf_1.0.bb @@ -0,0 +1,18 @@ +SUMMARY = "UHMI kernel devices user udev configuration" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +SRC_URI = "file://99-uhmi-user.rules" + +do_compile[noexec] = "1" + +do_install() { + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/udev/rules.d + install -m 0644 ${WORKDIR}/99-uhmi-user.rules ${D}${sysconfdir}/udev/rules.d/ + fi +} + +FILES:${PN} += "${systemd_system_unitdir}" + +RDEPENDS:${PN} += "udev" diff --git a/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/files/app.json b/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/files/app.json new file mode 100644 index 00000000..488e1f4a --- /dev/null +++ b/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/files/app.json @@ -0,0 +1,51 @@ +{ + "format_v1": { + "command_type" : "remote_virtio_gpu", + "appli_name" : "glmark2", + "sender" : { + "launcher" : "agl-host0", + "command" : "/usr/bin/ucl-virtio-gpu-wl-send", + "frontend_params" : { + "scanout_x" : 0, + "scanout_y" : 0, + "scanout_w" : 1920, + "scanout_h" : 1080, + "server_port" : 33445 + }, + "appli" : "/usr/bin/glmark2-es2-wayland -s 1920x1080", + "env" : "LD_LIBRARY_PATH=/usr/lib/mesa-virtio" + }, + "receivers" : [ + { + "launcher" : "agl-host0", + "command" : "/usr/bin/ucl-virtio-gpu-wl-recv", + "backend_params" : { + "ivi_surface_id" : 101000, + "app_id" : "com.github.glmark2.glmark2", + "scanout_x" : 0, + "scanout_y" : 0, + "scanout_w" : 1920, + "scanout_h" : 1080, + "listen_port" : 33445, + "initial_screen_color" : "0x33333333" + }, + "env" : "" + }, + { + "launcher" : "agl-host1", + "command" : "/usr/bin/ucl-virtio-gpu-wl-recv", + "backend_params" : { + "ivi_surface_id" : 101000, + "app_id" : "com.github.glmark2.glmark2", + "scanout_x" : 0, + "scanout_y" : 0, + "scanout_w" : 1920, + "scanout_h" : 1080, + "listen_port" : 33445, + "initial_screen_color" : "0x33333333" + }, + "env" : "" + } + ] + } +} diff --git a/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/files/initial_vscreen.json b/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/files/initial_vscreen.json new file mode 100644 index 00000000..766de472 --- /dev/null +++ b/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/files/initial_vscreen.json @@ -0,0 +1,21 @@ +{ + "command": "initial_vscreen", + "vlayer": [ + { + "VID": 1010000, + "coord": "global", + "virtual_w": 1920, "virtual_h": 1080, + "vsrc_x": 0, "vsrc_y": 0, "vsrc_w": 1920, "vsrc_h": 1080, + "vdst_x": 960, "vdst_y": 0, "vdst_w": 1920, "vdst_h": 1080, + "vsurface": [ + { + "VID": 101000, + "APPID": "com.github.glmark2.glmark2", + "pixel_w": 1920, "pixel_h": 1080, + "psrc_x": 0, "psrc_y": 0, "psrc_w": 1920, "psrc_h": 1080, + "vdst_x": 0, "vdst_y": 0, "vdst_w": 1920, "vdst_h": 1080 + } + ] + } + ] +} diff --git a/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/files/uhmi-ivi-wm.conf b/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/files/uhmi-ivi-wm.conf new file mode 100644 index 00000000..546a61c4 --- /dev/null +++ b/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/files/uhmi-ivi-wm.conf @@ -0,0 +1,3 @@ +[Service] +Environment="XDG_RUNTIME_DIR=/run/user/200" +Environment="WAYLAND_DISPLAY=wayland-1" diff --git a/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/set-hostname.inc b/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/set-hostname.inc new file mode 100644 index 00000000..9ff5339e --- /dev/null +++ b/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/set-hostname.inc @@ -0,0 +1,5 @@ +set_hostname() { + UHMI_HOSTNAME=${UHMI_HOSTNAME:-agl-host} + echo "${UHMI_HOSTNAME}" > ${IMAGE_ROOTFS}/${sysconfdir}/hostname +} +ROOTFS_POSTPROCESS_COMMAND:append = " set_hostname;" diff --git a/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/uhmi-config-receiver.bb b/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/uhmi-config-receiver.bb new file mode 100644 index 00000000..b0b9a17e --- /dev/null +++ b/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/uhmi-config-receiver.bb @@ -0,0 +1,13 @@ +SUMMARY = "Setting files for UHMI receiver" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +SRC_URI = " \ + file://uhmi-ivi-wm.conf \ +" + +do_install() { + install -d ${D}/etc/systemd/system/uhmi-ivi-wm.service.d/ + install -m 0644 ${WORKDIR}/uhmi-ivi-wm.conf ${D}/etc/systemd/system/uhmi-ivi-wm.service.d/ +} + diff --git a/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/uhmi-config-sender.bb b/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/uhmi-config-sender.bb new file mode 100644 index 00000000..04b20671 --- /dev/null +++ b/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/uhmi-config-sender.bb @@ -0,0 +1,22 @@ +SUMMARY = "Setting files for UHMI sender" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +SRC_URI = " \ + file://app.json \ + file://initial_vscreen.json \ + file://uhmi-ivi-wm.conf \ +" + +do_install() { + install -d ${D}/var/local/uhmi-app/glmark2 + install -m 644 ${WORKDIR}/app.json ${D}/var/local/uhmi-app/glmark2/ + install -m 644 ${WORKDIR}/initial_vscreen.json ${D}/var/local/uhmi-app/glmark2/ + + install -d ${D}/etc/systemd/system/uhmi-ivi-wm.service.d/ + install -m 0644 ${WORKDIR}/uhmi-ivi-wm.conf ${D}/etc/systemd/system/uhmi-ivi-wm.service.d/ +} + +FILES:${PN} += " \ + /var/local/uhmi-app/glmark2 \ +" diff --git a/meta-uhmi/meta-agl-uhmi-demo/recipes-graphics/wayland/files/weston_ivi-shell.ini b/meta-uhmi/meta-agl-uhmi-demo/recipes-graphics/wayland/files/weston_ivi-shell.ini new file mode 100644 index 00000000..5001d11e --- /dev/null +++ b/meta-uhmi/meta-agl-uhmi-demo/recipes-graphics/wayland/files/weston_ivi-shell.ini @@ -0,0 +1,50 @@ +[core] +shell=ivi-shell.so +modules=ivi-controller.so +require-input=false + +[output] +name=HDMI-A-1 +mode=1920x1080@60 + +[output] +name=HDMI-A-2 +mode=1920x1080@60 + +[output] +name=HDMI-A-3 +mode=1920x1080@60 + +[output] +name=DSI-1 +mode=1920x1080@60 + +[output] +name=DSI-2 +mode=1920x1080@60 + +[output] +name=DP-1 +mode=1920x1080@60 + +[output] +name=Virtual-1 +mode=1920x1080 + +[output] +name=Virtual-2 +mode=1920x1080 + +[output] +name=VGA-1 +mode=1920x1080 + +[output] +name=VGA-2 +mode=1920x1080 + +[ivi-shell] +ivi-input-module=ivi-input-controller.so +#ivi-client-name=/usr/bin/simple-weston-client +bkgnd-surface-id=1000000 +bkgnd-color=0xFF000000 diff --git a/meta-uhmi/meta-agl-uhmi-demo/recipes-graphics/wayland/weston-init.bbappend b/meta-uhmi/meta-agl-uhmi-demo/recipes-graphics/wayland/weston-init.bbappend new file mode 100644 index 00000000..1cc6091c --- /dev/null +++ b/meta-uhmi/meta-agl-uhmi-demo/recipes-graphics/wayland/weston-init.bbappend @@ -0,0 +1,13 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/files:" + +WESTON_INIT_IVI_SHELL ?= "weston_ivi-shell.ini" + +SRC_URI:append = " \ + file://${WESTON_INIT_IVI_SHELL} \ +" + +do_install:append () { + install -d ${D}/${sysconfdir}/xdg/weston + install -m 644 ${WORKDIR}/${WESTON_INIT_IVI_SHELL} ${D}/${sysconfdir}/xdg/weston/ + ln -nfs ${sysconfdir}/xdg/weston/${WESTON_INIT_IVI_SHELL} ${D}/${sysconfdir}/xdg/weston/weston.ini +} diff --git a/meta-uhmi/meta-agl-uhmi-demo/recipes-platform/images/agl-uhmi-demo-preconfigured-receiver-agl.bb b/meta-uhmi/meta-agl-uhmi-demo/recipes-platform/images/agl-uhmi-demo-preconfigured-receiver-agl.bb new file mode 100644 index 00000000..89f19073 --- /dev/null +++ b/meta-uhmi/meta-agl-uhmi-demo/recipes-platform/images/agl-uhmi-demo-preconfigured-receiver-agl.bb @@ -0,0 +1,22 @@ +SUMMARY = "AGL Unified HMI demo preconfigured AGL receiver image" +LICENSE = "MIT" + +DEPENDS = "uhmi-agl-wm" + +require recipes-platform/images/agl-image-compositor.bb +require recipes-platform/images/agl-demo-features.inc + +IMAGE_FEATURES += "ssh-server-openssh" + +# Add packages for Unified HMI demo platform here +IMAGE_INSTALL += " \ + packagegroup-rvgpu \ + packagegroup-ddfw-agl \ + uhmi-config-receiver \ + agl-compositor \ + native-shell-client \ + uhmi-udev-conf \ +" + +UHMI_HOSTNAME ?= "agl-host1" +require recipes-config/uhmi-config/set-hostname.inc diff --git a/meta-uhmi/meta-agl-uhmi-demo/recipes-platform/images/agl-uhmi-demo-preconfigured-receiver.bb b/meta-uhmi/meta-agl-uhmi-demo/recipes-platform/images/agl-uhmi-demo-preconfigured-receiver.bb new file mode 100644 index 00000000..1e7de2c0 --- /dev/null +++ b/meta-uhmi/meta-agl-uhmi-demo/recipes-platform/images/agl-uhmi-demo-preconfigured-receiver.bb @@ -0,0 +1,18 @@ +SUMMARY = "AGL Unified HMI demo preconfigured weston receiver image" +LICENSE = "MIT" + +DEPENDS = "uhmi-ivi-wm" + +require recipes-platform/images/agl-image-weston.bb + +IMAGE_FEATURES += "ssh-server-openssh" + +# Add packages for Unified HMI demo platform here +IMAGE_INSTALL += " \ + packagegroup-rvgpu \ + packagegroup-ddfw \ + uhmi-config-receiver \ +" + +UHMI_HOSTNAME ?= "agl-host1" +require recipes-config/uhmi-config/set-hostname.inc diff --git a/meta-uhmi/meta-agl-uhmi-demo/recipes-platform/images/agl-uhmi-demo-preconfigured-sender-agl.bb b/meta-uhmi/meta-agl-uhmi-demo/recipes-platform/images/agl-uhmi-demo-preconfigured-sender-agl.bb new file mode 100644 index 00000000..ce47aff6 --- /dev/null +++ b/meta-uhmi/meta-agl-uhmi-demo/recipes-platform/images/agl-uhmi-demo-preconfigured-sender-agl.bb @@ -0,0 +1,23 @@ +SUMMARY = "AGL Unified HMI demo preconfigured AGL sender image" +LICENSE = "MIT" + +DEPENDS = "uhmi-agl-wm" + +require recipes-platform/images/agl-image-compositor.bb +require recipes-platform/images/agl-demo-features.inc + +IMAGE_FEATURES += "ssh-server-openssh package-management" + +# Add packages for Unified HMI demo platform here +IMAGE_INSTALL += " \ + packagegroup-rvgpu \ + packagegroup-ddfw-agl \ + uhmi-config-sender \ + agl-compositor \ + native-shell-client \ + glmark2 \ + uhmi-udev-conf \ +" + +UHMI_HOSTNAME ?= "agl-host0" +require recipes-config/uhmi-config/set-hostname.inc diff --git a/meta-uhmi/meta-agl-uhmi-demo/recipes-platform/images/agl-uhmi-demo-preconfigured-sender.bb b/meta-uhmi/meta-agl-uhmi-demo/recipes-platform/images/agl-uhmi-demo-preconfigured-sender.bb new file mode 100644 index 00000000..5c9d6a2b --- /dev/null +++ b/meta-uhmi/meta-agl-uhmi-demo/recipes-platform/images/agl-uhmi-demo-preconfigured-sender.bb @@ -0,0 +1,19 @@ +SUMMARY = "AGL Unified HMI demo preconfigured weston sender image" +LICENSE = "MIT" + +DEPENDS = "uhmi-ivi-wm" + +require recipes-platform/images/agl-image-weston.bb + +IMAGE_FEATURES += "ssh-server-openssh" + +# Add packages for Unified HMI demo platform here +IMAGE_INSTALL += " \ + packagegroup-rvgpu \ + packagegroup-ddfw \ + uhmi-config-sender \ + glmark2 \ +" + +UHMI_HOSTNAME ?= "agl-host0" +require recipes-config/uhmi-config/set-hostname.inc diff --git a/meta-uhmi/recipes-core/ucl-tools/files/ucl-launcher.service b/meta-uhmi/recipes-core/ucl-tools/files/ucl-launcher.service index 37f289e6..a954c90f 100644 --- a/meta-uhmi/recipes-core/ucl-tools/files/ucl-launcher.service +++ b/meta-uhmi/recipes-core/ucl-tools/files/ucl-launcher.service @@ -2,7 +2,9 @@ Description=ucl-launcher [Service] -Type=idle +Type=simple +User=agl-driver +Environment=XDG_RUNTIME_DIR=/run/user/1001 ExecStart=/usr/bin/ucl-launcher KillSignal=SIGTERM TimeoutStopSec=10 diff --git a/meta-uhmi/recipes-core/ucl-tools/ucl-tools_git.bb b/meta-uhmi/recipes-core/ucl-tools/ucl-tools_git.bb index cc26678b..bb24cd66 100644 --- a/meta-uhmi/recipes-core/ucl-tools/ucl-tools_git.bb +++ b/meta-uhmi/recipes-core/ucl-tools/ucl-tools_git.bb @@ -9,8 +9,8 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/files:" PN="ucl-tools" PROVIDES += "ucl-tools" -SRCREV = "80e83132834b5ab62875bc294332bd00cd559d5d" -BRANCH ?= "main" +SRCREV = "8a95c5412ff90507e33f9c5d4e57e3a5b4bb7205" +BRANCH ?= "agl" SRC_URI = " \ git://github.com/unified-hmi/ucl-tools.git;protocol=https;branch=${BRANCH} \ " @@ -28,7 +28,7 @@ inherit go RDEPENDS:${PN} = "bash" RDEPENDS:${PN}-dev = "bash" -inherit systemd +inherit systemd features_check SRC_URI += " file://ucl-launcher.service" REQUIRED_DISTRO_FEATURES = "systemd" diff --git a/meta-uhmi/recipes-core/uhmi-agl-wm/files/uhmi-agl-wm.service b/meta-uhmi/recipes-core/uhmi-agl-wm/files/uhmi-agl-wm.service new file mode 100644 index 00000000..39ca19d8 --- /dev/null +++ b/meta-uhmi/recipes-core/uhmi-agl-wm/files/uhmi-agl-wm.service @@ -0,0 +1,16 @@ +[Unit] +Description=uhmi AGL window manager +After=agl-compositor.service + +[Service] +Type=simple +User=agl-driver +Environment=XDG_RUNTIME_DIR=/run/user/1001 +EnvironmentFile=-/etc/default/uhmi-agl-wm +ExecStart=/usr/bin/uhmi-agl-wm +KillSignal=SIGKILL +Restart=always +RestartSec=1s + +[Install] +WantedBy=multi-user.target diff --git a/meta-uhmi/recipes-core/uhmi-agl-wm/uhmi-agl-wm_git.bb b/meta-uhmi/recipes-core/uhmi-agl-wm/uhmi-agl-wm_git.bb new file mode 100644 index 00000000..2329c0be --- /dev/null +++ b/meta-uhmi/recipes-core/uhmi-agl-wm/uhmi-agl-wm_git.bb @@ -0,0 +1,41 @@ +DESCRIPTION = "UHMI AGL window-manager" +DEPENDS = " agl-compositor grpc grpc-native jansson" + +RDEPENDS:${PN} = " jansson" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=fb8ec92f12228c45a207d99abba9d6c9" + +FILESEXTRAPATHS:prepend := "${THISDIR}/files:" + +PN="uhmi-agl-wm" + +SRCREV = "20c1228834f141bbbb6c0ee71d4f3c4149f87b66" +BRANCH ?= "master" +SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/uhmi-agl-wm.git;protocol=https;branch=${AGL_BRANCH}" +PV = "0.0+git${SRCPV}" + +S = "${WORKDIR}/git" + +inherit meson pkgconfig systemd features_check + +SRC_URI += " file://uhmi-agl-wm.service" + +REQUIRED_DISTRO_FEATURES = "systemd" +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE:${PN} = "uhmi-agl-wm.service" +SYSTEMD_AUTO_ENABLE:${PN} = "enable" + +FILES:${PN} += " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_system_unitdir}/${SYSTEMD_SERVICE}', '', d)} \ + " + +do_install:append() { + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -d ${D}${systemd_system_unitdir} + install -m 644 ${WORKDIR}/*.service ${D}/${systemd_system_unitdir} + fi +} + +FILES:${PN} += " /usr/bin/uhmi-agl-wm" +FILES:${PN} += " /usr/share/*" diff --git a/meta-uhmi/recipes-core/uhmi-ivi-wm/uhmi-ivi-wm_git.bb b/meta-uhmi/recipes-core/uhmi-ivi-wm/uhmi-ivi-wm_git.bb index daa5fff4..57af74ef 100644 --- a/meta-uhmi/recipes-core/uhmi-ivi-wm/uhmi-ivi-wm_git.bb +++ b/meta-uhmi/recipes-core/uhmi-ivi-wm/uhmi-ivi-wm_git.bb @@ -19,10 +19,8 @@ PV = "0.0+git${SRCPV}" S = "${WORKDIR}/git" -inherit cmake +inherit cmake systemd features_check - -inherit systemd SRC_URI += " file://uhmi-ivi-wm.service" REQUIRED_DISTRO_FEATURES = "systemd" SYSTEMD_PACKAGES = "${PN}" @@ -39,6 +37,5 @@ do_install:append() { fi } - FILES:${PN} += " /usr/bin/uhmi-ivi-wm" FILES:${PN} += " /usr/share/*" diff --git a/meta-uhmi/recipes-core/ula-tools/files/ula-node-agl.service b/meta-uhmi/recipes-core/ula-tools/files/ula-node-agl.service new file mode 100644 index 00000000..2d01b7c2 --- /dev/null +++ b/meta-uhmi/recipes-core/ula-tools/files/ula-node-agl.service @@ -0,0 +1,17 @@ +[Unit] +Description=ula-node +Requires=uhmi-agl-wm.service +After=uhmi-agl-wm.service + +[Service] +Type=simple +User=agl-driver +Environment=XDG_RUNTIME_DIR=/run/user/1001 +ExecStart=/usr/bin/ula-node +KillSignal=SIGTERM +TimeoutStopSec=10 +Restart=always +RestartSec=2 + +[Install] +WantedBy=multi-user.target diff --git a/meta-uhmi/recipes-core/ula-tools/files/ula-node.service b/meta-uhmi/recipes-core/ula-tools/files/ula-node.service index edf69f3d..44a3af48 100644 --- a/meta-uhmi/recipes-core/ula-tools/files/ula-node.service +++ b/meta-uhmi/recipes-core/ula-tools/files/ula-node.service @@ -4,7 +4,9 @@ Requires=uhmi-ivi-wm.service After=uhmi-ivi-wm.service [Service] -Type=idle +Type=simple +User=agl-driver +Environment=XDG_RUNTIME_DIR=/run/user/1001 ExecStart=/usr/bin/ula-node KillSignal=SIGTERM TimeoutStopSec=10 diff --git a/meta-uhmi/recipes-core/ula-tools/ula-tools-agl_git.bb b/meta-uhmi/recipes-core/ula-tools/ula-tools-agl_git.bb new file mode 100644 index 00000000..744bff4a --- /dev/null +++ b/meta-uhmi/recipes-core/ula-tools/ula-tools-agl_git.bb @@ -0,0 +1,69 @@ +SUMMARY = "Unified HMI Layout Tools" +SECTION = "graphics" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://src/ula-tools/LICENSE.md;md5=e789951aab02a3028d2e58b90fc933ba" + +FILESEXTRAPATHS:prepend := "${THISDIR}/files:" + +PN="ula-tools-agl" +PROVIDES += "ula-tools-agl" + +SRCREV = "3591690087d8267a79d3d0714ef5f4abc4bffc8d" +BRANCH ?= "agl" +SRC_URI = " \ + git://github.com/unified-hmi/ula-tools.git;protocol=https;branch=${BRANCH} \ +" +PV = "0.0+git${SRCPV}" + +S = "${WORKDIR}/git" + +export GO111MODULE="auto" + +GO_IMPORT = "ula-tools" +GO_INSTALL = " ${GO_IMPORT}/cmd/ula-distrib-com ${GO_IMPORT}/cmd/ula-node" + +inherit go +RDEPENDS:${PN} = "jq bash" +RDEPENDS:${PN}-dev = "bash" + +inherit systemd features_check + +SRC_URI += " \ + file://ula-node-agl.service \ + file://virtual-screen-def.json \ + " + +REQUIRED_DISTRO_FEATURES = "systemd" +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE:${PN} = "ula-node.service" +SYSTEMD_AUTO_ENABLE:${PN} = "enable" +FILES:${PN} += " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_system_unitdir}/${SYSTEMD_SERVICE}', '', d)} \ + /etc/uhmi-framework/virtual-screen-def.json \ + " + +do_compile:append() { + export CGO_ENABLED="1" + export GOFLAGS="-mod=vendor -trimpath" + ${GO} build -buildmode=c-shared -o ${GOPATH}/pkg/libulaclient.so -v -ldflags '-extldflags "-Wl,-soname=libulaclient.so"' ${GO_IMPORT}/pkg/ula-client-lib +} + +do_install:append() { + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -d ${D}${systemd_system_unitdir} + install -m 644 ${WORKDIR}/*.service ${D}/${systemd_system_unitdir}/ula-node.service + fi + + install -d ${D}/etc/uhmi-framework + install -m 644 ${WORKDIR}/virtual-screen-def.json ${D}/etc/uhmi-framework + + install -d ${D}${libdir} + install -m 0755 ${GOPATH}/pkg/libulaclient.so ${D}${libdir} + + install -d ${D}${includedir} + install -m 644 ${GOPATH}/pkg/libulaclient.h ${D}${includedir} +} + +FILES:${PN} += "${libdir}" +FILES:${PN} += "${includedir}" diff --git a/meta-uhmi/recipes-core/ula-tools/ula-tools_git.bb b/meta-uhmi/recipes-core/ula-tools/ula-tools_git.bb index 9b945a3f..1dc26e20 100644 --- a/meta-uhmi/recipes-core/ula-tools/ula-tools_git.bb +++ b/meta-uhmi/recipes-core/ula-tools/ula-tools_git.bb @@ -18,18 +18,16 @@ PV = "0.0+git${SRCPV}" S = "${WORKDIR}/git" - export GO111MODULE="auto" GO_IMPORT = "ula-tools" GO_INSTALL = " ${GO_IMPORT}/cmd/ula-distrib-com ${GO_IMPORT}/cmd/ula-node" - inherit go RDEPENDS:${PN} = "jq bash" RDEPENDS:${PN}-dev = "bash" -inherit systemd +inherit systemd features_check SRC_URI += " \ file://ula-node.service \ @@ -47,10 +45,10 @@ FILES:${PN} += " \ do_compile:append() { export CGO_ENABLED="1" + export GOFLAGS="-mod=vendor -trimpath" ${GO} build -buildmode=c-shared -o ${GOPATH}/pkg/libulaclient.so -v -ldflags '-extldflags "-Wl,-soname=libulaclient.so"' ${GO_IMPORT}/pkg/ula-client-lib } - do_install:append() { if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then install -d ${D}${systemd_system_unitdir} @@ -65,7 +63,6 @@ do_install:append() { install -d ${D}${includedir} install -m 644 ${GOPATH}/pkg/libulaclient.h ${D}${includedir} - } FILES:${PN} += "${libdir}" diff --git a/meta-uhmi/recipes-graphics/mesa-virtio/mesa-virtio_20.3.5.bb b/meta-uhmi/recipes-graphics/mesa-virtio/mesa-virtio_20.3.5.bb index 9a0dab2f..03d8ddc2 100644 --- a/meta-uhmi/recipes-graphics/mesa-virtio/mesa-virtio_20.3.5.bb +++ b/meta-uhmi/recipes-graphics/mesa-virtio/mesa-virtio_20.3.5.bb @@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://docs/license.rst;md5=9aa1bc48c9826ad9fdb16661f6930496 DEPENDS = "expat makedepend-native flex-native bison-native libxml2-native zlib chrpath-replacement-native python3-mako-native gettext-native" DEPENDS:append = " libdrm wayland wayland-native wayland-protocols python3-native" -SRC_URI = "https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz" +SRC_URI = "https://mesa.freedesktop.org/archive/older-versions/20.x/mesa-${PV}.tar.xz" SRC_URI[md5] = "224d7576618ef4dd8ac69f30b5b90b38" SRC_URI[sha256sum] = "909a72df63dfa3c0844ccf44a26ac028d148297ed333ab51560893923d7691ce" diff --git a/meta-uhmi/recipes-graphics/remote-virtio-gpu/remote-virtio-gpu.inc b/meta-uhmi/recipes-graphics/remote-virtio-gpu/remote-virtio-gpu.inc index ddd6dbab..47866ca6 100644 --- a/meta-uhmi/recipes-graphics/remote-virtio-gpu/remote-virtio-gpu.inc +++ b/meta-uhmi/recipes-graphics/remote-virtio-gpu/remote-virtio-gpu.inc @@ -1,6 +1,6 @@ PV = "0.0+git${SRCPV}" -SRCREV = "bce1f77f189dacf3e57d2f4edc37be4ff63b9e4b" -BRANCH ?= "main" +SRCREV = "f9e5d64f61a646849a835232998f6cf079176fb3" +BRANCH ?= "agl" SRC_URI = " \ git://github.com/unified-hmi/remote-virtio-gpu.git;protocol=https;branch=${BRANCH} \ " diff --git a/meta-uhmi/recipes-kernel/virtio-loopback-driver/virtio-loopback-driver.inc b/meta-uhmi/recipes-kernel/virtio-loopback-driver/virtio-loopback-driver.inc index a7c0111b..a6fb033a 100644 --- a/meta-uhmi/recipes-kernel/virtio-loopback-driver/virtio-loopback-driver.inc +++ b/meta-uhmi/recipes-kernel/virtio-loopback-driver/virtio-loopback-driver.inc @@ -1,5 +1,5 @@ PV = "0.0+git${SRCPV}" -SRCREV = "cf40e4d295c75567cb7d1d03f9fe291e9593e882" +SRCREV = "52da5c41c45b7bbc8f042d40d3c2daa3c779e06c" BRANCH ?= "main" SRC_URI = " \ git://github.com/unified-hmi/virtio-loopback-driver.git;protocol=https;branch=${BRANCH} \ diff --git a/meta-uhmi/recipes-platform/packagegroups/packagegroup-ddfw-agl.bb b/meta-uhmi/recipes-platform/packagegroups/packagegroup-ddfw-agl.bb new file mode 100644 index 00000000..88a65d6a --- /dev/null +++ b/meta-uhmi/recipes-platform/packagegroups/packagegroup-ddfw-agl.bb @@ -0,0 +1,11 @@ +SUMMARY = "Unified AGL HMI Package Groups" +LICENSE = "Apache-2.0" + +inherit packagegroup + +RDEPENDS:${PN} += " \ + ucl-tools \ + ula-tools-agl \ + uhmi-agl-wm \ + agl-compositor \ +" diff --git a/templates/feature/agl-ic-container/50_bblayers.conf.inc b/templates/feature/agl-ic-container/50_bblayers.conf.inc index 313cf12a..16da1c4d 100644 --- a/templates/feature/agl-ic-container/50_bblayers.conf.inc +++ b/templates/feature/agl-ic-container/50_bblayers.conf.inc @@ -2,10 +2,8 @@ AGL_META_PYTHON = "${METADIR}/external/meta-openembedded/meta-python" AGL_META_NETWORKING = "${METADIR}/external/meta-openembedded/meta-networking" AGL_META_FILESYSTEMS = "${METADIR}/external/meta-openembedded/meta-filesystems" AGL_META_VIRTUALIZATION = "${METADIR}/external/meta-virtualization" -AGL_META_QT5 = "" AGL_META_QT6 = "${METADIR}/external/meta-qt6" BBLAYERS =+ " \ ${METADIR}/meta-agl-devel/meta-agl-ic-container \ - ${AGL_META_QT6} \ " diff --git a/templates/feature/agl-uhmi-demo/50_bblayers.conf.inc b/templates/feature/agl-uhmi-demo/50_bblayers.conf.inc new file mode 100644 index 00000000..9048d828 --- /dev/null +++ b/templates/feature/agl-uhmi-demo/50_bblayers.conf.inc @@ -0,0 +1,3 @@ +BBLAYERS =+ " \ + ${METADIR}/meta-agl-devel/meta-uhmi/meta-agl-uhmi-demo \ +" diff --git a/templates/feature/agl-uhmi-demo/included.dep b/templates/feature/agl-uhmi-demo/included.dep new file mode 100644 index 00000000..9d33e122 --- /dev/null +++ b/templates/feature/agl-uhmi-demo/included.dep @@ -0,0 +1,2 @@ +agl-demo +agl-uhmi |