aboutsummaryrefslogtreecommitdiffstats
path: root/meta-agl-ic-container
diff options
context:
space:
mode:
authorNaoto Yamaguchi <naoto.yamaguchi@aisin.co.jp>2023-05-05 11:10:46 +0900
committerNaoto Yamaguchi <naoto.yamaguchi@aisin.co.jp>2023-05-09 08:13:10 +0900
commit5409f17b5ec13f7b41c60845ad902159f7d03ab6 (patch)
tree99647923dbce5669324a4c5d675edd57234ac934 /meta-agl-ic-container
parent84a2fd1c5363b66ae898c1377db0b5ad17c59fcf (diff)
Update raspberrypi4 support for AGL IC container integration
The raspberrypi4 and R-CarH3-refhw board is main supporting board for AGL IC container integration. The raspberrypi4 is require few patches. This patch update raspberrypi4 support for AGL IC container integration. Bug-AGL: SPEC-4777 Change-Id: I719e01aa8d603eced73e99fc54652b89d2d612b9 Signed-off-by: Naoto Yamaguchi <naoto.yamaguchi@aisin.co.jp>
Diffstat (limited to 'meta-agl-ic-container')
-rw-r--r--meta-agl-ic-container/conf/include/drm-lease-multi-display.inc1
-rw-r--r--meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo/agl-flutter-ivi-demo.json173
-rw-r--r--meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo_%.bbappend2
-rw-r--r--meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-html5-ivi-demo/agl-html5-ivi-demo.json174
-rw-r--r--meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-html5-ivi-demo_%.bbappend2
-rw-r--r--meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo/agl-momi-ivi-demo.json174
-rw-r--r--meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo_%.bbappend2
-rw-r--r--meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo/agl-qt-ivi-demo.json174
-rw-r--r--meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo_%.bbappend2
-rw-r--r--meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-cluster-demo/cluster-demo.json102
-rw-r--r--meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-cluster-demo_%.bbappend7
-rw-r--r--meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/lxc-config/lxc-config-cluster-demo_1.0.bbappend2
-rw-r--r--meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/lxc-config/lxc-config-ivi-demo_1.0.bbappend2
-rw-r--r--meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/lxc-config/multi-display.inc1
-rw-r--r--meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-platform/images/agl-instrument-cluster-container-demo.bbappend2
-rw-r--r--meta-agl-ic-container/wic/agl-ic-container-bootpart-uuid.wks11
16 files changed, 828 insertions, 3 deletions
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
index 96a3e29e..d07d6a5d 100644
--- a/meta-agl-ic-container/conf/include/drm-lease-multi-display.inc
+++ b/meta-agl-ic-container/conf/include/drm-lease-multi-display.inc
@@ -1,3 +1,4 @@
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)}"
diff --git a/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo/agl-flutter-ivi-demo.json b/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo/agl-flutter-ivi-demo.json
new file mode 100644
index 00000000..f97d2c90
--- /dev/null
+++ b/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo/agl-flutter-ivi-demo.json
@@ -0,0 +1,173 @@
+{
+ "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/mmcblk0p7",
+ "/dev/mmcblk0p7"
+ ]
+ },
+ "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
+ }
+ ],
+ "dynamic": [
+ {
+ "devpath": "/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/",
+ "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/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/",
+ "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-raspberrypi/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo_%.bbappend b/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo_%.bbappend
new file mode 100644
index 00000000..bd73278b
--- /dev/null
+++ b/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo_%.bbappend
@@ -0,0 +1,2 @@
+# Container Manager config for AGL flutter IVI demo on R-Car Gen3
+FILESEXTRAPATHS:prepend := "${THISDIR}/cm-config-agl-flutter-ivi-demo:"
diff --git a/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-html5-ivi-demo/agl-html5-ivi-demo.json b/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-html5-ivi-demo/agl-html5-ivi-demo.json
new file mode 100644
index 00000000..34033ecd
--- /dev/null
+++ b/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-html5-ivi-demo/agl-html5-ivi-demo.json
@@ -0,0 +1,174 @@
+{
+ "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/mmcblk0p8",
+ "/dev/mmcblk0p8"
+ ]
+ },
+ "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
+ }
+ ],
+ "dynamic": [
+ {
+ "devpath": "/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/",
+ "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/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/",
+ "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-raspberrypi/recipes-container/container-manager-config/cm-config-agl-html5-ivi-demo_%.bbappend b/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-html5-ivi-demo_%.bbappend
new file mode 100644
index 00000000..e810a7f0
--- /dev/null
+++ b/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-html5-ivi-demo_%.bbappend
@@ -0,0 +1,2 @@
+# Container Manager config for AGL HTML5 IVI demo on R-Car Gen3
+FILESEXTRAPATHS:prepend := "${THISDIR}/cm-config-agl-html5-ivi-demo:"
diff --git a/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo/agl-momi-ivi-demo.json b/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo/agl-momi-ivi-demo.json
new file mode 100644
index 00000000..e5334673
--- /dev/null
+++ b/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo/agl-momi-ivi-demo.json
@@ -0,0 +1,174 @@
+{
+ "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/mmcblk0p5",
+ "/dev/mmcblk0p5"
+ ]
+ },
+ "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
+ }
+ ],
+ "dynamic": [
+ {
+ "devpath": "/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/",
+ "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/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/",
+ "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-raspberrypi/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo_%.bbappend b/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/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-raspberrypi/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-raspberrypi/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo/agl-qt-ivi-demo.json b/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo/agl-qt-ivi-demo.json
new file mode 100644
index 00000000..0e77589c
--- /dev/null
+++ b/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo/agl-qt-ivi-demo.json
@@ -0,0 +1,174 @@
+{
+ "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/mmcblk0p6",
+ "/dev/mmcblk0p6"
+ ]
+ },
+ "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
+ }
+ ],
+ "dynamic": [
+ {
+ "devpath": "/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/",
+ "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/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/",
+ "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-raspberrypi/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo_%.bbappend b/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo_%.bbappend
new file mode 100644
index 00000000..9c0ff8c2
--- /dev/null
+++ b/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo_%.bbappend
@@ -0,0 +1,2 @@
+# Container Manager config for AGL Qt IVI demo on R-Car Gen3
+FILESEXTRAPATHS:prepend := "${THISDIR}/cm-config-agl-qt-ivi-demo:"
diff --git a/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-cluster-demo/cluster-demo.json b/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-cluster-demo/cluster-demo.json
new file mode 100644
index 00000000..6f1d3547
--- /dev/null
+++ b/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-cluster-demo/cluster-demo.json
@@ -0,0 +1,102 @@
+{
+ "name": "cluster-demo",
+ "role": "cluster",
+ "base": {
+ "autoboot": true,
+ "bootpriority": 1,
+ "rootfs": {
+ "path": "/opt/container/guests/cluster-demo/rootfs",
+ "filesystem": "ext4",
+ "mode": "rw",
+ "blockdev": [
+ "/dev/mmcblk0p3",
+ "/dev/mmcblk0p3"
+ ]
+ },
+ "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
+ }
+ ]
+ },
+ "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-raspberrypi/recipes-container/container-manager-config/cm-config-cluster-demo_%.bbappend b/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-cluster-demo_%.bbappend
new file mode 100644
index 00000000..0a487ad8
--- /dev/null
+++ b/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-cluster-demo_%.bbappend
@@ -0,0 +1,7 @@
+# Container Manager config for cluster demo on R-Car Gen3
+FILESEXTRAPATHS:prepend := "${THISDIR}/cm-config-cluster-demo:"
+
+require conf/include/drm-lease-multi-display.inc
+
+# 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)}"
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
index 92888ba8..07fc0da3 100644
--- 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
@@ -1,4 +1,4 @@
-require multi-display.inc
+require conf/include/drm-lease-multi-display.inc
FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:"
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
index f58fe2cb..f3a0e60d 100644
--- 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
@@ -1,4 +1,4 @@
-require multi-display.inc
+require conf/include/drm-lease-multi-display.inc
FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:"
diff --git a/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/lxc-config/multi-display.inc b/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/lxc-config/multi-display.inc
deleted file mode 100644
index f6856db8..00000000
--- a/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/lxc-config/multi-display.inc
+++ /dev/null
@@ -1 +0,0 @@
-HAS_MULTI_DISPLAY ?= "1"
diff --git a/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-platform/images/agl-instrument-cluster-container-demo.bbappend b/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-platform/images/agl-instrument-cluster-container-demo.bbappend
new file mode 100644
index 00000000..68505c09
--- /dev/null
+++ b/meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-platform/images/agl-instrument-cluster-container-demo.bbappend
@@ -0,0 +1,2 @@
+WKS_FILES:remove = "agl-ic-container-noloader.wks"
+WKS_FILES:prepend = "agl-ic-container-bootpart-uuid.wks "
diff --git a/meta-agl-ic-container/wic/agl-ic-container-bootpart-uuid.wks b/meta-agl-ic-container/wic/agl-ic-container-bootpart-uuid.wks
new file mode 100644
index 00000000..b56e80e4
--- /dev/null
+++ b/meta-agl-ic-container/wic/agl-ic-container-bootpart-uuid.wks
@@ -0,0 +1,11 @@
+# short-description: Create SD card image with a boot partition
+# long-description: Creates a partitioned SD card image. Boot files
+# are located in the first vfat partition.
+
+part /boot --source bootimg-partition --fstype=vfat --label boot --use-uuid --active --align 4 --size 16
+part / --source rootfs --fstype=ext4 --label host --align 4096 --size 1024
+part --source rawcopy --sourceparams="file=guest-image-cluster-demo.ext4"
+part --source rawcopy --sourceparams="file=guest-image-ivi-demo.ext4"
+part --fstype=ext4 --label agl-qt-ivi --align 4096 --size 3072
+part --fstype=ext4 --label agl-flutter-ivi --align 4096 --size 3072
+part --fstype=ext4 --label agl-html5-ivi --align 4096 --size 3072