summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2023-11-02 16:13:39 -0400
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2023-11-05 17:37:35 +0000
commit43c2dac50d6c8a38b1d8a89a86d146ea9539140d (patch)
treefa56f76d185bc22128a4c5be02ccc1b7d3d8ca8d
parent64889c4c525c4c66fb74dd703a1cbc0375bc405d (diff)
Add initial DRM lease test images
Add guest and host image as well as associated configuration recipes for simple DRM lease testing. The agl-host-image-drm-least-test image has two guests that each run Weston + desktop-shell with a different background color. A known issue at the moment is that networking is not functional in the guests, this will be investigated further. Bug-AGL: SPEC-4955 Change-Id: Ib69e627bb251180c2d7a1175de53d2fb1561aa61 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-rw-r--r--meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/basic.in9
-rw-r--r--meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/environment.in8
-rw-r--r--meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/misc.in3
-rw-r--r--meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/mount.in17
-rw-r--r--meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/network.in5
-rw-r--r--meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/system.conf.drm-lease-test-cluster.in2
-rw-r--r--meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster_1.0.bb7
-rw-r--r--meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/basic.in9
-rw-r--r--meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/environment.in8
-rw-r--r--meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/misc.in3
-rw-r--r--meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/mount.in17
-rw-r--r--meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/network.in5
-rw-r--r--meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/system.conf.drm-lease-test-ivi.in2
-rw-r--r--meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi_1.0.bb7
-rw-r--r--meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-drm-lease-test.bb43
-rw-r--r--meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-drm-lease-test/weston.ini.cluster26
-rw-r--r--meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-drm-lease-test/weston.ini.ivi26
-rw-r--r--meta-agl-ic-container/recipes-platform/images/agl-host-image-drm-lease-test.bb27
-rw-r--r--meta-agl-ic-container/recipes-platform/images/guest-image-drm-lease-test-cluster.bb13
-rw-r--r--meta-agl-ic-container/recipes-platform/images/guest-image-drm-lease-test-ivi.bb13
20 files changed, 250 insertions, 0 deletions
diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/basic.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/basic.in
new file mode 100644
index 00000000..d4a490ab
--- /dev/null
+++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/basic.in
@@ -0,0 +1,9 @@
+# lxc basic setting
+lxc.rootfs.path = dir:/var/lib/machines/drm-lease-test-cluster
+lxc.signal.halt = SIGRTMIN+3
+lxc.signal.reboot = SIGTERM
+lxc.uts.name = "cluster"
+lxc.tty.max = 1
+lxc.pty.max = 1
+lxc.cap.drop = sys_module mac_admin mac_override sys_time
+
diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/environment.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/environment.in
new file mode 100644
index 00000000..632252d5
--- /dev/null
+++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/environment.in
@@ -0,0 +1,8 @@
+# lxc environment variable setting
+lxc.environment = QT_QPA_PLATFORM=wayland
+lxc.environment = QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/plugins/
+lxc.environment = QML_IMPORT_PATH=/usr/lib/qml/
+lxc.environment = QML2_IMPORT_PATH=/usr/lib/qml/
+lxc.environment = QT_WAYLAND_SHELL_INTEGRATION=xdg-shell
+lxc.environment = PIPEWIRE_RUNTIME_DIR=/var
+
diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/misc.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/misc.in
new file mode 100644
index 00000000..9b4f4883
--- /dev/null
+++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/misc.in
@@ -0,0 +1,3 @@
+# lxc misc setting
+lxc.start.auto = @LXC_AUTO_START@
+
diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/mount.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/mount.in
new file mode 100644
index 00000000..0468866d
--- /dev/null
+++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/mount.in
@@ -0,0 +1,17 @@
+# lxc mount setting
+lxc.mount.entry = /var/lib/lxc/drm-lease-test-cluster/system.conf etc/systemd/system.conf.d/10-environment.conf none bind,optional,create=file
+
+lxc.mount.auto = cgroup:mixed proc:mixed sys:mixed
+lxc.mount.entry = shm /dev/shm tmpfs defaults 0 0
+lxc.mount.entry = /sys/kernel/security sys/kernel/security none ro,bind,optional 0 0
+lxc.mount.entry = tmpfs run tmpfs defaults
+lxc.mount.entry = /run/udev/data run/udev/data none ro,bind,optional,create=dir
+
+lxc.cgroup.devices.allow = c 226:* rwm
+lxc.mount.entry = /dev/dri dev/dri none bind,optional,create=dir
+
+lxc.mount.entry = /run/drm-lease-manager/lease-ivi var/display/drm-lease-manager/lease none bind,create=file
+
+lxc.cgroup.devices.allow = c 13:* rwm
+lxc.mount.entry = /dev/input dev/input none bind,optional,create=dir
+lxc.mount.entry = /run/pipewire/pipewire-0 var/pipewire-0 none bind,optional,create=file
diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/network.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/network.in
new file mode 100644
index 00000000..87fff1de
--- /dev/null
+++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/network.in
@@ -0,0 +1,5 @@
+# lxc network setting
+lxc.net.0.type = veth
+lxc.net.0.link = lxcbr0
+lxc.net.0.flags = up
+lxc.net.0.hwaddr = 00:16:3e:69:87:a5
diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/system.conf.drm-lease-test-cluster.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/system.conf.drm-lease-test-cluster.in
new file mode 100644
index 00000000..f496c589
--- /dev/null
+++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster/system.conf.drm-lease-test-cluster.in
@@ -0,0 +1,2 @@
+[Manager]
+#DefaultEnvironment =
diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster_1.0.bb b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster_1.0.bb
new file mode 100644
index 00000000..a30505e9
--- /dev/null
+++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-cluster_1.0.bb
@@ -0,0 +1,7 @@
+DESCRIPTION = "AGL cluster demo container LXC config"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9"
+
+inherit lxc-config
+
+LXC_AUTO_START ??= "1"
diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/basic.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/basic.in
new file mode 100644
index 00000000..186ab509
--- /dev/null
+++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/basic.in
@@ -0,0 +1,9 @@
+# lxc basic setting
+lxc.rootfs.path = dir:/var/lib/machines/drm-lease-test-ivi
+lxc.signal.halt = SIGRTMIN+3
+lxc.signal.reboot = SIGTERM
+lxc.uts.name = "ivi"
+lxc.tty.max = 1
+lxc.pty.max = 1
+lxc.cap.drop = sys_module mac_admin mac_override sys_time
+
diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/environment.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/environment.in
new file mode 100644
index 00000000..632252d5
--- /dev/null
+++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/environment.in
@@ -0,0 +1,8 @@
+# lxc environment variable setting
+lxc.environment = QT_QPA_PLATFORM=wayland
+lxc.environment = QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/plugins/
+lxc.environment = QML_IMPORT_PATH=/usr/lib/qml/
+lxc.environment = QML2_IMPORT_PATH=/usr/lib/qml/
+lxc.environment = QT_WAYLAND_SHELL_INTEGRATION=xdg-shell
+lxc.environment = PIPEWIRE_RUNTIME_DIR=/var
+
diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/misc.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/misc.in
new file mode 100644
index 00000000..9b4f4883
--- /dev/null
+++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/misc.in
@@ -0,0 +1,3 @@
+# lxc misc setting
+lxc.start.auto = @LXC_AUTO_START@
+
diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/mount.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/mount.in
new file mode 100644
index 00000000..2026c577
--- /dev/null
+++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/mount.in
@@ -0,0 +1,17 @@
+# lxc mount setting
+lxc.mount.entry = /var/lib/lxc/drm-lease-test-ivi/system.conf etc/systemd/system.conf.d/10-environment.conf none bind,optional,create=file
+
+lxc.mount.auto = cgroup:mixed proc:mixed sys:mixed
+lxc.mount.entry = shm /dev/shm tmpfs defaults 0 0
+lxc.mount.entry = /sys/kernel/security sys/kernel/security none ro,bind,optional 0 0
+lxc.mount.entry = tmpfs run tmpfs defaults
+lxc.mount.entry = /run/udev/data run/udev/data none ro,bind,optional,create=dir
+
+lxc.cgroup.devices.allow = c 226:* rwm
+lxc.mount.entry = /dev/dri dev/dri none bind,optional,create=dir
+
+lxc.mount.entry = /run/drm-lease-manager/lease-ivi var/display/drm-lease-manager/lease none bind,create=file
+
+lxc.cgroup.devices.allow = c 13:* rwm
+lxc.mount.entry = /dev/input dev/input none bind,optional,create=dir
+lxc.mount.entry = /run/pipewire/pipewire-0 var/pipewire-0 none bind,optional,create=file
diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/network.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/network.in
new file mode 100644
index 00000000..6545b1ad
--- /dev/null
+++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/network.in
@@ -0,0 +1,5 @@
+# lxc network setting
+lxc.net.0.type = veth
+lxc.net.0.link = lxcbr0
+lxc.net.0.flags = up
+lxc.net.0.hwaddr = 00:16:3e:69:87:a4
diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/system.conf.drm-lease-test-ivi.in b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/system.conf.drm-lease-test-ivi.in
new file mode 100644
index 00000000..f496c589
--- /dev/null
+++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi/system.conf.drm-lease-test-ivi.in
@@ -0,0 +1,2 @@
+[Manager]
+#DefaultEnvironment =
diff --git a/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi_1.0.bb b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi_1.0.bb
new file mode 100644
index 00000000..a30505e9
--- /dev/null
+++ b/meta-agl-ic-container/recipes-container/lxc-config/lxc-config-drm-lease-test-ivi_1.0.bb
@@ -0,0 +1,7 @@
+DESCRIPTION = "AGL cluster demo container LXC config"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9"
+
+inherit lxc-config
+
+LXC_AUTO_START ??= "1"
diff --git a/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-drm-lease-test.bb b/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-drm-lease-test.bb
new file mode 100644
index 00000000..15b44ed2
--- /dev/null
+++ b/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-drm-lease-test.bb
@@ -0,0 +1,43 @@
+SUMMARY = "Configuration files for the Weston compositors for DRM lease testing"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+SRC_URI = " \
+ file://weston.ini.ivi \
+ file://weston.ini.cluster \
+"
+
+S = "${WORKDIR}"
+
+inherit allarch update-alternatives
+
+# On-target weston.ini directory
+weston_ini_dir = "${sysconfdir}/xdg/weston"
+
+do_install() {
+ install -d ${D}${weston_ini_dir}
+ install -m 0644 ${WORKDIR}/weston.ini.ivi ${D}${weston_ini_dir}/
+ install -m 0644 ${WORKDIR}/weston.ini.cluster ${D}${weston_ini_dir}/
+}
+
+ALTERNATIVE_LINK_NAME[weston.ini] = "${weston_ini_dir}/weston.ini"
+
+RDEPENDS:${PN} = "${BPN}-ivi"
+ALLOW_EMPTY:${PN} = "1"
+
+PACKAGE_BEFORE_PN += "${PN}-ivi"
+
+FILES:${PN}-ivi = "${weston_ini_dir}/weston.ini.ivi"
+
+RPROVIDES:${PN}-ivi = "weston-ini"
+ALTERNATIVE:${PN}-ivi = "weston.ini"
+ALTERNATIVE_TARGET_${PN}-ivi = "${weston_ini_dir}/weston.ini.ivi"
+
+PACKAGE_BEFORE_PN += "${PN}-cluster"
+
+FILES:${PN}-cluster = "${weston_ini_dir}/weston.ini.cluster"
+
+RPROVIDES:${PN}-cluster = "weston-ini"
+RCONFLICTS:${PN}-cluster = "${PN}-ivi"
+ALTERNATIVE:${PN}-cluster = "weston.ini"
+ALTERNATIVE_TARGET_${PN}-cluster = "${weston_ini_dir}/weston.ini.cluster"
diff --git a/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-drm-lease-test/weston.ini.cluster b/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-drm-lease-test/weston.ini.cluster
new file mode 100644
index 00000000..13347577
--- /dev/null
+++ b/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-drm-lease-test/weston.ini.cluster
@@ -0,0 +1,26 @@
+[core]
+backend=drm-backend.so
+require-input=false
+idle-time=0
+modules=systemd-notify.so
+
+[shell]
+locking=false
+panel-position=none
+background-color=0xff00ff00
+
+[output]
+name=Virtual-1
+mode=1920x1080
+
+[output]
+name=Virtual-2
+mode=1920x1080
+
+[output]
+name=HDMI-A-1
+mode=1920x1080
+
+[output]
+name=HDMI-A-2
+mode=1920x1080
diff --git a/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-drm-lease-test/weston.ini.ivi b/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-drm-lease-test/weston.ini.ivi
new file mode 100644
index 00000000..24d4ee29
--- /dev/null
+++ b/meta-agl-ic-container/recipes-graphics/wayland/weston-ini-conf-drm-lease-test/weston.ini.ivi
@@ -0,0 +1,26 @@
+[core]
+backend=drm-backend.so
+require-input=false
+idle-time=0
+modules=systemd-notify.so
+
+[shell]
+locking=false
+panel-position=none
+background-color=0xffff0000
+
+[output]
+name=Virtual-1
+mode=1920x1080
+
+[output]
+name=Virtual-2
+mode=1920x1080
+
+[output]
+name=HDMI-A-1
+mode=1920x1080
+
+[output]
+name=HDMI-A-2
+mode=1920x1080
diff --git a/meta-agl-ic-container/recipes-platform/images/agl-host-image-drm-lease-test.bb b/meta-agl-ic-container/recipes-platform/images/agl-host-image-drm-lease-test.bb
new file mode 100644
index 00000000..09b6ddac
--- /dev/null
+++ b/meta-agl-ic-container/recipes-platform/images/agl-host-image-drm-lease-test.bb
@@ -0,0 +1,27 @@
+SUMMARY = "DRM Lease LXC test host image"
+LICENSE = "MIT"
+
+require lxc-host-image-minimal.bb
+require recipes-platform/images/agl-lxc-install-single-image.inc
+require recipes-platform/images/agl-lxc-autostart.inc
+
+CONTAINER_IMAGES ?= "agl-container-ivi:guest-image-drm-lease-test-ivi \
+ agl-container-cluster:guest-image-drm-lease-test-cluster \
+ "
+
+IMAGE_INSTALL += " \
+ kernel-modules \
+"
+
+# packages required for network bridge settings via lxc-net
+IMAGE_INSTALL += " \
+ lxc-networking \
+ iptables-modules \
+ dnsmasq \
+ systemd-netif-config \
+ kernel-module-xt-addrtype \
+ kernel-module-xt-multiport \
+"
+
+# Under the this line, shall describe machine specific package.
+IMAGE_INSTALL:append:rcar-gen3 = " kernel-module-gles gles-user-module-firmware"
diff --git a/meta-agl-ic-container/recipes-platform/images/guest-image-drm-lease-test-cluster.bb b/meta-agl-ic-container/recipes-platform/images/guest-image-drm-lease-test-cluster.bb
new file mode 100644
index 00000000..13563da8
--- /dev/null
+++ b/meta-agl-ic-container/recipes-platform/images/guest-image-drm-lease-test-cluster.bb
@@ -0,0 +1,13 @@
+SUMMARY = "DRM Lease LXC test guest image"
+LICENSE = "MIT"
+
+require guest-image-minimal.bb
+
+IMAGE_INSTALL += " \
+ systemd-netif-config \
+ weston \
+ weston-init-guest \
+ weston-ini-conf-drm-lease-test-cluster \
+"
+
+IMAGE_INSTALL:append:raspberrypi4 = " mesa-megadriver"
diff --git a/meta-agl-ic-container/recipes-platform/images/guest-image-drm-lease-test-ivi.bb b/meta-agl-ic-container/recipes-platform/images/guest-image-drm-lease-test-ivi.bb
new file mode 100644
index 00000000..be8fcbff
--- /dev/null
+++ b/meta-agl-ic-container/recipes-platform/images/guest-image-drm-lease-test-ivi.bb
@@ -0,0 +1,13 @@
+SUMMARY = "DRM Lease LXC test guest image"
+LICENSE = "MIT"
+
+require guest-image-minimal.bb
+
+IMAGE_INSTALL += " \
+ systemd-netif-config \
+ weston \
+ weston-init-guest \
+ weston-ini-conf-drm-lease-test-ivi \
+"
+
+IMAGE_INSTALL:append:raspberrypi4 = " mesa-megadriver"