diff options
author | Scott Murray <scott.murray@konsulko.com> | 2024-05-12 15:28:59 -0400 |
---|---|---|
committer | Jan-Simon Moeller <jsmoeller@linuxfoundation.org> | 2024-05-29 10:27:17 +0000 |
commit | 2f6a12454e558f79f24d4f76bf9c6a16590a5bca (patch) | |
tree | 84292c448f31b2ba5d0f8dc59948efdb1e0fbf26 /meta-agl-kvm-demo/recipes-graphics | |
parent | 18058d1ed6ed4235505870067837a26a4864a117 (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')
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" |