summaryrefslogtreecommitdiffstats
path: root/meta-uhmi/meta-distributed-display-fw/recipes-core
diff options
context:
space:
mode:
authorKenta <murakami.kenta002@jp.panasonic.com>2024-10-03 10:44:19 +0900
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2024-10-16 11:48:48 +0000
commit8d4dc8e6ef2cb04e9015a32e0329a3a58685fc62 (patch)
treeaa38bb0e45b70f18d72335c88c95d63ca2d5af33 /meta-uhmi/meta-distributed-display-fw/recipes-core
parentf86532f8ac81d1c7dae63ed242f54473aa1b1dda (diff)
Unified HMI: Add distributed display framework
Add the distributed display framework to control the layouts of the apps remotely rendered with remote-virtio-gpu (RVGPU). As meta-distributed-display-fw is added to meta-uhmi, change feature name from agl-rvgpu to agl-uhmi. Details of the contents of meta-distributed-display-fw - ucl-tools: unified clustering tools, launch applications for multiple platforms and manage execution order and survival. - ula-tools: unified layout tools, application layout for virtual displays on virtual screen (mapped from physical displays). Bug-AGL: SPEC-5254 Change-Id: I9dbe693534cf513ebf9f4b5b43728c67243f3d8b Signed-off-by: Kenta <murakami.kenta002@jp.panasonic.com>
Diffstat (limited to 'meta-uhmi/meta-distributed-display-fw/recipes-core')
-rw-r--r--meta-uhmi/meta-distributed-display-fw/recipes-core/ucl-tools/files/ucl-launcher.service13
-rw-r--r--meta-uhmi/meta-distributed-display-fw/recipes-core/ucl-tools/ucl-tools_git.bb46
-rw-r--r--meta-uhmi/meta-distributed-display-fw/recipes-core/ula-tools/files/ula-node.service15
-rw-r--r--meta-uhmi/meta-distributed-display-fw/recipes-core/ula-tools/files/virtual-screen-def.json25
-rw-r--r--meta-uhmi/meta-distributed-display-fw/recipes-core/ula-tools/ula-tools_git.bb72
5 files changed, 171 insertions, 0 deletions
diff --git a/meta-uhmi/meta-distributed-display-fw/recipes-core/ucl-tools/files/ucl-launcher.service b/meta-uhmi/meta-distributed-display-fw/recipes-core/ucl-tools/files/ucl-launcher.service
new file mode 100644
index 00000000..37f289e6
--- /dev/null
+++ b/meta-uhmi/meta-distributed-display-fw/recipes-core/ucl-tools/files/ucl-launcher.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=ucl-launcher
+
+[Service]
+Type=idle
+ExecStart=/usr/bin/ucl-launcher
+KillSignal=SIGTERM
+TimeoutStopSec=10
+Restart=always
+RestartSec=2
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-uhmi/meta-distributed-display-fw/recipes-core/ucl-tools/ucl-tools_git.bb b/meta-uhmi/meta-distributed-display-fw/recipes-core/ucl-tools/ucl-tools_git.bb
new file mode 100644
index 00000000..cc26678b
--- /dev/null
+++ b/meta-uhmi/meta-distributed-display-fw/recipes-core/ucl-tools/ucl-tools_git.bb
@@ -0,0 +1,46 @@
+SUMMARY = "Unified HMI Clustering Tools"
+SECTION = "graphics"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://src/ucl-tools/LICENSE.md;md5=e789951aab02a3028d2e58b90fc933ba"
+
+FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
+
+PN="ucl-tools"
+PROVIDES += "ucl-tools"
+
+SRCREV = "80e83132834b5ab62875bc294332bd00cd559d5d"
+BRANCH ?= "main"
+SRC_URI = " \
+ git://github.com/unified-hmi/ucl-tools.git;protocol=https;branch=${BRANCH} \
+"
+PV = "0.0+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+export GO111MODULE="auto"
+
+GO_IMPORT = "ucl-tools"
+GO_INSTALL = " ${GO_IMPORT}/cmd/ucl-launcher ${GO_IMPORT}/cmd/ucl-distrib-com ${GO_IMPORT}/cmd/ucl-consistency-keeper ${GO_IMPORT}/cmd/ucl-ncount-master ${GO_IMPORT}/cmd/ucl-ncount-worker ${GO_IMPORT}/cmd/ucl-nkeep-master ${GO_IMPORT}/cmd/ucl-nkeep-worker ${GO_IMPORT}/cmd/ucl-timing-wrapper ${GO_IMPORT}/cmd/ucl-virtio-gpu-wl-send ${GO_IMPORT}/cmd/ucl-virtio-gpu-wl-recv"
+
+inherit go
+
+RDEPENDS:${PN} = "bash"
+RDEPENDS:${PN}-dev = "bash"
+
+inherit systemd
+SRC_URI += " file://ucl-launcher.service"
+
+REQUIRED_DISTRO_FEATURES = "systemd"
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE:${PN} = "ucl-launcher.service"
+SYSTEMD_AUTO_ENABLE:${PN} = "enable"
+FILES:${PN} += " \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_system_unitdir}/${SYSTEMD_SERVICE}', '', d)} \
+ "
+do_install:append() {
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -d ${D}${systemd_system_unitdir}
+ install -m 644 ${WORKDIR}/*.service ${D}/${systemd_system_unitdir}
+ fi
+}
diff --git a/meta-uhmi/meta-distributed-display-fw/recipes-core/ula-tools/files/ula-node.service b/meta-uhmi/meta-distributed-display-fw/recipes-core/ula-tools/files/ula-node.service
new file mode 100644
index 00000000..edf69f3d
--- /dev/null
+++ b/meta-uhmi/meta-distributed-display-fw/recipes-core/ula-tools/files/ula-node.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=ula-node
+Requires=uhmi-ivi-wm.service
+After=uhmi-ivi-wm.service
+
+[Service]
+Type=idle
+ExecStart=/usr/bin/ula-node
+KillSignal=SIGTERM
+TimeoutStopSec=10
+Restart=always
+RestartSec=2
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-uhmi/meta-distributed-display-fw/recipes-core/ula-tools/files/virtual-screen-def.json b/meta-uhmi/meta-distributed-display-fw/recipes-core/ula-tools/files/virtual-screen-def.json
new file mode 100644
index 00000000..2917ca87
--- /dev/null
+++ b/meta-uhmi/meta-distributed-display-fw/recipes-core/ula-tools/files/virtual-screen-def.json
@@ -0,0 +1,25 @@
+{
+ "virtual_screen_2d" : {
+ "size" : {"virtual_w" : 3840, "virtual_h": 1080},
+ "virtual_displays" : [
+ {"vdisplay_id":0, "disp_name": "AGL_SCREEN0", "virtual_x":0, "virtual_y":0, "virtual_w":1920, "virtual_h":1080},
+ {"vdisplay_id":1, "disp_name": "AGL_SCREEN1", "virtual_x":1920, "virtual_y":0, "virtual_w":1920, "virtual_h":1080}
+ ]
+ },
+ "virtual_screen_3d" : {},
+ "real_displays" : [
+ {"node_id":0, "vdisplay_id":0, "pixel_w":1920, "pixel_h":1080, "rdisplay_id" : 0},
+ {"node_id":1, "vdisplay_id":1, "pixel_w":1920, "pixel_h":1080, "rdisplay_id" : 0}
+ ],
+ "node" : [
+ {"node_id":0, "hostname":"agl-host0", "ip":"192.168.0.100"},
+ {"node_id":1, "hostname":"agl-host1", "ip":"192.168.0.101"}
+ ],
+ "distributed_window_system" : {
+ "window_manager":{},
+ "framework_node":[
+ {"node_id":0, "ula": {"debug":false, "debug_port":8080, "port":10100}, "ucl": {"port":7654}},
+ {"node_id":1, "ula": {"debug":false, "debug_port":8080, "port":10100}, "ucl": {"port":7654}}
+ ]
+ }
+}
diff --git a/meta-uhmi/meta-distributed-display-fw/recipes-core/ula-tools/ula-tools_git.bb b/meta-uhmi/meta-distributed-display-fw/recipes-core/ula-tools/ula-tools_git.bb
new file mode 100644
index 00000000..9b945a3f
--- /dev/null
+++ b/meta-uhmi/meta-distributed-display-fw/recipes-core/ula-tools/ula-tools_git.bb
@@ -0,0 +1,72 @@
+SUMMARY = "Unified HMI Layout Tools"
+SECTION = "graphics"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://src/ula-tools/LICENSE.md;md5=e789951aab02a3028d2e58b90fc933ba"
+
+FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
+
+PN="ula-tools"
+PROVIDES += "ula-tools"
+
+SRCREV = "4403efd88fd4e79b092787ac727afe996dd7ca12"
+BRANCH ?= "main"
+SRC_URI = " \
+ git://github.com/unified-hmi/ula-tools.git;protocol=https;branch=${BRANCH} \
+"
+PV = "0.0+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+
+export GO111MODULE="auto"
+
+GO_IMPORT = "ula-tools"
+GO_INSTALL = " ${GO_IMPORT}/cmd/ula-distrib-com ${GO_IMPORT}/cmd/ula-node"
+
+
+inherit go
+RDEPENDS:${PN} = "jq bash"
+RDEPENDS:${PN}-dev = "bash"
+
+inherit systemd
+
+SRC_URI += " \
+ file://ula-node.service \
+ file://virtual-screen-def.json \
+ "
+
+REQUIRED_DISTRO_FEATURES = "systemd"
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE:${PN} = "ula-node.service"
+SYSTEMD_AUTO_ENABLE:${PN} = "enable"
+FILES:${PN} += " \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_system_unitdir}/${SYSTEMD_SERVICE}', '', d)} \
+ /etc/uhmi-framework/virtual-screen-def.json \
+ "
+
+do_compile:append() {
+ export CGO_ENABLED="1"
+ ${GO} build -buildmode=c-shared -o ${GOPATH}/pkg/libulaclient.so -v -ldflags '-extldflags "-Wl,-soname=libulaclient.so"' ${GO_IMPORT}/pkg/ula-client-lib
+}
+
+
+do_install:append() {
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -d ${D}${systemd_system_unitdir}
+ install -m 644 ${WORKDIR}/*.service ${D}/${systemd_system_unitdir}
+ fi
+
+ install -d ${D}/etc/uhmi-framework
+ install -m 644 ${WORKDIR}/virtual-screen-def.json ${D}/etc/uhmi-framework
+
+ install -d ${D}${libdir}
+ install -m 0755 ${GOPATH}/pkg/libulaclient.so ${D}${libdir}
+
+ install -d ${D}${includedir}
+ install -m 644 ${GOPATH}/pkg/libulaclient.h ${D}${includedir}
+
+}
+
+FILES:${PN} += "${libdir}"
+FILES:${PN} += "${includedir}"