diff options
Diffstat (limited to 'meta-uhmi')
29 files changed, 519 insertions, 18 deletions
diff --git a/meta-uhmi/meta-agl-uhmi-demo/README.md b/meta-uhmi/meta-agl-uhmi-demo/README.md new file mode 100644 index 00000000..df956f04 --- /dev/null +++ b/meta-uhmi/meta-agl-uhmi-demo/README.md @@ -0,0 +1,53 @@ +# Unified HMI preconfigured demo images + +## Introduction +Unified HMI needs a litle complex environment setup, so here we provide a recipe that allow you to create a pre-configured images. + +## Unified HMI frameworks +For a detailed explanation of Unified HMI, please refer to the [AGL Documentation](https://docs.automotivelinux.org/en/master/#06_Component_Documentation/11_Unified_HMI/) + +## Demo environment +Demo images supports three boards: qemux-86-64, raspberrypi4, and agl-refhw. +Please prepare two boards, one is the sender and the other is the receiver, on any boards and build the respective images for each. + +* sender +``` +IP: 192.168.0.100 +HOSTNAME: agl-host0 +``` + +* receiver +``` +IP: 192.168.0.101 +HOSTNAME: agl-host1 +``` + +## How to build +Follow the [AGL documentation](https://docs.automotivelinux.org/en/master/#01_Getting_Started/02_Building_AGL_Image/01_Build_Process_Overview/) for the build process, and set up the "[Initializing Your Build Environment](https://docs.automotivelinux.org/en/master/#01_Getting_Started/02_Building_AGL_Image/04_Initializing_Your_Build_Environment/)" section as described below to enable the AGL feature 'agl-uhmi-demo'. + +For example: +``` +$ cd $AGL_TOP/master +$ source ./meta-agl/scripts/aglsetup.sh -m qemux86-64 -b qemux86-64 agl-devel agl-uhmi-demo +``` + +After adding the feature, execute the bitbake command: + +for sender +``` +$ bitbake agl-uhmi-demo-preconfigured-sender +``` + +for receiver +``` +$ bitbake agl-uhmi-demo-preconfigured-receiver +``` + +## How to use +After both the sender and receiver have successfully booted, you can execute the following commands on the sender to confirm that the application is displayed across two displays each connected to diferrent boards. + +on sender (IP:192.168.0.100, hostname:agl-host0): +``` +$ cat /var/local/uhmi-app/glmark2/app.json | ucl-distrib-com /etc/uhmi-framework/virtual-screen-def.json & +$ cat /var/local/uhmi-app/glmark2/initial_vscreen.json | ula-distrib-com +``` diff --git a/meta-uhmi/meta-agl-uhmi-demo/conf/layer.conf b/meta-uhmi/meta-agl-uhmi-demo/conf/layer.conf new file mode 100644 index 00000000..3d3466b1 --- /dev/null +++ b/meta-uhmi/meta-agl-uhmi-demo/conf/layer.conf @@ -0,0 +1,14 @@ +# We have a conf and classes directory, add to BBPATH +BBPATH =. "${LAYERDIR}:" + +# We have recipes-* directories, add to BBFILES +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ + ${LAYERDIR}/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "agl-uhmi-demo-layer" +BBFILE_PATTERN_agl-uhmi-demo-layer = "^${LAYERDIR}/" +BBFILE_PRIORITY_agl-uhmi-demo-layer = "70" + +LAYERSERIES_COMPAT_agl-uhmi-demo-layer = "scarthgap" + +LAYERDEPENDS_agl-uhmi-demo-layer = "agldemo" diff --git a/meta-uhmi/meta-agl-uhmi-demo/recipes-config/udev/uhmi-udev-conf/99-uhmi-user.rules b/meta-uhmi/meta-agl-uhmi-demo/recipes-config/udev/uhmi-udev-conf/99-uhmi-user.rules new file mode 100644 index 00000000..bf75adf1 --- /dev/null +++ b/meta-uhmi/meta-agl-uhmi-demo/recipes-config/udev/uhmi-udev-conf/99-uhmi-user.rules @@ -0,0 +1,4 @@ +KERNEL=="virtio-lo", GROUP="video", MODE="0660" +KERNEL=="uinput", RUN="/usr/bin/chown agl-driver:input /dev/uinput" +SUBSYSTEM=="drm", KERNEL=="card[1-9]*", ACTION=="add", PROGRAM="/bin/bash -c '[ -f /tmp/rvgpu-index ] && cat /tmp/rvgpu-index || echo \"\"'", RUN="/usr/bin/chown agl-driver:video /dev/dri/rvgpu_virtio%c" +SUBSYSTEM=="input", KERNEL=="event[1-9]*", ACTION=="add", ATTRS{name}=="rvgpu*", PROGRAM="/bin/bash -c '[ -f /tmp/rvgpu-index ] && cat /tmp/rvgpu-index || echo \"\"'", RUN="/usr/bin/chown agl-driver:input /dev/input/%s{name}%c" diff --git a/meta-uhmi/meta-agl-uhmi-demo/recipes-config/udev/uhmi-udev-conf_1.0.bb b/meta-uhmi/meta-agl-uhmi-demo/recipes-config/udev/uhmi-udev-conf_1.0.bb new file mode 100644 index 00000000..6566208d --- /dev/null +++ b/meta-uhmi/meta-agl-uhmi-demo/recipes-config/udev/uhmi-udev-conf_1.0.bb @@ -0,0 +1,18 @@ +SUMMARY = "UHMI kernel devices user udev configuration" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +SRC_URI = "file://99-uhmi-user.rules" + +do_compile[noexec] = "1" + +do_install() { + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/udev/rules.d + install -m 0644 ${WORKDIR}/99-uhmi-user.rules ${D}${sysconfdir}/udev/rules.d/ + fi +} + +FILES:${PN} += "${systemd_system_unitdir}" + +RDEPENDS:${PN} += "udev" diff --git a/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/files/app.json b/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/files/app.json new file mode 100644 index 00000000..488e1f4a --- /dev/null +++ b/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/files/app.json @@ -0,0 +1,51 @@ +{ + "format_v1": { + "command_type" : "remote_virtio_gpu", + "appli_name" : "glmark2", + "sender" : { + "launcher" : "agl-host0", + "command" : "/usr/bin/ucl-virtio-gpu-wl-send", + "frontend_params" : { + "scanout_x" : 0, + "scanout_y" : 0, + "scanout_w" : 1920, + "scanout_h" : 1080, + "server_port" : 33445 + }, + "appli" : "/usr/bin/glmark2-es2-wayland -s 1920x1080", + "env" : "LD_LIBRARY_PATH=/usr/lib/mesa-virtio" + }, + "receivers" : [ + { + "launcher" : "agl-host0", + "command" : "/usr/bin/ucl-virtio-gpu-wl-recv", + "backend_params" : { + "ivi_surface_id" : 101000, + "app_id" : "com.github.glmark2.glmark2", + "scanout_x" : 0, + "scanout_y" : 0, + "scanout_w" : 1920, + "scanout_h" : 1080, + "listen_port" : 33445, + "initial_screen_color" : "0x33333333" + }, + "env" : "" + }, + { + "launcher" : "agl-host1", + "command" : "/usr/bin/ucl-virtio-gpu-wl-recv", + "backend_params" : { + "ivi_surface_id" : 101000, + "app_id" : "com.github.glmark2.glmark2", + "scanout_x" : 0, + "scanout_y" : 0, + "scanout_w" : 1920, + "scanout_h" : 1080, + "listen_port" : 33445, + "initial_screen_color" : "0x33333333" + }, + "env" : "" + } + ] + } +} diff --git a/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/files/initial_vscreen.json b/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/files/initial_vscreen.json new file mode 100644 index 00000000..766de472 --- /dev/null +++ b/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/files/initial_vscreen.json @@ -0,0 +1,21 @@ +{ + "command": "initial_vscreen", + "vlayer": [ + { + "VID": 1010000, + "coord": "global", + "virtual_w": 1920, "virtual_h": 1080, + "vsrc_x": 0, "vsrc_y": 0, "vsrc_w": 1920, "vsrc_h": 1080, + "vdst_x": 960, "vdst_y": 0, "vdst_w": 1920, "vdst_h": 1080, + "vsurface": [ + { + "VID": 101000, + "APPID": "com.github.glmark2.glmark2", + "pixel_w": 1920, "pixel_h": 1080, + "psrc_x": 0, "psrc_y": 0, "psrc_w": 1920, "psrc_h": 1080, + "vdst_x": 0, "vdst_y": 0, "vdst_w": 1920, "vdst_h": 1080 + } + ] + } + ] +} diff --git a/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/files/uhmi-ivi-wm.conf b/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/files/uhmi-ivi-wm.conf new file mode 100644 index 00000000..546a61c4 --- /dev/null +++ b/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/files/uhmi-ivi-wm.conf @@ -0,0 +1,3 @@ +[Service] +Environment="XDG_RUNTIME_DIR=/run/user/200" +Environment="WAYLAND_DISPLAY=wayland-1" diff --git a/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/set-hostname.inc b/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/set-hostname.inc new file mode 100644 index 00000000..9ff5339e --- /dev/null +++ b/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/set-hostname.inc @@ -0,0 +1,5 @@ +set_hostname() { + UHMI_HOSTNAME=${UHMI_HOSTNAME:-agl-host} + echo "${UHMI_HOSTNAME}" > ${IMAGE_ROOTFS}/${sysconfdir}/hostname +} +ROOTFS_POSTPROCESS_COMMAND:append = " set_hostname;" diff --git a/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/uhmi-config-receiver.bb b/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/uhmi-config-receiver.bb new file mode 100644 index 00000000..b0b9a17e --- /dev/null +++ b/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/uhmi-config-receiver.bb @@ -0,0 +1,13 @@ +SUMMARY = "Setting files for UHMI receiver" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +SRC_URI = " \ + file://uhmi-ivi-wm.conf \ +" + +do_install() { + install -d ${D}/etc/systemd/system/uhmi-ivi-wm.service.d/ + install -m 0644 ${WORKDIR}/uhmi-ivi-wm.conf ${D}/etc/systemd/system/uhmi-ivi-wm.service.d/ +} + diff --git a/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/uhmi-config-sender.bb b/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/uhmi-config-sender.bb new file mode 100644 index 00000000..04b20671 --- /dev/null +++ b/meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/uhmi-config-sender.bb @@ -0,0 +1,22 @@ +SUMMARY = "Setting files for UHMI sender" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +SRC_URI = " \ + file://app.json \ + file://initial_vscreen.json \ + file://uhmi-ivi-wm.conf \ +" + +do_install() { + install -d ${D}/var/local/uhmi-app/glmark2 + install -m 644 ${WORKDIR}/app.json ${D}/var/local/uhmi-app/glmark2/ + install -m 644 ${WORKDIR}/initial_vscreen.json ${D}/var/local/uhmi-app/glmark2/ + + install -d ${D}/etc/systemd/system/uhmi-ivi-wm.service.d/ + install -m 0644 ${WORKDIR}/uhmi-ivi-wm.conf ${D}/etc/systemd/system/uhmi-ivi-wm.service.d/ +} + +FILES:${PN} += " \ + /var/local/uhmi-app/glmark2 \ +" diff --git a/meta-uhmi/meta-agl-uhmi-demo/recipes-graphics/wayland/files/weston_ivi-shell.ini b/meta-uhmi/meta-agl-uhmi-demo/recipes-graphics/wayland/files/weston_ivi-shell.ini new file mode 100644 index 00000000..5001d11e --- /dev/null +++ b/meta-uhmi/meta-agl-uhmi-demo/recipes-graphics/wayland/files/weston_ivi-shell.ini @@ -0,0 +1,50 @@ +[core] +shell=ivi-shell.so +modules=ivi-controller.so +require-input=false + +[output] +name=HDMI-A-1 +mode=1920x1080@60 + +[output] +name=HDMI-A-2 +mode=1920x1080@60 + +[output] +name=HDMI-A-3 +mode=1920x1080@60 + +[output] +name=DSI-1 +mode=1920x1080@60 + +[output] +name=DSI-2 +mode=1920x1080@60 + +[output] +name=DP-1 +mode=1920x1080@60 + +[output] +name=Virtual-1 +mode=1920x1080 + +[output] +name=Virtual-2 +mode=1920x1080 + +[output] +name=VGA-1 +mode=1920x1080 + +[output] +name=VGA-2 +mode=1920x1080 + +[ivi-shell] +ivi-input-module=ivi-input-controller.so +#ivi-client-name=/usr/bin/simple-weston-client +bkgnd-surface-id=1000000 +bkgnd-color=0xFF000000 diff --git a/meta-uhmi/meta-agl-uhmi-demo/recipes-graphics/wayland/weston-init.bbappend b/meta-uhmi/meta-agl-uhmi-demo/recipes-graphics/wayland/weston-init.bbappend new file mode 100644 index 00000000..1cc6091c --- /dev/null +++ b/meta-uhmi/meta-agl-uhmi-demo/recipes-graphics/wayland/weston-init.bbappend @@ -0,0 +1,13 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/files:" + +WESTON_INIT_IVI_SHELL ?= "weston_ivi-shell.ini" + +SRC_URI:append = " \ + file://${WESTON_INIT_IVI_SHELL} \ +" + +do_install:append () { + install -d ${D}/${sysconfdir}/xdg/weston + install -m 644 ${WORKDIR}/${WESTON_INIT_IVI_SHELL} ${D}/${sysconfdir}/xdg/weston/ + ln -nfs ${sysconfdir}/xdg/weston/${WESTON_INIT_IVI_SHELL} ${D}/${sysconfdir}/xdg/weston/weston.ini +} diff --git a/meta-uhmi/meta-agl-uhmi-demo/recipes-platform/images/agl-uhmi-demo-preconfigured-receiver-agl.bb b/meta-uhmi/meta-agl-uhmi-demo/recipes-platform/images/agl-uhmi-demo-preconfigured-receiver-agl.bb new file mode 100644 index 00000000..89f19073 --- /dev/null +++ b/meta-uhmi/meta-agl-uhmi-demo/recipes-platform/images/agl-uhmi-demo-preconfigured-receiver-agl.bb @@ -0,0 +1,22 @@ +SUMMARY = "AGL Unified HMI demo preconfigured AGL receiver image" +LICENSE = "MIT" + +DEPENDS = "uhmi-agl-wm" + +require recipes-platform/images/agl-image-compositor.bb +require recipes-platform/images/agl-demo-features.inc + +IMAGE_FEATURES += "ssh-server-openssh" + +# Add packages for Unified HMI demo platform here +IMAGE_INSTALL += " \ + packagegroup-rvgpu \ + packagegroup-ddfw-agl \ + uhmi-config-receiver \ + agl-compositor \ + native-shell-client \ + uhmi-udev-conf \ +" + +UHMI_HOSTNAME ?= "agl-host1" +require recipes-config/uhmi-config/set-hostname.inc diff --git a/meta-uhmi/meta-agl-uhmi-demo/recipes-platform/images/agl-uhmi-demo-preconfigured-receiver.bb b/meta-uhmi/meta-agl-uhmi-demo/recipes-platform/images/agl-uhmi-demo-preconfigured-receiver.bb new file mode 100644 index 00000000..1e7de2c0 --- /dev/null +++ b/meta-uhmi/meta-agl-uhmi-demo/recipes-platform/images/agl-uhmi-demo-preconfigured-receiver.bb @@ -0,0 +1,18 @@ +SUMMARY = "AGL Unified HMI demo preconfigured weston receiver image" +LICENSE = "MIT" + +DEPENDS = "uhmi-ivi-wm" + +require recipes-platform/images/agl-image-weston.bb + +IMAGE_FEATURES += "ssh-server-openssh" + +# Add packages for Unified HMI demo platform here +IMAGE_INSTALL += " \ + packagegroup-rvgpu \ + packagegroup-ddfw \ + uhmi-config-receiver \ +" + +UHMI_HOSTNAME ?= "agl-host1" +require recipes-config/uhmi-config/set-hostname.inc diff --git a/meta-uhmi/meta-agl-uhmi-demo/recipes-platform/images/agl-uhmi-demo-preconfigured-sender-agl.bb b/meta-uhmi/meta-agl-uhmi-demo/recipes-platform/images/agl-uhmi-demo-preconfigured-sender-agl.bb new file mode 100644 index 00000000..ce47aff6 --- /dev/null +++ b/meta-uhmi/meta-agl-uhmi-demo/recipes-platform/images/agl-uhmi-demo-preconfigured-sender-agl.bb @@ -0,0 +1,23 @@ +SUMMARY = "AGL Unified HMI demo preconfigured AGL sender image" +LICENSE = "MIT" + +DEPENDS = "uhmi-agl-wm" + +require recipes-platform/images/agl-image-compositor.bb +require recipes-platform/images/agl-demo-features.inc + +IMAGE_FEATURES += "ssh-server-openssh package-management" + +# Add packages for Unified HMI demo platform here +IMAGE_INSTALL += " \ + packagegroup-rvgpu \ + packagegroup-ddfw-agl \ + uhmi-config-sender \ + agl-compositor \ + native-shell-client \ + glmark2 \ + uhmi-udev-conf \ +" + +UHMI_HOSTNAME ?= "agl-host0" +require recipes-config/uhmi-config/set-hostname.inc diff --git a/meta-uhmi/meta-agl-uhmi-demo/recipes-platform/images/agl-uhmi-demo-preconfigured-sender.bb b/meta-uhmi/meta-agl-uhmi-demo/recipes-platform/images/agl-uhmi-demo-preconfigured-sender.bb new file mode 100644 index 00000000..5c9d6a2b --- /dev/null +++ b/meta-uhmi/meta-agl-uhmi-demo/recipes-platform/images/agl-uhmi-demo-preconfigured-sender.bb @@ -0,0 +1,19 @@ +SUMMARY = "AGL Unified HMI demo preconfigured weston sender image" +LICENSE = "MIT" + +DEPENDS = "uhmi-ivi-wm" + +require recipes-platform/images/agl-image-weston.bb + +IMAGE_FEATURES += "ssh-server-openssh" + +# Add packages for Unified HMI demo platform here +IMAGE_INSTALL += " \ + packagegroup-rvgpu \ + packagegroup-ddfw \ + uhmi-config-sender \ + glmark2 \ +" + +UHMI_HOSTNAME ?= "agl-host0" +require recipes-config/uhmi-config/set-hostname.inc diff --git a/meta-uhmi/recipes-core/ucl-tools/files/ucl-launcher.service b/meta-uhmi/recipes-core/ucl-tools/files/ucl-launcher.service index 37f289e6..a954c90f 100644 --- a/meta-uhmi/recipes-core/ucl-tools/files/ucl-launcher.service +++ b/meta-uhmi/recipes-core/ucl-tools/files/ucl-launcher.service @@ -2,7 +2,9 @@ Description=ucl-launcher [Service] -Type=idle +Type=simple +User=agl-driver +Environment=XDG_RUNTIME_DIR=/run/user/1001 ExecStart=/usr/bin/ucl-launcher KillSignal=SIGTERM TimeoutStopSec=10 diff --git a/meta-uhmi/recipes-core/ucl-tools/ucl-tools_git.bb b/meta-uhmi/recipes-core/ucl-tools/ucl-tools_git.bb index cc26678b..bb24cd66 100644 --- a/meta-uhmi/recipes-core/ucl-tools/ucl-tools_git.bb +++ b/meta-uhmi/recipes-core/ucl-tools/ucl-tools_git.bb @@ -9,8 +9,8 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/files:" PN="ucl-tools" PROVIDES += "ucl-tools" -SRCREV = "80e83132834b5ab62875bc294332bd00cd559d5d" -BRANCH ?= "main" +SRCREV = "8a95c5412ff90507e33f9c5d4e57e3a5b4bb7205" +BRANCH ?= "agl" SRC_URI = " \ git://github.com/unified-hmi/ucl-tools.git;protocol=https;branch=${BRANCH} \ " @@ -28,7 +28,7 @@ inherit go RDEPENDS:${PN} = "bash" RDEPENDS:${PN}-dev = "bash" -inherit systemd +inherit systemd features_check SRC_URI += " file://ucl-launcher.service" REQUIRED_DISTRO_FEATURES = "systemd" diff --git a/meta-uhmi/recipes-core/uhmi-agl-wm/files/uhmi-agl-wm.service b/meta-uhmi/recipes-core/uhmi-agl-wm/files/uhmi-agl-wm.service new file mode 100644 index 00000000..39ca19d8 --- /dev/null +++ b/meta-uhmi/recipes-core/uhmi-agl-wm/files/uhmi-agl-wm.service @@ -0,0 +1,16 @@ +[Unit] +Description=uhmi AGL window manager +After=agl-compositor.service + +[Service] +Type=simple +User=agl-driver +Environment=XDG_RUNTIME_DIR=/run/user/1001 +EnvironmentFile=-/etc/default/uhmi-agl-wm +ExecStart=/usr/bin/uhmi-agl-wm +KillSignal=SIGKILL +Restart=always +RestartSec=1s + +[Install] +WantedBy=multi-user.target diff --git a/meta-uhmi/recipes-core/uhmi-agl-wm/uhmi-agl-wm_git.bb b/meta-uhmi/recipes-core/uhmi-agl-wm/uhmi-agl-wm_git.bb new file mode 100644 index 00000000..2329c0be --- /dev/null +++ b/meta-uhmi/recipes-core/uhmi-agl-wm/uhmi-agl-wm_git.bb @@ -0,0 +1,41 @@ +DESCRIPTION = "UHMI AGL window-manager" +DEPENDS = " agl-compositor grpc grpc-native jansson" + +RDEPENDS:${PN} = " jansson" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=fb8ec92f12228c45a207d99abba9d6c9" + +FILESEXTRAPATHS:prepend := "${THISDIR}/files:" + +PN="uhmi-agl-wm" + +SRCREV = "20c1228834f141bbbb6c0ee71d4f3c4149f87b66" +BRANCH ?= "master" +SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/uhmi-agl-wm.git;protocol=https;branch=${AGL_BRANCH}" +PV = "0.0+git${SRCPV}" + +S = "${WORKDIR}/git" + +inherit meson pkgconfig systemd features_check + +SRC_URI += " file://uhmi-agl-wm.service" + +REQUIRED_DISTRO_FEATURES = "systemd" +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE:${PN} = "uhmi-agl-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-agl-wm" +FILES:${PN} += " /usr/share/*" diff --git a/meta-uhmi/recipes-core/uhmi-ivi-wm/uhmi-ivi-wm_git.bb b/meta-uhmi/recipes-core/uhmi-ivi-wm/uhmi-ivi-wm_git.bb index daa5fff4..57af74ef 100644 --- a/meta-uhmi/recipes-core/uhmi-ivi-wm/uhmi-ivi-wm_git.bb +++ b/meta-uhmi/recipes-core/uhmi-ivi-wm/uhmi-ivi-wm_git.bb @@ -19,10 +19,8 @@ PV = "0.0+git${SRCPV}" S = "${WORKDIR}/git" -inherit cmake +inherit cmake systemd features_check - -inherit systemd SRC_URI += " file://uhmi-ivi-wm.service" REQUIRED_DISTRO_FEATURES = "systemd" SYSTEMD_PACKAGES = "${PN}" @@ -39,6 +37,5 @@ do_install:append() { fi } - FILES:${PN} += " /usr/bin/uhmi-ivi-wm" FILES:${PN} += " /usr/share/*" diff --git a/meta-uhmi/recipes-core/ula-tools/files/ula-node-agl.service b/meta-uhmi/recipes-core/ula-tools/files/ula-node-agl.service new file mode 100644 index 00000000..2d01b7c2 --- /dev/null +++ b/meta-uhmi/recipes-core/ula-tools/files/ula-node-agl.service @@ -0,0 +1,17 @@ +[Unit] +Description=ula-node +Requires=uhmi-agl-wm.service +After=uhmi-agl-wm.service + +[Service] +Type=simple +User=agl-driver +Environment=XDG_RUNTIME_DIR=/run/user/1001 +ExecStart=/usr/bin/ula-node +KillSignal=SIGTERM +TimeoutStopSec=10 +Restart=always +RestartSec=2 + +[Install] +WantedBy=multi-user.target diff --git a/meta-uhmi/recipes-core/ula-tools/files/ula-node.service b/meta-uhmi/recipes-core/ula-tools/files/ula-node.service index edf69f3d..44a3af48 100644 --- a/meta-uhmi/recipes-core/ula-tools/files/ula-node.service +++ b/meta-uhmi/recipes-core/ula-tools/files/ula-node.service @@ -4,7 +4,9 @@ Requires=uhmi-ivi-wm.service After=uhmi-ivi-wm.service [Service] -Type=idle +Type=simple +User=agl-driver +Environment=XDG_RUNTIME_DIR=/run/user/1001 ExecStart=/usr/bin/ula-node KillSignal=SIGTERM TimeoutStopSec=10 diff --git a/meta-uhmi/recipes-core/ula-tools/ula-tools-agl_git.bb b/meta-uhmi/recipes-core/ula-tools/ula-tools-agl_git.bb new file mode 100644 index 00000000..744bff4a --- /dev/null +++ b/meta-uhmi/recipes-core/ula-tools/ula-tools-agl_git.bb @@ -0,0 +1,69 @@ +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-agl" +PROVIDES += "ula-tools-agl" + +SRCREV = "3591690087d8267a79d3d0714ef5f4abc4bffc8d" +BRANCH ?= "agl" +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 features_check + +SRC_URI += " \ + file://ula-node-agl.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" + export GOFLAGS="-mod=vendor -trimpath" + ${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}/ula-node.service + 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}" diff --git a/meta-uhmi/recipes-core/ula-tools/ula-tools_git.bb b/meta-uhmi/recipes-core/ula-tools/ula-tools_git.bb index 9b945a3f..1dc26e20 100644 --- a/meta-uhmi/recipes-core/ula-tools/ula-tools_git.bb +++ b/meta-uhmi/recipes-core/ula-tools/ula-tools_git.bb @@ -18,18 +18,16 @@ 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 +inherit systemd features_check SRC_URI += " \ file://ula-node.service \ @@ -47,10 +45,10 @@ FILES:${PN} += " \ do_compile:append() { export CGO_ENABLED="1" + export GOFLAGS="-mod=vendor -trimpath" ${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} @@ -65,7 +63,6 @@ do_install:append() { install -d ${D}${includedir} install -m 644 ${GOPATH}/pkg/libulaclient.h ${D}${includedir} - } FILES:${PN} += "${libdir}" diff --git a/meta-uhmi/recipes-graphics/mesa-virtio/mesa-virtio_20.3.5.bb b/meta-uhmi/recipes-graphics/mesa-virtio/mesa-virtio_20.3.5.bb index 9a0dab2f..03d8ddc2 100644 --- a/meta-uhmi/recipes-graphics/mesa-virtio/mesa-virtio_20.3.5.bb +++ b/meta-uhmi/recipes-graphics/mesa-virtio/mesa-virtio_20.3.5.bb @@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://docs/license.rst;md5=9aa1bc48c9826ad9fdb16661f6930496 DEPENDS = "expat makedepend-native flex-native bison-native libxml2-native zlib chrpath-replacement-native python3-mako-native gettext-native" DEPENDS:append = " libdrm wayland wayland-native wayland-protocols python3-native" -SRC_URI = "https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz" +SRC_URI = "https://mesa.freedesktop.org/archive/older-versions/20.x/mesa-${PV}.tar.xz" SRC_URI[md5] = "224d7576618ef4dd8ac69f30b5b90b38" SRC_URI[sha256sum] = "909a72df63dfa3c0844ccf44a26ac028d148297ed333ab51560893923d7691ce" diff --git a/meta-uhmi/recipes-graphics/remote-virtio-gpu/remote-virtio-gpu.inc b/meta-uhmi/recipes-graphics/remote-virtio-gpu/remote-virtio-gpu.inc index ddd6dbab..47866ca6 100644 --- a/meta-uhmi/recipes-graphics/remote-virtio-gpu/remote-virtio-gpu.inc +++ b/meta-uhmi/recipes-graphics/remote-virtio-gpu/remote-virtio-gpu.inc @@ -1,6 +1,6 @@ PV = "0.0+git${SRCPV}" -SRCREV = "bce1f77f189dacf3e57d2f4edc37be4ff63b9e4b" -BRANCH ?= "main" +SRCREV = "f9e5d64f61a646849a835232998f6cf079176fb3" +BRANCH ?= "agl" SRC_URI = " \ git://github.com/unified-hmi/remote-virtio-gpu.git;protocol=https;branch=${BRANCH} \ " diff --git a/meta-uhmi/recipes-kernel/virtio-loopback-driver/virtio-loopback-driver.inc b/meta-uhmi/recipes-kernel/virtio-loopback-driver/virtio-loopback-driver.inc index a7c0111b..a6fb033a 100644 --- a/meta-uhmi/recipes-kernel/virtio-loopback-driver/virtio-loopback-driver.inc +++ b/meta-uhmi/recipes-kernel/virtio-loopback-driver/virtio-loopback-driver.inc @@ -1,5 +1,5 @@ PV = "0.0+git${SRCPV}" -SRCREV = "cf40e4d295c75567cb7d1d03f9fe291e9593e882" +SRCREV = "52da5c41c45b7bbc8f042d40d3c2daa3c779e06c" BRANCH ?= "main" SRC_URI = " \ git://github.com/unified-hmi/virtio-loopback-driver.git;protocol=https;branch=${BRANCH} \ diff --git a/meta-uhmi/recipes-platform/packagegroups/packagegroup-ddfw-agl.bb b/meta-uhmi/recipes-platform/packagegroups/packagegroup-ddfw-agl.bb new file mode 100644 index 00000000..88a65d6a --- /dev/null +++ b/meta-uhmi/recipes-platform/packagegroups/packagegroup-ddfw-agl.bb @@ -0,0 +1,11 @@ +SUMMARY = "Unified AGL HMI Package Groups" +LICENSE = "Apache-2.0" + +inherit packagegroup + +RDEPENDS:${PN} += " \ + ucl-tools \ + ula-tools-agl \ + uhmi-agl-wm \ + agl-compositor \ +" |