aboutsummaryrefslogtreecommitdiffstats
path: root/meta-agl-kvm-demo/recipes-graphics
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2024-05-12 15:28:59 -0400
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2024-05-29 10:27:17 +0000
commit2f6a12454e558f79f24d4f76bf9c6a16590a5bca (patch)
tree84292c448f31b2ba5d0f8dc59948efdb1e0fbf26 /meta-agl-kvm-demo/recipes-graphics
parent18058d1ed6ed4235505870067837a26a4864a117 (diff)
Rework KVM demo configuration
Changes: - Move KVM demo configuration and image recipes to a new sub-layer, meta-agl-kvm-demo, to keep things that may not be buildable with just the agl-demo feature separate to avoid confusion. It will hopefully also avoid clutter in recipes-platform/images. This sub-layer is pulled in when the agl-kvm setup feature is given to aglsetup.sh. - Remove the agl-kvm-host-kuksa and agl-kvm-host-audio setup features. - Add new *-guest and *-guest-preconfigured flavors of the Flutter IVI and IC images under meta-agl-kvm-demo that that have the desired configuration changes baked in. - Add required qemu-config recipe variants for the new guest image flavors. At the moment there is more duplication of configuration for this than is desired, and some reworking of agl-qemu-runner configuration may come as a follow up to avoid this. - Remove qemu-config recipe variants for unused Qt guest images. If it becomes desirable to use the Qt demo images as guests this can be revisited. - Added agl-kvm-demo-flutter-preconfigured image variant that supports the full demo setup (i.e. "green machine" with steering wheel, equivalent to CES 2024 demos). NOTES: - The agl-kvm-demo image remains and builds roughly the same image as before, with the KUKSA.val databroker running in the IVI guest and cluster support enabled. Replacing this image with a bbclass abstraction and an e.g. agl-kvm-demo-flutter image is under consideration. Bug-AGL: SPEC-5138 Change-Id: I64936208fd032e5ba47366e3a7ff572dc18338e4 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl-demo/+/29905 Tested-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org> Reviewed-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
Diffstat (limited to 'meta-agl-kvm-demo/recipes-graphics')
-rw-r--r--meta-agl-kvm-demo/recipes-graphics/wayland/weston-ini-conf.bbappend1
-rw-r--r--meta-agl-kvm-demo/recipes-graphics/wayland/weston-ini-conf/weston.ini.kvm.in18
-rw-r--r--meta-agl-kvm-demo/recipes-graphics/wayland/weston-ini-conf_agldemo.inc66
3 files changed, 85 insertions, 0 deletions
diff --git a/meta-agl-kvm-demo/recipes-graphics/wayland/weston-ini-conf.bbappend b/meta-agl-kvm-demo/recipes-graphics/wayland/weston-ini-conf.bbappend
new file mode 100644
index 000000000..423a46944
--- /dev/null
+++ b/meta-agl-kvm-demo/recipes-graphics/wayland/weston-ini-conf.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'agldemo', 'weston-ini-conf_agldemo.inc', '', d)}
diff --git a/meta-agl-kvm-demo/recipes-graphics/wayland/weston-ini-conf/weston.ini.kvm.in b/meta-agl-kvm-demo/recipes-graphics/wayland/weston-ini-conf/weston.ini.kvm.in
new file mode 100644
index 000000000..3369853f4
--- /dev/null
+++ b/meta-agl-kvm-demo/recipes-graphics/wayland/weston-ini-conf/weston.ini.kvm.in
@@ -0,0 +1,18 @@
+[core]
+backend=drm-backend.so
+require-input=false
+modules=systemd-notify.so
+
+[shell]
+locking=true
+panel-position=none
+
+# A display is connected to HDMI-A-1
+[output]
+name=HDMI-A-1
+agl-shell-app-id=@GUEST_VM1_ID@
+
+# A display is connected to HDMI-A-2
+[output]
+name=HDMI-A-2
+agl-shell-app-id=@GUEST_VM2_ID@
diff --git a/meta-agl-kvm-demo/recipes-graphics/wayland/weston-ini-conf_agldemo.inc b/meta-agl-kvm-demo/recipes-graphics/wayland/weston-ini-conf_agldemo.inc
new file mode 100644
index 000000000..28f871a8d
--- /dev/null
+++ b/meta-agl-kvm-demo/recipes-graphics/wayland/weston-ini-conf_agldemo.inc
@@ -0,0 +1,66 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/weston-ini-conf:"
+
+SRC_URI += "file://weston.ini.kvm.in"
+
+REMOTING_KVM_OUTPUT_HOST ?= "172.16.10.3"
+
+# Default app IDs for KVM guests
+GUEST_VM1_ID ?= "agl-ivi-demo"
+GUEST_VM2_ID ?= "agl-cluster-demo"
+
+do_configure:append() {
+ # KVM guest cluster version
+ sed -e "s#host=.*#host=${REMOTING_KVM_OUTPUT_HOST}#" \
+ -e "s#port=.*#port=${REMOTING_OUTPUT_PORT}#" \
+ ${WORKDIR}/remote-output.cfg.in > ${WORKDIR}/remote-output-kvm.cfg
+}
+
+do_compile:append() {
+ # Create KVM remoting enabled versions of the default portrait
+ # and landscape demo IVI configurations
+ for c in weston.ini.default weston.ini.landscape; do
+ cp ${WORKDIR}/$c ${WORKDIR}/${c}-remoting-kvm
+ echo >> ${WORKDIR}/${c}-remoting-kvm
+ cat ${WORKDIR}/remote-output-kvm.cfg >> ${WORKDIR}/${c}-remoting-kvm
+ done
+
+ # Create a canned configuration for the a KVM host, filling in
+ # the guest VM application ids to pin them to specific outputs.
+ rm -f ${WORKDIR}/weston.ini.kvm
+ sed -e "s/@GUEST_VM1_ID@/${GUEST_VM1_ID}/g" \
+ -e "s/@GUEST_VM2_ID@/${GUEST_VM2_ID}/g" \
+ ${WORKDIR}/weston.ini.kvm.in > ${WORKDIR}/weston.ini.kvm
+}
+
+do_install:append() {
+ install -m 0644 ${WORKDIR}/weston.ini.default-remoting-kvm ${D}${weston_ini_dir}/
+ install -m 0644 ${WORKDIR}/weston.ini.landscape-remoting-kvm ${D}${weston_ini_dir}/
+ install -m 0644 ${WORKDIR}/weston.ini.kvm ${D}${weston_ini_dir}/
+}
+
+# remoting-kvm
+
+PACKAGE_BEFORE_PN += "${PN}-remoting-kvm"
+FILES:${PN}-remoting-kvm = "${weston_ini_dir}/weston.ini.default-remoting-kvm"
+RPROVIDES:${PN}-remoting-kvm = "weston-ini"
+ALTERNATIVE:${PN}-remoting-kvm = "weston.ini"
+ALTERNATIVE_TARGET_${PN}-remoting-kvm = "${weston_ini_dir}/weston.ini.default-remoting-kvm"
+ALTERNATIVE_PRIORITY_${PN}-remoting-kvm = "35"
+
+# landscape-remoting-kvm
+
+PACKAGE_BEFORE_PN += "${PN}-landscape-remoting-kvm"
+FILES:${PN}-landscape-remoting-kvm = "${weston_ini_dir}/weston.ini.landscape-remoting-kvm"
+RPROVIDES:${PN}-landscape-remoting-kvm = "weston-ini"
+ALTERNATIVE:${PN}-landscape-remoting-kvm = "weston.ini"
+ALTERNATIVE_TARGET_${PN}-landscape-remoting-kvm = "${weston_ini_dir}/weston.ini.landscape-remoting-kvm"
+ALTERNATIVE_PRIORITY_${PN}-landscape-remoting-kvm = "36"
+
+# kvm
+
+PACKAGE_BEFORE_PN += "${PN}-kvm"
+FILES:${PN}-kvm = "${weston_ini_dir}/weston.ini.kvm"
+RPROVIDES:${PN}-kvm = "weston-ini"
+ALTERNATIVE:${PN}-kvm = "weston.ini"
+ALTERNATIVE_TARGET_${PN}-kvm = "${weston_ini_dir}/weston.ini.kvm"
+ALTERNATIVE_PRIORITY_${PN}-kvm = "40"