diff options
author | Kenta <murakami.kenta002@jp.panasonic.com> | 2024-10-03 11:06:31 +0900 |
---|---|---|
committer | Jan-Simon Moeller <jsmoeller@linuxfoundation.org> | 2024-10-24 08:24:43 +0000 |
commit | 58da6681f4cd53670cb10d63f37ffaae3e6346c4 (patch) | |
tree | dffa1b8fb66970e5e91fa778dce4f2282f9c63df | |
parent | 73428f0afc17a934c6d785e692557ee6fa41bdb4 (diff) |
Unified HMI: Add wayland-ivi-extension support
The distributed display framework needs Wayland IVI Extension to
control the layout of application. So, it is necessary to add
wayland-ivi-extension until the support to gRPC in agl-compositor
is completed.
Additionally, add uhmi-ivi-wm to apply ivi-layer and ivi-surface layout
to screen using ilm API of ivi-extension based on ULA protocol.
known issue:
There is an issue where touch input is not working with the
wayland-ivi-extension, but this is unrelated to UHMI and occurs with
the wayland-ivi-extension alone in libweston v13.
Bug-AGL: SPEC-5254
Change-Id: I08c917b36904ed6e9d37369d1f6343bd2454013f
Signed-off-by: Kenta <murakami.kenta002@jp.panasonic.com>
5 files changed, 152 insertions, 0 deletions
diff --git a/meta-uhmi/meta-distributed-display-fw/recipes-core/uhmi-ivi-wm/files/uhmi-ivi-wm.service b/meta-uhmi/meta-distributed-display-fw/recipes-core/uhmi-ivi-wm/files/uhmi-ivi-wm.service new file mode 100644 index 00000000..aad36411 --- /dev/null +++ b/meta-uhmi/meta-distributed-display-fw/recipes-core/uhmi-ivi-wm/files/uhmi-ivi-wm.service @@ -0,0 +1,17 @@ +[Unit] +Description=uhmi ivi window manager +After=weston.service + +[Service] +Environment="XDG_RUNTIME_DIR=/run/user/1001" +Environment="WAYLAND_DISPLAY=wayland-0" +EnvironmentFile=-/etc/default/uhmi-ivi-wm + +Type=simple +ExecStart=/usr/bin/uhmi-ivi-wm +KillSignal=SIGKILL +Restart=always +RestartSec=1s + +[Install] +WantedBy=multi-user.target diff --git a/meta-uhmi/meta-distributed-display-fw/recipes-core/uhmi-ivi-wm/uhmi-ivi-wm_git.bb b/meta-uhmi/meta-distributed-display-fw/recipes-core/uhmi-ivi-wm/uhmi-ivi-wm_git.bb new file mode 100644 index 00000000..daa5fff4 --- /dev/null +++ b/meta-uhmi/meta-distributed-display-fw/recipes-core/uhmi-ivi-wm/uhmi-ivi-wm_git.bb @@ -0,0 +1,44 @@ +DESCRIPTION = "Panasonic UHMI ivi-window-manager" +DEPENDS = " weston wayland-ivi-extension jansson" + +RDEPENDS:${PN} = " jansson" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=e789951aab02a3028d2e58b90fc933ba" + +FILESEXTRAPATHS:prepend := "${THISDIR}/files:" + +PN="uhmi-ivi-wm" + +SRCREV = "ae86a2803f7a56bbc24d13756a2de78d58da854e" +BRANCH ?= "main" +SRC_URI = " \ + git://github.com/unified-hmi/uhmi-ivi-wm.git;protocol=https;branch=${BRANCH} \ +" +PV = "0.0+git${SRCPV}" + +S = "${WORKDIR}/git" + +inherit cmake + + +inherit systemd +SRC_URI += " file://uhmi-ivi-wm.service" +REQUIRED_DISTRO_FEATURES = "systemd" +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE:${PN} = "uhmi-ivi-wm.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 +} + + +FILES:${PN} += " /usr/bin/uhmi-ivi-wm" +FILES:${PN} += " /usr/share/*" diff --git a/meta-uhmi/meta-distributed-display-fw/recipes-graphics/wayland/wayland-ivi-extension/0001-Update-libweston-to-version-13.patch b/meta-uhmi/meta-distributed-display-fw/recipes-graphics/wayland/wayland-ivi-extension/0001-Update-libweston-to-version-13.patch new file mode 100644 index 00000000..008d0f4b --- /dev/null +++ b/meta-uhmi/meta-distributed-display-fw/recipes-graphics/wayland/wayland-ivi-extension/0001-Update-libweston-to-version-13.patch @@ -0,0 +1,62 @@ +From e7984b2a8a7508cdbc3f269f4e0789edcfe8b30a Mon Sep 17 00:00:00 2001 +From: James Thomas <james.thomas@codethink.co.uk> +Date: Thu, 22 Feb 2024 12:26:58 +0000 +Subject: [PATCH] Update libweston to version 13 + +Upstream-Status: Submitted [https://github.com/COVESA/wayland-ivi-extension/pull/185] +Signed-off-by: Scott Murray <scott.murray@konsulko.com> + +--- + CMakeLists.txt | 2 +- + weston-ivi-shell/src/ivi-controller.c | 10 +++++----- + 2 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d6428c2..5917875 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -28,7 +28,7 @@ include(GNUInstallDirs) + SET(IVI_EXTENSION_VERSION 2.3.2) + SET(ILM_API_VERSION 2.3.2) + +-SET(LIBWESTON_VER 12) ++SET(LIBWESTON_VER 13) + + SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wno-unused-parameter" ) + SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-unused-parameter" ) +diff --git a/weston-ivi-shell/src/ivi-controller.c b/weston-ivi-shell/src/ivi-controller.c +index 4701aec..94ca83e 100644 +--- a/weston-ivi-shell/src/ivi-controller.c ++++ b/weston-ivi-shell/src/ivi-controller.c +@@ -881,15 +881,15 @@ set_bkgnd_surface_prop(struct ivishell *shell) + wl_list_for_each(output, &compositor->output_list, link) { + if (!count) + { +- x = output->x; +- y = output->y; ++ x = output->pos.c.x; ++ y = output->pos.c.y; + count++; + } +- dest_width = output->x + output->width; ++ dest_width = output->pos.c.x + output->width; + if (output->height > dest_height) + dest_height = output->height; + weston_log("set_bkgnd_surface_prop: o_name:%s x:%d y:%d o_width:%d o_height:%d\n", +- output->name, output->x, output->y, output->width, output->height); ++ output->name, output->pos.c.x, output->pos.c.y, output->width, output->height); + } + + w_surface = view->surface; +@@ -2197,7 +2197,7 @@ launch_client_process(void *data) + setenv(IVI_CLIENT_ENABLE_CURSOR_ENV_NAME, option, 0x1); + } + +- shell->client = weston_client_start(shell->compositor, ++ shell->client = wet_client_start(shell->compositor, + shell->ivi_client_name); + + shell->client_destroy_listener.notify = ivi_shell_client_destroy; +-- +2.44.0 + diff --git a/meta-uhmi/meta-distributed-display-fw/recipes-graphics/wayland/wayland-ivi-extension_git.bb b/meta-uhmi/meta-distributed-display-fw/recipes-graphics/wayland/wayland-ivi-extension_git.bb new file mode 100644 index 00000000..f7b25917 --- /dev/null +++ b/meta-uhmi/meta-distributed-display-fw/recipes-graphics/wayland/wayland-ivi-extension_git.bb @@ -0,0 +1,26 @@ +SUMMARY = "Wayland IVI Extension" +DESCRIPTION = "GENIVI Layer Management API based on Wayland IVI Extension" +HOMEPAGE = "https://github.com/COVESA/wayland-ivi-extension" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=1f1a56bb2dadf5f2be8eb342acf4ed79" + +DEPENDS = "weston virtual/libgles2 pixman wayland-native" + +PV = "2.3.2+git${SRCPV}" + +SRC_URI = " \ + git://github.com/COVESA/${BPN}.git;protocol=https;branch=master \ + file://0001-Update-libweston-to-version-13.patch \ +" +SRCREV = "60d616ad3abd925956207b9b6ff981afa004e792" + +S = "${WORKDIR}/git" + +inherit cmake pkgconfig + +EXTRA_OECMAKE := "-DWITH_ILM_INPUT=1" +EXTRA_OECMAKE += "-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}" + +FILES:${PN} += "${datadir}/wayland-protocols/stable/ivi-application/ivi-application.xml" +FILES:${PN} += "${libdir}/weston/*" +FILES:${PN}-dbg += "${libdir}/weston/.debug/*" diff --git a/meta-uhmi/meta-distributed-display-fw/recipes-platform/packagegroups/packagegroup-distributed-display-fw.bb b/meta-uhmi/meta-distributed-display-fw/recipes-platform/packagegroups/packagegroup-distributed-display-fw.bb index 527184dc..291a5bf2 100644 --- a/meta-uhmi/meta-distributed-display-fw/recipes-platform/packagegroups/packagegroup-distributed-display-fw.bb +++ b/meta-uhmi/meta-distributed-display-fw/recipes-platform/packagegroups/packagegroup-distributed-display-fw.bb @@ -6,4 +6,7 @@ inherit packagegroup RDEPENDS:${PN} += " \ ucl-tools \ ula-tools \ + uhmi-ivi-wm \ + weston \ + wayland-ivi-extension \ " |