From: Naoto Yamaguchi Date: Thu, 4 May 2023 07:31:00 +0000 (+0900) Subject: Add initial container manager config for r-car gen3 X-Git-Tag: 15.91.0~31 X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=commitdiff_plain;h=d74a85f6c8f7f54065cd4fbcd0e876e77de1ceb4;p=AGL%2Fmeta-agl-devel.git Add initial container manager config for r-car gen3 This patch add config files for container manager to launch guest by container manager. Bug-AGL: SPEC-4777 Change-Id: I0b2fd8f87f3cdffbbda0688f3d6b4b980bdc2c2b Signed-off-by: Naoto Yamaguchi --- diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo/agl-flutter-ivi-demo.json b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo/agl-flutter-ivi-demo.json new file mode 100644 index 00000000..d8be0afb --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo/agl-flutter-ivi-demo.json @@ -0,0 +1,182 @@ +{ + "name": "agl-flutter-ivi-demo", + "role": "ivi", + "base": { + "autoboot": false, + "bootpriority": 10, + "rootfs": { + "path": "/opt/container/guests/agl-flutter-ivi-demo/rootfs", + "filesystem": "ext4", + "mode": "rw", + "blockdev": [ + "/dev/mmcblk1p5", + "/dev/mmcblk1p5" + ] + }, + "lifecycle": { + "halt": "SIGRTMIN+3", + "reboot": "SIGTERM" + }, + "cap": { + "drop": "sys_module mac_admin mac_override", + "keep": "" + }, + "environment": [ + "PIPEWIRE_RUNTIME_DIR=/var", + "HOME=/home/root" + ] + }, + "resource": [ + { + "type": "cgroup", + "object": "cpuset.cpus", + "value": "0,2-3" + } + ], + "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/pipewire/pipewire-0", + "to": "var/pipewire-0", + "fstype": "none", + "option": "bind,optional,create=file" + }, + { + "type": "directory", + "from": "/opt/container/guests/agl-flutter-ivi-demo/system.conf", + "to": "etc/systemd/system.conf.d/10-environment.conf", + "fstype": "none", + "option": "bind,optional,create=file" + } + ] + }, + "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": "devnode", + "from": "/dev/pvr_sync", + "to": "dev/pvr_sync", + "devnode": "/dev/pvr_sync", + "optional": 0, + "wideallow": 0, + "exclusive": 0 + } + ], +"dynamic": [ + { + "devpath": "/devices/platform/soc/ee0a0100.usb/usb2/", + "items": [ + { + "subsystem": "usb", + "rule": { + "devtype": ["usb_device","usb_interface"], + "action": ["add", "remove"] + }, + "behavior": { + "injection": 1, + "devnode": 0, + "allow": 0, + "permission": "rw" + } + }, + { + "subsystem": "block", + "rule": { + "action": ["add", "remove","change"], + "extra" : [ + { + "checker": "exclude-fs", + "value": "ext4" + } + ] + }, + "behavior": { + "injection": 1, + "devnode": 0, + "allow": 1, + "permission": "rwm" + } + } + ] + }, + { + "devpath": "/devices/platform/soc/ee0a0100.usb/usb2/", + "items": [ + { + "subsystem": "hid", + "rule": { + "action": ["add", "remove"] + }, + "behavior": { + "injection": 1, + "devnode": 1, + "allow": 1, + "permission": "rw" + } + } + ] + } + ] + }, + "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/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo/system.conf.agl-flutter-ivi-demo.in b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo/system.conf.agl-flutter-ivi-demo.in new file mode 100644 index 00000000..ee7a4103 --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo/system.conf.agl-flutter-ivi-demo.in @@ -0,0 +1,4 @@ +[Manager] +DefaultEnvironment = DLM_RUNTIME_PATH=/var/display/drm-lease-manager +DefaultEnvironment = DRM_LEASE_DEVICE=card0-HDMI-A-1 +DefaultEnvironment = PIPEWIRE_RUNTIME_DIR=/var diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo_%.bbappend b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo_%.bbappend new file mode 100644 index 00000000..1301f1d3 --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo_%.bbappend @@ -0,0 +1,21 @@ +DESCRIPTION = "AGL flutter IVI demo container config" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9" + +SRC_URI = "file://agl-flutter-ivi-demo.json \ + file://system.conf.agl-flutter-ivi-demo.in \ + " + +inherit allarch + +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 -Dm644 ${WORKDIR}/system.conf.agl-flutter-ivi-demo.in ${D}/opt/container/guests/agl-flutter-ivi-demo/system.conf +} + +FILES:${PN} += " \ + /opt/container/conf/* \ + /opt/container/guests/agl-flutter-ivi-demo/* \ + " diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-html5-ivi-demo/agl-html5-ivi-demo.json b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-html5-ivi-demo/agl-html5-ivi-demo.json new file mode 100644 index 00000000..16989057 --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-html5-ivi-demo/agl-html5-ivi-demo.json @@ -0,0 +1,183 @@ +{ + "name": "agl-html5-ivi-demo", + "role": "ivi", + "base": { + "autoboot": false, + "bootpriority": 10, + "rootfs": { + "path": "/opt/container/guests/agl-html5-ivi-demo/rootfs", + "filesystem": "ext4", + "mode": "rw", + "blockdev": [ + "/dev/mmcblk1p6", + "/dev/mmcblk1p6" + ] + }, + "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" + ] + }, + "resource": [ + { + "type": "cgroup", + "object": "cpuset.cpus", + "value": "0,2-3" + } + ], + "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/pipewire/pipewire-0", + "to": "var/pipewire-0", + "fstype": "none", + "option": "bind,optional,create=file" + }, + { + "type": "directory", + "from": "/opt/container/guests/agl-html5-ivi-demo/system.conf", + "to": "etc/systemd/system.conf.d/10-environment.conf", + "fstype": "none", + "option": "bind,optional,create=file" + } + ] + }, + "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": "devnode", + "from": "/dev/pvr_sync", + "to": "dev/pvr_sync", + "devnode": "/dev/pvr_sync", + "optional": 0, + "wideallow": 0, + "exclusive": 0 + } + ], + "dynamic": [ + { + "devpath": "/devices/platform/soc/ee0a0100.usb/usb2/", + "items": [ + { + "subsystem": "usb", + "rule": { + "devtype": ["usb_device","usb_interface"], + "action": ["add", "remove"] + }, + "behavior": { + "injection": 1, + "devnode": 0, + "allow": 0, + "permission": "rw" + } + }, + { + "subsystem": "block", + "rule": { + "action": ["add", "remove","change"], + "extra" : [ + { + "checker": "exclude-fs", + "value": "ext4" + } + ] + }, + "behavior": { + "injection": 1, + "devnode": 0, + "allow": 1, + "permission": "rwm" + } + } + ] + }, + { + "devpath": "/devices/platform/soc/ee0a0100.usb/usb2/", + "items": [ + { + "subsystem": "hid", + "rule": { + "action": ["add", "remove"] + }, + "behavior": { + "injection": 1, + "devnode": 1, + "allow": 1, + "permission": "rw" + } + } + ] + } + ] + }, + "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/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-html5-ivi-demo/system.conf.agl-html5-ivi-demo.in b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-html5-ivi-demo/system.conf.agl-html5-ivi-demo.in new file mode 100644 index 00000000..ee7a4103 --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-html5-ivi-demo/system.conf.agl-html5-ivi-demo.in @@ -0,0 +1,4 @@ +[Manager] +DefaultEnvironment = DLM_RUNTIME_PATH=/var/display/drm-lease-manager +DefaultEnvironment = DRM_LEASE_DEVICE=card0-HDMI-A-1 +DefaultEnvironment = PIPEWIRE_RUNTIME_DIR=/var diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-html5-ivi-demo_%.bbappend b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-html5-ivi-demo_%.bbappend new file mode 100644 index 00000000..596e4997 --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-html5-ivi-demo_%.bbappend @@ -0,0 +1,21 @@ +DESCRIPTION = "AGL HTML5 IVI demo container config" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9" + +SRC_URI = "file://agl-html5-ivi-demo.json \ + file://system.conf.agl-html5-ivi-demo.in \ + " + +inherit allarch + +do_install:append() { + install -Dm644 ${WORKDIR}/agl-html5-ivi-demo.json ${D}/opt/container/conf/agl-html5-ivi-demo.json + install -d ${D}/opt/container/guests/agl-html5-ivi-demo/rootfs + install -d ${D}/opt/container/guests/agl-html5-ivi-demo/nv + install -Dm644 ${WORKDIR}/system.conf.agl-html5-ivi-demo.in ${D}/opt/container/guests/agl-html5-ivi-demo/system.conf +} + +FILES:${PN} += " \ + /opt/container/conf/* \ + /opt/container/guests/agl-html5-ivi-demo/* \ + " diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo/agl-momi-ivi-demo.json b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo/agl-momi-ivi-demo.json new file mode 100644 index 00000000..79bf5dd5 --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo/agl-momi-ivi-demo.json @@ -0,0 +1,183 @@ +{ + "name": "agl-momi-ivi-demo", + "role": "ivi", + "base": { + "autoboot": true, + "bootpriority": 10, + "rootfs": { + "path": "/opt/container/guests/agl-momi-ivi-demo/rootfs", + "filesystem": "ext4", + "mode": "rw", + "blockdev": [ + "/dev/mmcblk1p3", + "/dev/mmcblk1p3" + ] + }, + "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" + ] + }, + "resource": [ + { + "type": "cgroup", + "object": "cpuset.cpus", + "value": "0,2-3" + } + ], + "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/pipewire/pipewire-0", + "to": "var/pipewire-0", + "fstype": "none", + "option": "bind,optional,create=file" + }, + { + "type": "directory", + "from": "/opt/container/guests/agl-momi-ivi-demo/system.conf", + "to": "etc/systemd/system.conf.d/10-environment.conf", + "fstype": "none", + "option": "bind,optional,create=file" + } + ] + }, + "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": "devnode", + "from": "/dev/pvr_sync", + "to": "dev/pvr_sync", + "devnode": "/dev/pvr_sync", + "optional": 0, + "wideallow": 0, + "exclusive": 0 + } + ], + "dynamic": [ + { + "devpath": "/devices/platform/soc/ee0a0100.usb/usb2/", + "items": [ + { + "subsystem": "usb", + "rule": { + "devtype": ["usb_device","usb_interface"], + "action": ["add", "remove"] + }, + "behavior": { + "injection": 1, + "devnode": 0, + "allow": 0, + "permission": "rw" + } + }, + { + "subsystem": "block", + "rule": { + "action": ["add", "remove","change"], + "extra" : [ + { + "checker": "exclude-fs", + "value": "ext4" + } + ] + }, + "behavior": { + "injection": 1, + "devnode": 0, + "allow": 1, + "permission": "rwm" + } + } + ] + }, + { + "devpath": "/devices/platform/soc/ee0a0100.usb/usb2/", + "items": [ + { + "subsystem": "hid", + "rule": { + "action": ["add", "remove"] + }, + "behavior": { + "injection": 1, + "devnode": 1, + "allow": 1, + "permission": "rw" + } + } + ] + } + ] + }, + "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/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo/system.conf.agl-momi-ivi.in b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo/system.conf.agl-momi-ivi.in new file mode 100644 index 00000000..ee7a4103 --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo/system.conf.agl-momi-ivi.in @@ -0,0 +1,4 @@ +[Manager] +DefaultEnvironment = DLM_RUNTIME_PATH=/var/display/drm-lease-manager +DefaultEnvironment = DRM_LEASE_DEVICE=card0-HDMI-A-1 +DefaultEnvironment = PIPEWIRE_RUNTIME_DIR=/var diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo_%.bbappend b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo_%.bbappend new file mode 100644 index 00000000..8f229830 --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo_%.bbappend @@ -0,0 +1,2 @@ +# Container Manager config for AGL Momi IVI demo on R-Car Gen3 +FILESEXTRAPATHS:prepend := "${THISDIR}/cm-config-agl-momi-ivi-demo:" diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo/agl-qt-ivi-demo.json b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo/agl-qt-ivi-demo.json new file mode 100644 index 00000000..3c92f3b8 --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo/agl-qt-ivi-demo.json @@ -0,0 +1,183 @@ +{ + "name": "agl-qt-ivi-demo", + "role": "ivi", + "base": { + "autoboot": false, + "bootpriority": 10, + "rootfs": { + "path": "/opt/container/guests/agl-qt-ivi-demo/rootfs", + "filesystem": "ext4", + "mode": "rw", + "blockdev": [ + "/dev/mmcblk1p4", + "/dev/mmcblk1p4" + ] + }, + "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" + ] + }, + "resource": [ + { + "type": "cgroup", + "object": "cpuset.cpus", + "value": "0,2-3" + } + ], + "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/pipewire/pipewire-0", + "to": "var/pipewire-0", + "fstype": "none", + "option": "bind,optional,create=file" + }, + { + "type": "directory", + "from": "/opt/container/guests/agl-qt-ivi-demo/system.conf", + "to": "etc/systemd/system.conf.d/10-environment.conf", + "fstype": "none", + "option": "bind,optional,create=file" + } + ] + }, + "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": "devnode", + "from": "/dev/pvr_sync", + "to": "dev/pvr_sync", + "devnode": "/dev/pvr_sync", + "optional": 0, + "wideallow": 0, + "exclusive": 0 + } + ], + "dynamic": [ + { + "devpath": "/devices/platform/soc/ee0a0100.usb/usb2/", + "items": [ + { + "subsystem": "usb", + "rule": { + "devtype": ["usb_device","usb_interface"], + "action": ["add", "remove"] + }, + "behavior": { + "injection": 1, + "devnode": 0, + "allow": 0, + "permission": "rw" + } + }, + { + "subsystem": "block", + "rule": { + "action": ["add", "remove","change"], + "extra" : [ + { + "checker": "exclude-fs", + "value": "ext4" + } + ] + }, + "behavior": { + "injection": 1, + "devnode": 0, + "allow": 1, + "permission": "rwm" + } + } + ] + }, + { + "devpath": "/devices/platform/soc/ee0a0100.usb/usb2/", + "items": [ + { + "subsystem": "hid", + "rule": { + "action": ["add", "remove"] + }, + "behavior": { + "injection": 1, + "devnode": 1, + "allow": 1, + "permission": "rw" + } + } + ] + } + ] + }, + "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/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo/system.conf.agl-qt-ivi.in b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo/system.conf.agl-qt-ivi.in new file mode 100644 index 00000000..ee7a4103 --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo/system.conf.agl-qt-ivi.in @@ -0,0 +1,4 @@ +[Manager] +DefaultEnvironment = DLM_RUNTIME_PATH=/var/display/drm-lease-manager +DefaultEnvironment = DRM_LEASE_DEVICE=card0-HDMI-A-1 +DefaultEnvironment = PIPEWIRE_RUNTIME_DIR=/var diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo_%.bbappend b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo_%.bbappend new file mode 100644 index 00000000..3b998456 --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo_%.bbappend @@ -0,0 +1,21 @@ +DESCRIPTION = "AGL Qt IVI demo container config" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9" + +SRC_URI = "file://agl-qt-ivi-demo.json \ + file://system.conf.agl-qt-ivi.in \ + " + +inherit allarch + +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 -Dm644 ${WORKDIR}/system.conf.agl-qt-ivi.in ${D}/opt/container/guests/agl-qt-ivi-demo/system.conf +} + +FILES:${PN} += " \ + /opt/container/conf/* \ + /opt/container/guests/agl-qt-ivi-demo/* \ + " diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-cluster-demo/cluster-demo.json b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-cluster-demo/cluster-demo.json new file mode 100644 index 00000000..64e76568 --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-cluster-demo/cluster-demo.json @@ -0,0 +1,111 @@ +{ + "name": "cluster-demo", + "role": "cluster", + "base": { + "autoboot": true, + "bootpriority": 1, + "rootfs": { + "path": "/opt/container/guests/cluster-demo/rootfs", + "filesystem": "ext4", + "mode": "rw", + "blockdev": [ + "/dev/mmcblk1p2", + "/dev/mmcblk1p2" + ] + }, + "lifecycle": { + "halt": "SIGRTMIN+3", + "reboot": "SIGTERM", + "timeout": 5000 + }, + "cap": { + "drop": "sys_module mac_admin mac_override sys_time", + "keep": "" + }, + "environment": [ + "HOME=/home/root" + ] + }, + "resource": [ + { + "type": "cgroup", + "object": "cpuset.cpus", + "value": "1" + } + ], + "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/pipewire/icipc-0", + "to": "var/icipc-0", + "fstype": "none", + "option": "bind,optional,create=file" + }, + { + "type": "directory", + "from": "/opt/container/guests/cluster-demo/system.conf", + "to": "etc/systemd/system.conf.d/10-environment.conf", + "fstype": "none", + "option": "bind,optional,create=file" + } + ] + }, + "device": { + "static": [ + { + "type": "devdir", + "from": "/dev/dri", + "to": "dev/dri", + "devnode": "/dev/dri/card0", + "optional": 0, + "wideallow": 1, + "exclusive": 0 + }, + { + "type": "devnode", + "from": "/dev/pvr_sync", + "to": "dev/pvr_sync", + "devnode": "/dev/pvr_sync", + "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/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-cluster-demo/system.conf.cluster-demo.in b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-cluster-demo/system.conf.cluster-demo.in new file mode 100644 index 00000000..28028997 --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-cluster-demo/system.conf.cluster-demo.in @@ -0,0 +1,8 @@ +[Manager] +DefaultEnvironment = DLM_RUNTIME_PATH=/var/display/drm-lease-manager +DefaultEnvironment = DRM_LEASE_DEVICE=card0-HDMI-A-2 +DefaultEnvironment = QT_QPA_PLATFORM=wayland +DefaultEnvironment = QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/plugins/ +DefaultEnvironment = QML_IMPORT_PATH=/usr/lib/qml/ +DefaultEnvironment = QML2_IMPORT_PATH=/usr/lib/qml/ +DefaultEnvironment = QT_WAYLAND_SHELL_INTEGRATION=xdg-shell diff --git a/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-cluster-demo_%.bbappend b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-cluster-demo_%.bbappend new file mode 100644 index 00000000..eca0cbc2 --- /dev/null +++ b/meta-agl-ic-container/dynamic-layers/meta-rcar-gen3/recipes-container/container-manager-config/cm-config-cluster-demo_%.bbappend @@ -0,0 +1,2 @@ +# Container Manager config for cluster demo on R-Car Gen3 +FILESEXTRAPATHS:prepend := "${THISDIR}/cm-config-cluster-demo:" diff --git a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo/agl-flutter-ivi-demo.json b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo/agl-flutter-ivi-demo.json new file mode 100644 index 00000000..4ae50e35 --- /dev/null +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo/agl-flutter-ivi-demo.json @@ -0,0 +1,3 @@ +{ + "name": "agl-flutter-ivi-demo" +} diff --git a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo/system.conf.agl-flutter-ivi-demo.in b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo/system.conf.agl-flutter-ivi-demo.in new file mode 100644 index 00000000..ee7a4103 --- /dev/null +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo/system.conf.agl-flutter-ivi-demo.in @@ -0,0 +1,4 @@ +[Manager] +DefaultEnvironment = DLM_RUNTIME_PATH=/var/display/drm-lease-manager +DefaultEnvironment = DRM_LEASE_DEVICE=card0-HDMI-A-1 +DefaultEnvironment = PIPEWIRE_RUNTIME_DIR=/var 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 new file mode 100644 index 00000000..a27e03b6 --- /dev/null +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo_1.0.bb @@ -0,0 +1,21 @@ +DESCRIPTION = "Container Manager config for meta-agl-demo based AGL flutter IVI demo" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9" + +SRC_URI = "file://agl-flutter-ivi-demo.json \ + file://system.conf.agl-flutter-ivi-demo.in \ + " + +inherit allarch + +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 -Dm644 ${WORKDIR}/system.conf.agl-flutter-ivi-demo.in ${D}/opt/container/guests/agl-flutter-ivi-demo/system.conf +} + +FILES:${PN} += " \ + /opt/container/conf/* \ + /opt/container/guests/agl-flutter-ivi-demo/* \ + " diff --git a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-html5-ivi-demo/agl-html5-ivi-demo.json b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-html5-ivi-demo/agl-html5-ivi-demo.json new file mode 100644 index 00000000..73e321be --- /dev/null +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-html5-ivi-demo/agl-html5-ivi-demo.json @@ -0,0 +1,3 @@ +{ + "name": "agl-html5-ivi-demo" +} diff --git a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-html5-ivi-demo/system.conf.agl-html5-ivi-demo.in b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-html5-ivi-demo/system.conf.agl-html5-ivi-demo.in new file mode 100644 index 00000000..ee7a4103 --- /dev/null +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-html5-ivi-demo/system.conf.agl-html5-ivi-demo.in @@ -0,0 +1,4 @@ +[Manager] +DefaultEnvironment = DLM_RUNTIME_PATH=/var/display/drm-lease-manager +DefaultEnvironment = DRM_LEASE_DEVICE=card0-HDMI-A-1 +DefaultEnvironment = PIPEWIRE_RUNTIME_DIR=/var diff --git a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-html5-ivi-demo_1.0.bb b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-html5-ivi-demo_1.0.bb new file mode 100644 index 00000000..169ea4e4 --- /dev/null +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-html5-ivi-demo_1.0.bb @@ -0,0 +1,21 @@ +DESCRIPTION = "Container Manager config for meta-agl-demo based AGL HTML5 IVI demo" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9" + +SRC_URI = "file://agl-html5-ivi-demo.json \ + file://system.conf.agl-html5-ivi-demo.in \ + " + +inherit allarch + +do_install:append() { + install -Dm644 ${WORKDIR}/agl-html5-ivi-demo.json ${D}/opt/container/conf/agl-html5-ivi-demo.json + install -d ${D}/opt/container/guests/agl-html5-ivi-demo/rootfs + install -d ${D}/opt/container/guests/agl-html5-ivi-demo/nv + install -Dm644 ${WORKDIR}/system.conf.agl-html5-ivi-demo.in ${D}/opt/container/guests/agl-html5-ivi-demo/system.conf +} + +FILES:${PN} += " \ + /opt/container/conf/* \ + /opt/container/guests/agl-html5-ivi-demo/* \ + " diff --git a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo/agl-momi-ivi-demo.json b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo/agl-momi-ivi-demo.json new file mode 100644 index 00000000..b9828b6f --- /dev/null +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo/agl-momi-ivi-demo.json @@ -0,0 +1,3 @@ +{ + "name": "agl-momi-ivi-demo" +} diff --git a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo/system.conf.agl-momi-ivi.in b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo/system.conf.agl-momi-ivi.in new file mode 100644 index 00000000..ee7a4103 --- /dev/null +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo/system.conf.agl-momi-ivi.in @@ -0,0 +1,4 @@ +[Manager] +DefaultEnvironment = DLM_RUNTIME_PATH=/var/display/drm-lease-manager +DefaultEnvironment = DRM_LEASE_DEVICE=card0-HDMI-A-1 +DefaultEnvironment = PIPEWIRE_RUNTIME_DIR=/var 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 new file mode 100644 index 00000000..1e10c18f --- /dev/null +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo_1.0.bb @@ -0,0 +1,21 @@ +DESCRIPTION = "Container Manager config for Momi IVI demo" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9" + +SRC_URI = "file://agl-momi-ivi-demo.json \ + file://system.conf.agl-momi-ivi.in \ + " + +inherit allarch + +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 -Dm644 ${WORKDIR}/system.conf.agl-momi-ivi.in ${D}/opt/container/guests/agl-momi-ivi-demo/system.conf +} + +FILES:${PN} += " \ + /opt/container/conf/* \ + /opt/container/guests/agl-momi-ivi-demo/* \ + " diff --git a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo/agl-qt-ivi-demo.json b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo/agl-qt-ivi-demo.json new file mode 100644 index 00000000..8063f45b --- /dev/null +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo/agl-qt-ivi-demo.json @@ -0,0 +1,3 @@ +{ + "name": "agl-qt-ivi-demo" +} diff --git a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo/system.conf.agl-qt-ivi.in b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo/system.conf.agl-qt-ivi.in new file mode 100644 index 00000000..ee7a4103 --- /dev/null +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo/system.conf.agl-qt-ivi.in @@ -0,0 +1,4 @@ +[Manager] +DefaultEnvironment = DLM_RUNTIME_PATH=/var/display/drm-lease-manager +DefaultEnvironment = DRM_LEASE_DEVICE=card0-HDMI-A-1 +DefaultEnvironment = PIPEWIRE_RUNTIME_DIR=/var 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 new file mode 100644 index 00000000..2dc84b8a --- /dev/null +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo_1.0.bb @@ -0,0 +1,21 @@ +DESCRIPTION = "Container Manager config for meta-agl-demo based AGL Qt IVI demo" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9" + +SRC_URI = "file://agl-qt-ivi-demo.json \ + file://system.conf.agl-qt-ivi.in \ + " + +inherit allarch + +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 -Dm644 ${WORKDIR}/system.conf.agl-qt-ivi.in ${D}/opt/container/guests/agl-qt-ivi-demo/system.conf +} + +FILES:${PN} += " \ + /opt/container/conf/* \ + /opt/container/guests/agl-qt-ivi-demo/* \ + " diff --git a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-cluster-demo/cluster-demo.json b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-cluster-demo/cluster-demo.json new file mode 100644 index 00000000..fc173b86 --- /dev/null +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-cluster-demo/cluster-demo.json @@ -0,0 +1,3 @@ +{ + "name": "cluster-demo" +} diff --git a/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-cluster-demo/system.conf.cluster-demo.in b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-cluster-demo/system.conf.cluster-demo.in new file mode 100644 index 00000000..28028997 --- /dev/null +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-cluster-demo/system.conf.cluster-demo.in @@ -0,0 +1,8 @@ +[Manager] +DefaultEnvironment = DLM_RUNTIME_PATH=/var/display/drm-lease-manager +DefaultEnvironment = DRM_LEASE_DEVICE=card0-HDMI-A-2 +DefaultEnvironment = QT_QPA_PLATFORM=wayland +DefaultEnvironment = QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/plugins/ +DefaultEnvironment = QML_IMPORT_PATH=/usr/lib/qml/ +DefaultEnvironment = QML2_IMPORT_PATH=/usr/lib/qml/ +DefaultEnvironment = QT_WAYLAND_SHELL_INTEGRATION=xdg-shell diff --git a/meta-agl-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 new file mode 100644 index 00000000..4417974d --- /dev/null +++ b/meta-agl-ic-container/recipes-container/container-manager-config/cm-config-cluster-demo_1.0.bb @@ -0,0 +1,23 @@ +DESCRIPTION = "Container Manager config for cluster demo" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9" + + +SRC_URI = "file://cluster-demo.json \ + file://system.conf.cluster-demo.in \ + " + +inherit allarch + +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 -Dm644 ${WORKDIR}/system.conf.cluster-demo.in ${D}/opt/container/guests/cluster-demo/system.conf +} + +FILES:${PN} += " \ + /opt/container/conf/* \ + /opt/container/guests/cluster-demo/* \ + " +