Add generic graphic output over rdp 91/29991/1
authorJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Fri, 14 Jun 2024 19:49:04 +0000 (19:49 +0000)
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Fri, 14 Jun 2024 21:34:51 +0000 (21:34 +0000)
This option enables an rdp server for one primary display.
It is intended to be used e.g. with the aws-ec2-x86-64 or
aws-ec2-arm64 machines in the first place but can be useful
for debugging purposes for local setup as well.

Bug-AGL: SPEC-5093

Change-Id: I2659628d389080ba382da3c7e5ec1286c2ed1286
Signed-off-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
meta-agl-rdp/conf/layer.conf [new file with mode: 0644]
meta-agl-rdp/recipes-graphics/wayland/agl-freerdp-sample-server-key/server.crt [new file with mode: 0644]
meta-agl-rdp/recipes-graphics/wayland/agl-freerdp-sample-server-key/server.key [new file with mode: 0644]
meta-agl-rdp/recipes-graphics/wayland/agl-freerdp-sample-server-key_1.1.bb [new file with mode: 0644]
meta-agl-rdp/recipes-graphics/wayland/weston-ini-conf.bbappend [new file with mode: 0644]
meta-agl-rdp/recipes-graphics/wayland/weston-ini-conf/rdp-standalone.cfg [new file with mode: 0644]
meta-agl-rdp/recipes-graphics/wayland/weston_%.bbappend [new file with mode: 0644]
templates/feature/agl-rdp/50_bblayers.conf.inc [new file with mode: 0644]
templates/feature/agl-rdp/50_local.conf.inc [new file with mode: 0644]

diff --git a/meta-agl-rdp/conf/layer.conf b/meta-agl-rdp/conf/layer.conf
new file mode 100644 (file)
index 0000000..3802d5a
--- /dev/null
@@ -0,0 +1,12 @@
+# 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 += "meta-aglrdp"
+BBFILE_PATTERN_meta-aglrdp = "^${LAYERDIR}/"
+BBFILE_PRIORITY_meta-aglrdp = "8"
+
+LAYERSERIES_COMPAT_meta-aglrdp= "scarthgap"
diff --git a/meta-agl-rdp/recipes-graphics/wayland/agl-freerdp-sample-server-key/server.crt b/meta-agl-rdp/recipes-graphics/wayland/agl-freerdp-sample-server-key/server.crt
new file mode 100644 (file)
index 0000000..4205cfd
Binary files /dev/null and b/meta-agl-rdp/recipes-graphics/wayland/agl-freerdp-sample-server-key/server.crt differ
diff --git a/meta-agl-rdp/recipes-graphics/wayland/agl-freerdp-sample-server-key/server.key b/meta-agl-rdp/recipes-graphics/wayland/agl-freerdp-sample-server-key/server.key
new file mode 100644 (file)
index 0000000..81d963b
Binary files /dev/null and b/meta-agl-rdp/recipes-graphics/wayland/agl-freerdp-sample-server-key/server.key differ
diff --git a/meta-agl-rdp/recipes-graphics/wayland/agl-freerdp-sample-server-key_1.1.bb b/meta-agl-rdp/recipes-graphics/wayland/agl-freerdp-sample-server-key_1.1.bb
new file mode 100644 (file)
index 0000000..c166636
--- /dev/null
@@ -0,0 +1,18 @@
+DESCRIPTION = "Sample key files for the freerdp server"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+SRC_URI = " file://server.crt file://server.key "
+
+FILES:${PN} = "/etc/xdg/weston/server.crt /etc/xdg/weston/server.key"
+
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+
+do_install () {
+
+    install -d ${D}/etc/xdg/weston
+    install -m 0644 ${WORKDIR}/server.crt ${D}/etc/xdg/weston/server.crt
+    install -m 0644 ${WORKDIR}/server.key ${D}/etc/xdg/weston/server.key
+
+}
diff --git a/meta-agl-rdp/recipes-graphics/wayland/weston-ini-conf.bbappend b/meta-agl-rdp/recipes-graphics/wayland/weston-ini-conf.bbappend
new file mode 100644 (file)
index 0000000..e385c50
--- /dev/null
@@ -0,0 +1,15 @@
+FILESEXTRAPATHS:prepend:agl-rdp := "${THISDIR}/${PN}:"
+
+SRC_URI:prepend:agl-rdp = " file://rdp-standalone.cfg "
+
+WESTON_DISPLAYS:agl-rdp = " "
+WESTON_FRAGMENTS:agl-rdp = " rdp-standalone "
+
+# sample keys
+AGL_FREERDP_DEFAULT_KEYS ?= "agl-freerdp-sample-server-key"
+AGL_FREERDP_DEPENDENCY ?= "${AGL_FREERDP_DEFAULT_KEYS}"
+RDEPENDS:${PN}:append:agl-rdp = " ${AGL_FREERDP_DEPENDENCY} "
+
+# the key tools need to be on-target (for now)
+RDEPENDS:${PN}:agl-rdp += " freerdp "
+
diff --git a/meta-agl-rdp/recipes-graphics/wayland/weston-ini-conf/rdp-standalone.cfg b/meta-agl-rdp/recipes-graphics/wayland/weston-ini-conf/rdp-standalone.cfg
new file mode 100644 (file)
index 0000000..50555b6
--- /dev/null
@@ -0,0 +1,15 @@
+[core]
+backend=rdp-backend.so
+require-input=false
+idle-time=0
+modules=systemd-notify.so
+activate-by-default=false
+
+[rdp]
+tls-key=/etc/xdg/weston/server.key
+tls-cert=/etc/xdg/weston/server.crt
+# change with/height for demo
+width=1080
+height=1920
+# transform not working in weston10
+#transform=rotate-90
diff --git a/meta-agl-rdp/recipes-graphics/wayland/weston_%.bbappend b/meta-agl-rdp/recipes-graphics/wayland/weston_%.bbappend
new file mode 100644 (file)
index 0000000..a9b96c7
--- /dev/null
@@ -0,0 +1,2 @@
+# remote display setup
+PACKAGECONFIG:append:agl-rdp = " rdp"
diff --git a/templates/feature/agl-rdp/50_bblayers.conf.inc b/templates/feature/agl-rdp/50_bblayers.conf.inc
new file mode 100644 (file)
index 0000000..4a34bd7
--- /dev/null
@@ -0,0 +1,3 @@
+BBLAYERS =+ " \
+  ${METADIR}/meta-agl-devel/meta-agl-rdp \
+"
diff --git a/templates/feature/agl-rdp/50_local.conf.inc b/templates/feature/agl-rdp/50_local.conf.inc
new file mode 100644 (file)
index 0000000..20f12ee
--- /dev/null
@@ -0,0 +1 @@
+OVERRIDES:append = ":agl-rdp"