summaryrefslogtreecommitdiffstats
path: root/meta-uhmi
diff options
context:
space:
mode:
Diffstat (limited to 'meta-uhmi')
-rw-r--r--meta-uhmi/meta-agl-uhmi-demo/README.md53
-rw-r--r--meta-uhmi/meta-agl-uhmi-demo/conf/layer.conf14
-rw-r--r--meta-uhmi/meta-agl-uhmi-demo/recipes-config/udev/uhmi-udev-conf/99-uhmi-user.rules4
-rw-r--r--meta-uhmi/meta-agl-uhmi-demo/recipes-config/udev/uhmi-udev-conf_1.0.bb18
-rw-r--r--meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/files/app.json51
-rw-r--r--meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/files/initial_vscreen.json21
-rw-r--r--meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/files/uhmi-ivi-wm.conf3
-rw-r--r--meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/set-hostname.inc5
-rw-r--r--meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/uhmi-config-receiver.bb13
-rw-r--r--meta-uhmi/meta-agl-uhmi-demo/recipes-config/uhmi-config/uhmi-config-sender.bb22
-rw-r--r--meta-uhmi/meta-agl-uhmi-demo/recipes-graphics/wayland/files/weston_ivi-shell.ini50
-rw-r--r--meta-uhmi/meta-agl-uhmi-demo/recipes-graphics/wayland/weston-init.bbappend13
-rw-r--r--meta-uhmi/meta-agl-uhmi-demo/recipes-platform/images/agl-uhmi-demo-preconfigured-receiver-agl.bb22
-rw-r--r--meta-uhmi/meta-agl-uhmi-demo/recipes-platform/images/agl-uhmi-demo-preconfigured-receiver.bb18
-rw-r--r--meta-uhmi/meta-agl-uhmi-demo/recipes-platform/images/agl-uhmi-demo-preconfigured-sender-agl.bb23
-rw-r--r--meta-uhmi/meta-agl-uhmi-demo/recipes-platform/images/agl-uhmi-demo-preconfigured-sender.bb19
-rw-r--r--meta-uhmi/recipes-core/ucl-tools/files/ucl-launcher.service4
-rw-r--r--meta-uhmi/recipes-core/ucl-tools/ucl-tools_git.bb6
-rw-r--r--meta-uhmi/recipes-core/uhmi-agl-wm/files/uhmi-agl-wm.service16
-rw-r--r--meta-uhmi/recipes-core/uhmi-agl-wm/uhmi-agl-wm_git.bb41
-rw-r--r--meta-uhmi/recipes-core/uhmi-ivi-wm/uhmi-ivi-wm_git.bb5
-rw-r--r--meta-uhmi/recipes-core/ula-tools/files/ula-node-agl.service17
-rw-r--r--meta-uhmi/recipes-core/ula-tools/files/ula-node.service4
-rw-r--r--meta-uhmi/recipes-core/ula-tools/ula-tools-agl_git.bb69
-rw-r--r--meta-uhmi/recipes-core/ula-tools/ula-tools_git.bb7
-rw-r--r--meta-uhmi/recipes-graphics/mesa-virtio/mesa-virtio_20.3.5.bb2
-rw-r--r--meta-uhmi/recipes-graphics/remote-virtio-gpu/remote-virtio-gpu.inc4
-rw-r--r--meta-uhmi/recipes-kernel/virtio-loopback-driver/virtio-loopback-driver.inc2
-rw-r--r--meta-uhmi/recipes-platform/packagegroups/packagegroup-ddfw-agl.bb11
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 \
+"