From 5409f17b5ec13f7b41c60845ad902159f7d03ab6 Mon Sep 17 00:00:00 2001 From: Naoto Yamaguchi Date: Fri, 5 May 2023 11:10:46 +0900 Subject: [PATCH] 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 --- .../conf/include/drm-lease-multi-display.inc | 1 + .../agl-flutter-ivi-demo.json | 173 ++++++++++++++++++++ .../cm-config-agl-flutter-ivi-demo_%.bbappend | 2 + .../agl-html5-ivi-demo.json | 174 +++++++++++++++++++++ .../cm-config-agl-html5-ivi-demo_%.bbappend | 2 + .../agl-momi-ivi-demo.json | 174 +++++++++++++++++++++ .../cm-config-agl-momi-ivi-demo_%.bbappend | 2 + .../cm-config-agl-qt-ivi-demo/agl-qt-ivi-demo.json | 174 +++++++++++++++++++++ .../cm-config-agl-qt-ivi-demo_%.bbappend | 2 + .../cm-config-cluster-demo/cluster-demo.json | 102 ++++++++++++ .../cm-config-cluster-demo_%.bbappend | 7 + .../lxc-config-cluster-demo_1.0.bbappend | 2 +- .../lxc-config/lxc-config-ivi-demo_1.0.bbappend | 2 +- .../recipes-container/lxc-config/multi-display.inc | 1 - .../agl-instrument-cluster-container-demo.bbappend | 2 + .../wic/agl-ic-container-bootpart-uuid.wks | 11 ++ 16 files changed, 828 insertions(+), 3 deletions(-) create mode 100644 meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo/agl-flutter-ivi-demo.json create mode 100644 meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-flutter-ivi-demo_%.bbappend create mode 100644 meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-html5-ivi-demo/agl-html5-ivi-demo.json create mode 100644 meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-html5-ivi-demo_%.bbappend create mode 100644 meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo/agl-momi-ivi-demo.json create mode 100644 meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-momi-ivi-demo_%.bbappend create mode 100644 meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo/agl-qt-ivi-demo.json create mode 100644 meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-agl-qt-ivi-demo_%.bbappend create mode 100644 meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-cluster-demo/cluster-demo.json create mode 100644 meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/container-manager-config/cm-config-cluster-demo_%.bbappend delete mode 100644 meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-container/lxc-config/multi-display.inc create mode 100644 meta-agl-ic-container/dynamic-layers/meta-raspberrypi/recipes-platform/images/agl-instrument-cluster-container-demo.bbappend create mode 100644 meta-agl-ic-container/wic/agl-ic-container-bootpart-uuid.wks 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 -- 2.16.6