diff options
author | Kenta <murakami.kenta002@jp.panasonic.com> | 2024-10-03 10:44:19 +0900 |
---|---|---|
committer | Jan-Simon Moeller <jsmoeller@linuxfoundation.org> | 2024-10-16 11:48:48 +0000 |
commit | 8d4dc8e6ef2cb04e9015a32e0329a3a58685fc62 (patch) | |
tree | aa38bb0e45b70f18d72335c88c95d63ca2d5af33 /meta-uhmi/meta-distributed-display-fw/recipes-core | |
parent | f86532f8ac81d1c7dae63ed242f54473aa1b1dda (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')
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}" |