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 | |
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>
49 files changed, 253 insertions, 213 deletions
diff --git a/meta-agl-kvm-demo/conf/layer.conf b/meta-agl-kvm-demo/conf/layer.conf new file mode 100644 index 000000000..0799d4f4e --- /dev/null +++ b/meta-agl-kvm-demo/conf/layer.conf @@ -0,0 +1,15 @@ +# 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-kvm-demo-layer" +BBFILE_PATTERN_agl-kvm-demo-layer = "^${LAYERDIR}/" +BBFILE_PRIORITY_agl-kvm-demo-layer = "70" + +LAYERSERIES_COMPAT_agl-kvm-demo-layer = "kirkstone" + +LAYERDEPENDS_agl-kvm-demo-layer = "agldemo" + diff --git a/recipes-config/qemu-config/files/agl-cluster-demo-flutter.conf b/meta-agl-kvm-demo/recipes-config/qemu-config/files/agl-cluster-demo-flutter-guest-preconfigured.conf index 99d1f10c9..37003abde 100644 --- a/recipes-config/qemu-config/files/agl-cluster-demo-flutter.conf +++ b/meta-agl-kvm-demo/recipes-config/qemu-config/files/agl-cluster-demo-flutter-guest-preconfigured.conf @@ -3,3 +3,4 @@ QEMU_SMP_OPT="-smp 2" QEMU_MEM_OPT="-m 1G" QEMU_NET_OPT="-netdev bridge,br=vmnet0,id=net0 -device virtio-net-device,mac=52:54:00:12:00:03,netdev=net0" QEMU_KERNEL_CMDLINE_APPEND="root=/dev/vda rw mem=2048M video=Virtual-1:1920x1080" +QEMU_XDG_APP_ID="agl-cluster-demo" diff --git a/recipes-config/qemu-config/files/agl-cluster-demo-qt.conf b/meta-agl-kvm-demo/recipes-config/qemu-config/files/agl-cluster-demo-flutter-guest.conf index 1ecefc477..37003abde 100644 --- a/recipes-config/qemu-config/files/agl-cluster-demo-qt.conf +++ b/meta-agl-kvm-demo/recipes-config/qemu-config/files/agl-cluster-demo-flutter-guest.conf @@ -1,5 +1,6 @@ QEMU_TASKSET_CPUS="4-7" -QEMU_SMP_OPT="-smp 4" -QEMU_MEM_OPT="-m 2G" +QEMU_SMP_OPT="-smp 2" +QEMU_MEM_OPT="-m 1G" QEMU_NET_OPT="-netdev bridge,br=vmnet0,id=net0 -device virtio-net-device,mac=52:54:00:12:00:03,netdev=net0" QEMU_KERNEL_CMDLINE_APPEND="root=/dev/vda rw mem=2048M video=Virtual-1:1920x1080" +QEMU_XDG_APP_ID="agl-cluster-demo" diff --git a/recipes-config/qemu-config/files/agl-ivi-demo-flutter.conf b/meta-agl-kvm-demo/recipes-config/qemu-config/files/agl-ivi-demo-flutter-guest-preconfigured.conf index 7ff32bc18..c2d420eb6 100644 --- a/recipes-config/qemu-config/files/agl-ivi-demo-flutter.conf +++ b/meta-agl-kvm-demo/recipes-config/qemu-config/files/agl-ivi-demo-flutter-guest-preconfigured.conf @@ -10,3 +10,4 @@ QEMU_AUDIO_OPT="-audiodev alsa,id=agl -device intel-hda -device hda-duplex,audio QEMU_NET_OPT="-netdev bridge,br=vmnet0,id=net0 -device virtio-net-device,mac=52:54:00:12:00:02,netdev=net0" QEMU_CAN_OPT="-object can-bus,id=canbus0 -object can-host-socketcan,id=canhost0,if=can0,canbus=canbus0 -device kvaser_pci,canbus=canbus0" QEMU_KERNEL_CMDLINE_APPEND="root=/dev/vda rw mem=4196M video=Virtual-1:1920x1080" +QEMU_XDG_APP_ID="agl-ivi-demo" diff --git a/recipes-config/qemu-config/files/agl-ivi-demo-qt.conf b/meta-agl-kvm-demo/recipes-config/qemu-config/files/agl-ivi-demo-flutter-guest.conf index 7ff32bc18..c2d420eb6 100644 --- a/recipes-config/qemu-config/files/agl-ivi-demo-qt.conf +++ b/meta-agl-kvm-demo/recipes-config/qemu-config/files/agl-ivi-demo-flutter-guest.conf @@ -10,3 +10,4 @@ QEMU_AUDIO_OPT="-audiodev alsa,id=agl -device intel-hda -device hda-duplex,audio QEMU_NET_OPT="-netdev bridge,br=vmnet0,id=net0 -device virtio-net-device,mac=52:54:00:12:00:02,netdev=net0" QEMU_CAN_OPT="-object can-bus,id=canbus0 -object can-host-socketcan,id=canhost0,if=can0,canbus=canbus0 -device kvaser_pci,canbus=canbus0" QEMU_KERNEL_CMDLINE_APPEND="root=/dev/vda rw mem=4196M video=Virtual-1:1920x1080" +QEMU_XDG_APP_ID="agl-ivi-demo" diff --git a/recipes-config/qemu-config/files/bridge.conf b/meta-agl-kvm-demo/recipes-config/qemu-config/files/bridge.conf index 72c73f39f..72c73f39f 100644 --- a/recipes-config/qemu-config/files/bridge.conf +++ b/meta-agl-kvm-demo/recipes-config/qemu-config/files/bridge.conf diff --git a/recipes-config/qemu-config/files/connman-nodnsproxy.conf b/meta-agl-kvm-demo/recipes-config/qemu-config/files/connman-nodnsproxy.conf index 9d7f74b8f..9d7f74b8f 100644 --- a/recipes-config/qemu-config/files/connman-nodnsproxy.conf +++ b/meta-agl-kvm-demo/recipes-config/qemu-config/files/connman-nodnsproxy.conf diff --git a/recipes-config/qemu-config/files/dnsmasq-qemu.conf b/meta-agl-kvm-demo/recipes-config/qemu-config/files/dnsmasq-qemu.conf index 4ab6ee3bf..4ab6ee3bf 100644 --- a/recipes-config/qemu-config/files/dnsmasq-qemu.conf +++ b/meta-agl-kvm-demo/recipes-config/qemu-config/files/dnsmasq-qemu.conf diff --git a/recipes-config/qemu-config/files/vmnet0.netdev b/meta-agl-kvm-demo/recipes-config/qemu-config/files/vmnet0.netdev index e25453174..e25453174 100644 --- a/recipes-config/qemu-config/files/vmnet0.netdev +++ b/meta-agl-kvm-demo/recipes-config/qemu-config/files/vmnet0.netdev diff --git a/recipes-config/qemu-config/files/vmnet0.network b/meta-agl-kvm-demo/recipes-config/qemu-config/files/vmnet0.network index 600f8ac01..600f8ac01 100644 --- a/recipes-config/qemu-config/files/vmnet0.network +++ b/meta-agl-kvm-demo/recipes-config/qemu-config/files/vmnet0.network diff --git a/meta-agl-kvm-demo/recipes-config/qemu-config/qemu-config-agl-cluster-demo-flutter-guest-preconfigured.bb b/meta-agl-kvm-demo/recipes-config/qemu-config/qemu-config-agl-cluster-demo-flutter-guest-preconfigured.bb new file mode 100644 index 000000000..b58dcae6e --- /dev/null +++ b/meta-agl-kvm-demo/recipes-config/qemu-config/qemu-config-agl-cluster-demo-flutter-guest-preconfigured.bb @@ -0,0 +1,3 @@ +require qemu-config-agl-cluster-demo-flutter-guest.bb + +QEMU_IMAGE = "agl-cluster-demo-flutter-guest-preconfigured" diff --git a/recipes-config/qemu-config/qemu-config-agl-cluster-demo-flutter.bb b/meta-agl-kvm-demo/recipes-config/qemu-config/qemu-config-agl-cluster-demo-flutter-guest.bb index f0bc93fd3..96d95113f 100644 --- a/recipes-config/qemu-config/qemu-config-agl-cluster-demo-flutter.bb +++ b/meta-agl-kvm-demo/recipes-config/qemu-config/qemu-config-agl-cluster-demo-flutter-guest.bb @@ -9,7 +9,7 @@ SRC_URI = "file://${QEMU_IMAGE}.conf" do_configure[noexec] = "1" do_compile[noexec] = "1" -QEMU_IMAGE = "agl-cluster-demo-flutter" +QEMU_IMAGE = "agl-cluster-demo-flutter-guest" QEMU_UNIT = "agl-qemu-runner@${QEMU_IMAGE}.service" do_install() { diff --git a/meta-agl-kvm-demo/recipes-config/qemu-config/qemu-config-agl-ivi-demo-flutter-guest-preconfigured.bb b/meta-agl-kvm-demo/recipes-config/qemu-config/qemu-config-agl-ivi-demo-flutter-guest-preconfigured.bb new file mode 100644 index 000000000..642876b5a --- /dev/null +++ b/meta-agl-kvm-demo/recipes-config/qemu-config/qemu-config-agl-ivi-demo-flutter-guest-preconfigured.bb @@ -0,0 +1,3 @@ +require qemu-config-agl-ivi-demo-flutter-guest.bb + +QEMU_IMAGE = "agl-ivi-demo-flutter-guest-preconfigured" diff --git a/recipes-config/qemu-config/qemu-config-agl-ivi-demo-flutter.bb b/meta-agl-kvm-demo/recipes-config/qemu-config/qemu-config-agl-ivi-demo-flutter-guest.bb index a9f2be43a..cfab8b1a7 100644 --- a/recipes-config/qemu-config/qemu-config-agl-ivi-demo-flutter.bb +++ b/meta-agl-kvm-demo/recipes-config/qemu-config/qemu-config-agl-ivi-demo-flutter-guest.bb @@ -9,7 +9,7 @@ SRC_URI = "file://${QEMU_IMAGE}.conf" do_configure[noexec] = "1" do_compile[noexec] = "1" -QEMU_IMAGE = "agl-ivi-demo-flutter" +QEMU_IMAGE = "agl-ivi-demo-flutter-guest" QEMU_UNIT = "agl-qemu-runner@${QEMU_IMAGE}.service" do_install() { diff --git a/recipes-config/qemu-config/qemu-config-vmnet0.bb b/meta-agl-kvm-demo/recipes-config/qemu-config/qemu-config-vmnet0.bb index a5a12982e..a5a12982e 100644 --- a/recipes-config/qemu-config/qemu-config-vmnet0.bb +++ b/meta-agl-kvm-demo/recipes-config/qemu-config/qemu-config-vmnet0.bb diff --git a/recipes-extended/agl-qemu-runner/agl-qemu-runner.bb b/meta-agl-kvm-demo/recipes-extended/agl-qemu-runner/agl-qemu-runner.bb index b3e3a67dd..b3e3a67dd 100644 --- a/recipes-extended/agl-qemu-runner/agl-qemu-runner.bb +++ b/meta-agl-kvm-demo/recipes-extended/agl-qemu-runner/agl-qemu-runner.bb diff --git a/recipes-extended/agl-qemu-runner/files/agl-qemu-runner.sh b/meta-agl-kvm-demo/recipes-extended/agl-qemu-runner/files/agl-qemu-runner.sh index ab3a02c91..f0136b6d5 100755 --- a/recipes-extended/agl-qemu-runner/files/agl-qemu-runner.sh +++ b/meta-agl-kvm-demo/recipes-extended/agl-qemu-runner/files/agl-qemu-runner.sh @@ -43,8 +43,9 @@ export XDG_RUNTIME_DIR=/run/user/1001 #export WAYLAND_DISPLAY=wayland-1 # This sets the XDG app id, which we need for setting outputs with -# agl-compositor -export SDL_VIDEO_WAYLAND_WMCLASS="${image}" +# agl-compositor. If QEMU_XDG_APP_ID is not set, the image name +# is used. +export SDL_VIDEO_WAYLAND_WMCLASS="${QEMU_XDG_APP_ID:-${image}}" ${TASKSET_CMD} \ qemu-system-${arch} \ diff --git a/recipes-extended/agl-qemu-runner/files/agl-qemu-runner@.service b/meta-agl-kvm-demo/recipes-extended/agl-qemu-runner/files/agl-qemu-runner@.service index d19c529f0..d19c529f0 100644 --- a/recipes-extended/agl-qemu-runner/files/agl-qemu-runner@.service +++ b/meta-agl-kvm-demo/recipes-extended/agl-qemu-runner/files/agl-qemu-runner@.service 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/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 index 79ca30cd4..3369853f4 100644 --- a/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 @@ -10,9 +10,9 @@ panel-position=none # A display is connected to HDMI-A-1 [output] name=HDMI-A-1 -agl-shell-app-id=@GUEST_VM1_IMAGE@ +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_IMAGE@ +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" diff --git a/meta-agl-kvm-demo/recipes-platform/images/agl-cluster-demo-flutter-guest-preconfigured.bb b/meta-agl-kvm-demo/recipes-platform/images/agl-cluster-demo-flutter-guest-preconfigured.bb new file mode 100644 index 000000000..d5c8fcec2 --- /dev/null +++ b/meta-agl-kvm-demo/recipes-platform/images/agl-cluster-demo-flutter-guest-preconfigured.bb @@ -0,0 +1,12 @@ +require agl-cluster-demo-flutter-guest.bb + +SUMMARY = "AGL KVM demo guest preconfigured cluster Flutter image" + +# The cluster screen is rotated in the full demo setup, so the +# default compositor configuration needs to be replaced. +IMAGE_INSTALL:remove = "weston-ini-conf-landscape" + +IMAGE_INSTALL += " \ + psplash-inverted-config \ + weston-ini-conf-landscape-inverted \ +" diff --git a/meta-agl-kvm-demo/recipes-platform/images/agl-cluster-demo-flutter-guest.bb b/meta-agl-kvm-demo/recipes-platform/images/agl-cluster-demo-flutter-guest.bb new file mode 100644 index 000000000..3cde0d07b --- /dev/null +++ b/meta-agl-kvm-demo/recipes-platform/images/agl-cluster-demo-flutter-guest.bb @@ -0,0 +1,8 @@ +require recipes-platform/images/agl-cluster-demo-flutter.bb + +SUMMARY = "AGL KVM demo guest cluster Flutter image" + +# We do not want a local databroker instance +IMAGE_FEATURES:remove = "kuksa-val-databroker" + +FLUTTER_CLUSTER_DASHBOARD_CONF = "flutter-cluster-dashboard-conf-kvm-demo" diff --git a/meta-agl-kvm-demo/recipes-platform/images/agl-ivi-demo-flutter-guest-preconfigured.bb b/meta-agl-kvm-demo/recipes-platform/images/agl-ivi-demo-flutter-guest-preconfigured.bb new file mode 100644 index 000000000..a98cb5887 --- /dev/null +++ b/meta-agl-kvm-demo/recipes-platform/images/agl-ivi-demo-flutter-guest-preconfigured.bb @@ -0,0 +1,12 @@ +require agl-ivi-demo-flutter-guest.bb + +SUMMARY = "AGL KVM demo preconfigured guest IVI Flutter image" + +# KUKSA.val always runs externally +IMAGE_FEATURES:remove = "kuksa-val-databroker" + +# Everything runs on the host for now +PLATFORM_SERVICES_INSTALL = "" + +# We do not want weston-terminal visible +IMAGE_INSTALL:remove = "weston-terminal-conf" diff --git a/meta-agl-kvm-demo/recipes-platform/images/agl-ivi-demo-flutter-guest.bb b/meta-agl-kvm-demo/recipes-platform/images/agl-ivi-demo-flutter-guest.bb new file mode 100644 index 000000000..f6e748bfd --- /dev/null +++ b/meta-agl-kvm-demo/recipes-platform/images/agl-ivi-demo-flutter-guest.bb @@ -0,0 +1,14 @@ +require recipes-platform/images/agl-ivi-demo-flutter.bb + +SUMMARY = "AGL KVM demo guest IVI Flutter image" + +# We assume there's always a cluster in the KVM demo +IMAGE_FEATURES += "agl-demo-cluster-support" + +FLUTTER_ICS_HOMESCREEN_CONF = "flutter-ics-homescreen-conf-kvm-demo" +ONDEMANDNAVI_CONF = "ondemandnavi-conf-kvm-demo" +TBTNAVI_CONF = "tbtnavi-conf-kvm-demo" + +IMAGE_INSTALL += " \ + weston-ini-conf-remoting-kvm \ +" diff --git a/meta-agl-kvm-demo/recipes-platform/images/agl-kvm-demo-flutter-preconfigured.bb b/meta-agl-kvm-demo/recipes-platform/images/agl-kvm-demo-flutter-preconfigured.bb new file mode 100644 index 000000000..9b02c68ce --- /dev/null +++ b/meta-agl-kvm-demo/recipes-platform/images/agl-kvm-demo-flutter-preconfigured.bb @@ -0,0 +1,38 @@ +LICENSE = "MIT" + +require agl-kvm-demo.bb + +SUMMARY = "AGL KVM+QEMU preconfigured Flutter demo image" + +# If building with "agl-kvm-host-kuksa", the databroker and likely +# some clients run on the host +IMAGE_FEATURES += " \ + kuksa-val-databroker \ + kuksa-val-databroker-client \ +" + +# Until virtio sound is workable with QEMU, run the audio using +# services on the host for a better demo experience. At the +# moment, this also includes the HVAC service since it does not +# make sense to try to make things more fine-grained with respect +# to configuration for where things expect to find the databroker. +# It will need to be revisited when virtio-snd, virtio-gpio, etc. +# become feasible to use. +HOST_AUDIO_INSTALL = " \ + packagegroup-agl-ivi-services-platform \ + packagegroup-agl-ivi-multimedia-platform \ + agl-service-radio-conf-kvm-demo \ + packagegroup-pipewire \ + wireplumber-config-agl \ + wireplumber-policy-config-agl \ + udisks2 \ + ${@bb.utils.contains("DISTRO_FEATURES", "agl-devel", "packagegroup-pipewire-tools mpc" , "", d)} \ +" + +IMAGE_INSTALL += "\ + kuksa-databroker-agl-demo-cluster \ + ${HOST_AUDIO_INSTALL} \ +" + +GUEST_VM1_IMAGE = "agl-ivi-demo-flutter-guest-preconfigured" +GUEST_VM2_IMAGE = "agl-cluster-demo-flutter-guest-preconfigured" diff --git a/recipes-platform/images/agl-kvm-demo.bb b/meta-agl-kvm-demo/recipes-platform/images/agl-kvm-demo.bb index c27757005..33f2b921f 100644 --- a/recipes-platform/images/agl-kvm-demo.bb +++ b/meta-agl-kvm-demo/recipes-platform/images/agl-kvm-demo.bb @@ -1,15 +1,12 @@ -SUMMARY = "AGL KVM+QEMU Demo Platform image." +SUMMARY = "AGL KVM+QEMU demo image" LICENSE = "MIT" require recipes-platform/images/agl-image-compositor.bb -require agl-demo-features.inc +require recipes-platform/images/agl-demo-features.inc IMAGE_FEATURES += "splash package-management ssh-server-openssh" -# If building with "agl-kvm-host-kuksa", the databroker and likely -# some clients run on the host IMAGE_FEATURES += " \ - ${@bb.utils.contains("AGL_FEATURES", "agl-kvm-host-kuksa", "kuksa-val-databroker kuksa-val-databroker-client", "", d)} \ ${@bb.utils.contains("DISTRO_FEATURES", "agl-devel", "can-test-tools" , "", d)} \ " @@ -29,37 +26,14 @@ IMAGE_INSTALL += " \ alsa-utils \ " -# Until virtio sound is workable with QEMU, run the audio using -# services on the host for a better demo experience. At the -# moment, this also includes the HVAC service since it does not -# make sense to try to make things more fine-grained with respect -# to configuration for where things expect to find the databroker. -# It will need to be revisited when virtio-snd, virtio-gpio, etc. -# become feasible to use. -HOST_AUDIO_INSTALL = " \ - packagegroup-agl-ivi-services-platform \ - agl-service-radio-conf-kvm-demo \ - packagegroup-pipewire \ - wireplumber-config-agl \ - wireplumber-policy-config-agl \ - mpd \ - udisks2 \ - ${@bb.utils.contains("DISTRO_FEATURES", "agl-devel", "packagegroup-pipewire-tools mpc" , "", d)} \ -" - -IMAGE_INSTALL += "\ - ${@bb.utils.contains("AGL_FEATURES", "agl-kvm-host-kuksa", "kuksa-databroker-agl-demo-cluster", "", d)} \ - ${@bb.utils.contains("AGL_FEATURES", "agl-kvm-host-audio", "${HOST_AUDIO_INSTALL}", "", d)} \ -" - # Potential size reduction options #IMAGE_LINGUAS = " " #NO_RECOMMENDATIONS = "1" GUEST_MACHINE ?= "virtio-${TUNE_ARCH}" -GUEST_VM1_IMAGE ?= "agl-ivi-demo-flutter" -GUEST_VM2_IMAGE ?= "agl-cluster-demo-flutter" +GUEST_VM1_IMAGE ?= "agl-ivi-demo-flutter-guest" +GUEST_VM2_IMAGE ?= "agl-cluster-demo-flutter-guest" GUEST_IMAGES ?= "agl-kvm-guest:${GUEST_VM1_IMAGE} agl-kvm-guest:${GUEST_VM2_IMAGE}" diff --git a/recipes-config/qemu-config/qemu-config-agl-cluster-demo-qt.bb b/recipes-config/qemu-config/qemu-config-agl-cluster-demo-qt.bb deleted file mode 100644 index e22e40271..000000000 --- a/recipes-config/qemu-config/qemu-config-agl-cluster-demo-qt.bb +++ /dev/null @@ -1,29 +0,0 @@ -SUMMARY = "Setting files for agl-cluster-demo-plaform guest VM" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" - -inherit systemd allarch - -SRC_URI = "file://${QEMU_IMAGE}.conf" - -do_configure[noexec] = "1" -do_compile[noexec] = "1" - -QEMU_IMAGE = "agl-cluster-demo-qt" -QEMU_UNIT = "agl-qemu-runner@${QEMU_IMAGE}.service" - -do_install() { - # Install template unit links - install -d ${D}${systemd_system_unitdir} - ln -sf agl-qemu-runner@.service ${D}${systemd_system_unitdir}/${QEMU_UNIT} - install -d ${D}${systemd_system_unitdir}/multi-user.target.wants - ln -sf ${systemd_system_unitdir}/${QEMU_UNIT} ${D}${systemd_system_unitdir}/multi-user.target.wants/${QEMU_UNIT} - - # Install conf file - install -d ${D}${sysconfdir}/agl-qemu-runner - install -m 0644 ${WORKDIR}/${QEMU_IMAGE}.conf ${D}${sysconfdir}/agl-qemu-runner/ -} - -FILES:${PN} += "${systemd_system_unitdir}" - -RDEPENDS:${PN} += "agl-qemu-runner qemu-config-vmnet0" diff --git a/recipes-config/qemu-config/qemu-config-agl-ivi-demo-qt.bb b/recipes-config/qemu-config/qemu-config-agl-ivi-demo-qt.bb deleted file mode 100644 index 46e043c05..000000000 --- a/recipes-config/qemu-config/qemu-config-agl-ivi-demo-qt.bb +++ /dev/null @@ -1,29 +0,0 @@ -SUMMARY = "Setting files for agl-demo-plaform guest VM" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" - -inherit systemd allarch - -SRC_URI = "file://${QEMU_IMAGE}.conf" - -do_configure[noexec] = "1" -do_compile[noexec] = "1" - -QEMU_IMAGE = "agl-ivi-demo-qt" -QEMU_UNIT = "agl-qemu-runner@${QEMU_IMAGE}.service" - -do_install() { - # Install template unit links - install -d ${D}${systemd_system_unitdir} - ln -sf agl-qemu-runner@.service ${D}${systemd_system_unitdir}/${QEMU_UNIT} - install -d ${D}${systemd_system_unitdir}/multi-user.target.wants - ln -sf ${systemd_system_unitdir}/${QEMU_UNIT} ${D}${systemd_system_unitdir}/multi-user.target.wants/${QEMU_UNIT} - - # Install conf file - install -d ${D}${sysconfdir}/agl-qemu-runner - install -m 0644 ${WORKDIR}/${QEMU_IMAGE}.conf ${D}${sysconfdir}/agl-qemu-runner/ -} - -FILES:${PN} += "${systemd_system_unitdir}" - -RDEPENDS:${PN} += "agl-qemu-runner qemu-config-vmnet0" diff --git a/recipes-demo/flutter-cluster-dashboard/files/cluster-dashboard.yaml.kvm-demo b/recipes-demo/flutter-cluster-dashboard/files/cluster-dashboard.yaml.kvm-demo new file mode 100644 index 000000000..9267b4d40 --- /dev/null +++ b/recipes-demo/flutter-cluster-dashboard/files/cluster-dashboard.yaml.kvm-demo @@ -0,0 +1,4 @@ +hostname: 172.16.10.1 +authorization : "/etc/xdg/AGL/cluster-dashboard/cluster-dashboard.token" +use-tls : true +tls-server-name : "localhost" diff --git a/recipes-demo/flutter-cluster-dashboard/flutter-cluster-dashboard_git.bb b/recipes-demo/flutter-cluster-dashboard/flutter-cluster-dashboard_git.bb index 45cb5c449..4dac243d7 100644 --- a/recipes-demo/flutter-cluster-dashboard/flutter-cluster-dashboard_git.bb +++ b/recipes-demo/flutter-cluster-dashboard/flutter-cluster-dashboard_git.bb @@ -13,6 +13,7 @@ SRC_URI = "git://gerrit.automotivelinux.org/gerrit/apps/flutter-instrument-clust file://flutter_cluster_dashboard_on_bg.json \ file://cluster-dashboard.yaml \ file://cluster-dashboard.yaml.demo \ + file://cluster-dashboard.yaml.kvm-demo \ file://cluster-dashboard.token \ file://kvm.conf \ " @@ -28,8 +29,6 @@ FLUTTER_APPLICATION_INSTALL_PREFIX = "/flutter" inherit flutter-app update-alternatives systemd -CLUSTER_DEMO_VSS_HOSTNAME ??= "192.168.10.2" - APP_CONFIG = "flutter_cluster_dashboard_on_bg.json" SYSTEMD_SERVICE:${PN} = "flutter-cluster-dashboard.service" @@ -44,7 +43,7 @@ do_install:append() { install -d ${D}${sysconfdir}/xdg/AGL/cluster-dashboard install -m 0644 ${WORKDIR}/cluster-dashboard.yaml ${D}${sysconfdir}/xdg/AGL/cluster-dashboard.yaml.default install -m 0644 ${WORKDIR}/cluster-dashboard.yaml.demo ${D}${sysconfdir}/xdg/AGL/ - sed -i "s/^hostname: .*/hostname: ${CLUSTER_DEMO_VSS_HOSTNAME}/" ${D}${sysconfdir}/xdg/AGL/cluster-dashboard.yaml.demo + install -m 0644 ${WORKDIR}/cluster-dashboard.yaml.kvm-demo ${D}${sysconfdir}/xdg/AGL/ install -m 0644 ${WORKDIR}/cluster-dashboard.token ${D}${sysconfdir}/xdg/AGL/cluster-dashboard/ } @@ -54,7 +53,7 @@ FILES:${PN} += "${datadir} ${sysconfdir}/xdg/AGL" RDEPENDS:${PN} += "flutter-auto agl-flutter-env liberation-fonts" -PACKAGE_BEFORE_PN += "${PN}-conf ${PN}-conf-demo" +PACKAGE_BEFORE_PN += "${PN}-conf ${PN}-conf-demo ${PN}-conf-kvm-demo" FILES:${PN}-conf += "${sysconfdir}/xdg/AGL/cluster-dashboard.yaml.default" RDEPENDS:${PN}-conf = "${PN}" @@ -65,10 +64,19 @@ ALTERNATIVE_TARGET_${PN}-conf = "${sysconfdir}/xdg/AGL/cluster-dashboard.yaml.de FILES:${PN}-conf-demo += " \ ${sysconfdir}/xdg/AGL/cluster-dashboard.yaml.demo \ - ${systemd_system_unitdir}/flutter-cluster-dashboard.service.d/kvm.conf \ " RDEPENDS:${PN}-conf-demo = "${PN}" RPROVIDES:${PN}-conf-demo = "cluster-dashboard.yaml" RCONFLICTS:${PN}-conf-demo = "${PN}-conf" ALTERNATIVE:${PN}-conf-demo = "cluster-dashboard.yaml" ALTERNATIVE_TARGET_${PN}-conf-demo = "${sysconfdir}/xdg/AGL/cluster-dashboard.yaml.demo" + +FILES:${PN}-conf-kvm-demo += " \ + ${sysconfdir}/xdg/AGL/cluster-dashboard.yaml.kvm-demo \ + ${systemd_system_unitdir}/flutter-cluster-dashboard.service.d/kvm.conf \ +" +RDEPENDS:${PN}-conf-kvm-demo = "${PN}" +RPROVIDES:${PN}-conf-kvm-demo = "cluster-dashboard.yaml" +RCONFLICTS:${PN}-conf-kvm-demo = "${PN}-conf" +ALTERNATIVE:${PN}-conf-kvm-demo = "cluster-dashboard.yaml" +ALTERNATIVE_TARGET_${PN}-conf-kvm-demo = "${sysconfdir}/xdg/AGL/cluster-dashboard.yaml.kvm-demo" diff --git a/recipes-demo/flutter-ics-homescreen/flutter-ics-homescreen_git.bb b/recipes-demo/flutter-ics-homescreen/flutter-ics-homescreen_git.bb index 6dacebb57..1c99f6d6d 100644 --- a/recipes-demo/flutter-ics-homescreen/flutter-ics-homescreen_git.bb +++ b/recipes-demo/flutter-ics-homescreen/flutter-ics-homescreen_git.bb @@ -61,7 +61,6 @@ RDEPENDS:${PN} += " \ flutter-auto \ agl-flutter-env \ applaunchd \ - ${@bb.utils.contains('AGL_FEATURES', 'agl-kvm-host-audio', '', 'agl-service-radio mpd', d)} \ " PACKAGE_BEFORE_PN += "${PN}-conf ${PN}-conf-kvm-demo" diff --git a/recipes-demo/libqtappfw/libqtappfw_git.bb b/recipes-demo/libqtappfw/libqtappfw_git.bb index 85d20f41b..f4e360723 100644 --- a/recipes-demo/libqtappfw/libqtappfw_git.bb +++ b/recipes-demo/libqtappfw/libqtappfw_git.bb @@ -35,7 +35,6 @@ EXTRA_OEMESON += "-Dprotos=${STAGING_INCDIR}" RRECOMMENDS:${PN} += " \ bluez5 \ connman \ - ${@bb.utils.contains('AGL_FEATURES', 'agl-kvm-host-audio', '', 'mpd', d)} \ " BBCLASSEXTEND = "nativesdk" diff --git a/recipes-graphics/wayland/weston-ini-conf_agldemo.inc b/recipes-graphics/wayland/weston-ini-conf_agldemo.inc index 11818f686..14290b998 100644 --- a/recipes-graphics/wayland/weston-ini-conf_agldemo.inc +++ b/recipes-graphics/wayland/weston-ini-conf_agldemo.inc @@ -1,9 +1,6 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/weston-ini-conf:" -SRC_URI += " \ - file://remote-output.cfg.in \ - file://weston.ini.kvm.in \ -" +SRC_URI += "file://remote-output.cfg.in" # Options for the user to change in local.conf # e.g. REMOTING_OUTPUT_MODE = "1080x1488" @@ -11,49 +8,26 @@ REMOTING_OUTPUT_MODE ??= "640x720@30" REMOTING_OUTPUT_HOST ??= "192.168.10.3" REMOTING_OUTPUT_PORT ??= "5005" -# Default app IDs for KVM guests -GUEST_VM1_IMAGE ?= "agl-ivi-demo-flutter" -GUEST_VM2_IMAGE ?= "agl-cluster-demo-flutter" - do_configure:append() { # Standalone cluster support version sed -e "s#host=.*#host=${REMOTING_OUTPUT_HOST}#" \ -e "s#port=.*#port=${REMOTING_OUTPUT_PORT}#" \ ${WORKDIR}/remote-output.cfg.in > ${WORKDIR}/remote-output.cfg - - # KVM guest cluster version - sed -e "s#host=.*#host=172.16.10.3#" \ - -e "s#port=.*#port=${REMOTING_OUTPUT_PORT}#" \ - ${WORKDIR}/remote-output.cfg.in > ${WORKDIR}/remote-output-kvm.cfg } do_compile:append() { - # Create regular and KVM remoting enabled versions of the default - # portrait and landscape demo IVI configurations + # Create 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 echo >> ${WORKDIR}/${c}-remoting cat ${WORKDIR}/remote-output.cfg >> ${WORKDIR}/${c}-remoting - - 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_IMAGE}/g" \ - -e "s/@GUEST_VM2_ID@/${GUEST_VM2_IMAGE}/g" \ - ${WORKDIR}/weston.ini.kvm.in > ${WORKDIR}/weston.ini.kvm } do_install:append() { install -m 0644 ${WORKDIR}/weston.ini.default-remoting ${D}${weston_ini_dir}/ - install -m 0644 ${WORKDIR}/weston.ini.default-remoting-kvm ${D}${weston_ini_dir}/ install -m 0644 ${WORKDIR}/weston.ini.landscape-remoting ${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 @@ -65,15 +39,6 @@ ALTERNATIVE:${PN}-remoting = "weston.ini" ALTERNATIVE_TARGET_${PN}-remoting = "${weston_ini_dir}/weston.ini.default-remoting" ALTERNATIVE_PRIORITY_${PN}-remoting = "30" -# 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 PACKAGE_BEFORE_PN += "${PN}-landscape-remoting" @@ -82,21 +47,3 @@ RPROVIDES:${PN}-landscape-remoting = "weston-ini" ALTERNATIVE:${PN}-landscape-remoting = "weston.ini" ALTERNATIVE_TARGET_${PN}-landscape-remoting = "${weston_ini_dir}/weston.ini.landscape-remoting" ALTERNATIVE_PRIORITY_${PN}-landscape-remoting = "31" - -# 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" diff --git a/recipes-platform/images/agl-cluster-demo-flutter-preconfigured.bb b/recipes-platform/images/agl-cluster-demo-flutter-preconfigured.bb index 5532c3e52..351600751 100644 --- a/recipes-platform/images/agl-cluster-demo-flutter-preconfigured.bb +++ b/recipes-platform/images/agl-cluster-demo-flutter-preconfigured.bb @@ -11,10 +11,9 @@ IMAGE_INSTALL:remove = "weston-ini-conf-landscape" # Cluster application configuration needs to be replaced for # the full demo to handle different databroker configuration. -IMAGE_INSTALL:remove = "flutter-cluster-dashboard-conf" +FLUTTER_CLUSTER_DASHBOARD_CONF = "flutter-cluster-dashboard-conf-demo" IMAGE_INSTALL += " \ psplash-inverted-config \ weston-ini-conf-landscape-inverted \ - flutter-cluster-dashboard-conf-demo \ " diff --git a/recipes-platform/images/agl-cluster-demo-flutter.bb b/recipes-platform/images/agl-cluster-demo-flutter.bb index b2581f87e..dfa256209 100644 --- a/recipes-platform/images/agl-cluster-demo-flutter.bb +++ b/recipes-platform/images/agl-cluster-demo-flutter.bb @@ -23,10 +23,12 @@ IMAGE_INSTALL += "\ " # Flutter +FLUTTER_CLUSTER_DASHBOARD_CONF = "flutter-cluster-dashboard-conf" + IMAGE_INSTALL += "\ flutter-auto \ flutter-cluster-dashboard \ - flutter-cluster-dashboard-conf \ + ${FLUTTER_CLUSTER_DASHBOARD_CONF} \ cluster-demo-config-flutter \ " diff --git a/recipes-platform/images/agl-ivi-demo-features.inc b/recipes-platform/images/agl-ivi-demo-features.inc index ecf3cd98b..a63e2dfe0 100644 --- a/recipes-platform/images/agl-ivi-demo-features.inc +++ b/recipes-platform/images/agl-ivi-demo-features.inc @@ -1,13 +1,15 @@ require agl-demo-features.inc +TBTNAVI_CONF = "tbtnavi-conf" + FEATURE_PACKAGES_agl-demo-cluster-support = " \ tbtnavi \ - ${@bb.utils.contains("AGL_FEATURES", "agl-kvm-host-kuksa", "tbtnavi-conf-kvm-demo", "tbtnavi-conf", d)} \ - ${@bb.utils.contains("AGL_FEATURES", "agl-kvm-host-kuksa", "", "kuksa-databroker-agl-demo-cluster", d)} \ + ${TBTNAVI_CONF} \ + kuksa-databroker-agl-demo-cluster \ " IMAGE_FEATURES += " \ + kuksa-val-databroker \ kuksa-val-databroker-client \ ${@bb.utils.contains("DISTRO_FEATURES", "agl-devel", "can-test-tools" , "", d)} \ - ${@bb.utils.contains("AGL_FEATURES", "agl-kvm-host-kuksa", "", "kuksa-val-databroker", d)} \ " diff --git a/recipes-platform/images/agl-ivi-demo-flutter.bb b/recipes-platform/images/agl-ivi-demo-flutter.bb index 75fd57c60..5753d58af 100644 --- a/recipes-platform/images/agl-ivi-demo-flutter.bb +++ b/recipes-platform/images/agl-ivi-demo-flutter.bb @@ -2,10 +2,13 @@ require agl-ivi-image-flutter.bb SUMMARY = "AGL IVI demo Flutter image" +FLUTTER_ICS_HOMESCREEN_CONF = "flutter-ics-homescreen-conf" +ONDEMANDNAVI_CONF = "ondemandnavi-conf" + AGL_APPS_INSTALL += " \ flutter-ics-homescreen \ - ${@bb.utils.contains("AGL_FEATURES", "agl-kvm-host-kuksa", "flutter-ics-homescreen-conf-kvm-demo", "flutter-ics-homescreen-conf", d)} \ + ${FLUTTER_ICS_HOMESCREEN_CONF} \ camera-gstreamer \ ondemandnavi \ - ${@bb.utils.contains("AGL_FEATURES", "agl-kvm-host-kuksa", "ondemandnavi-conf-kvm-demo", "ondemandnavi-conf", d)} \ + ${ONDEMANDNAVI_CONF} \ " diff --git a/recipes-platform/images/agl-ivi-demo-qt.bb b/recipes-platform/images/agl-ivi-demo-qt.bb index 79640791b..8fe988d06 100644 --- a/recipes-platform/images/agl-ivi-demo-qt.bb +++ b/recipes-platform/images/agl-ivi-demo-qt.bb @@ -2,11 +2,13 @@ require agl-ivi-image.bb SUMMARY = "AGL IVI demo Qt image" +ONDEMANDNAVI_CONF = "ondemandnavi-conf" + AGL_APPS_INSTALL += " \ dashboard \ hvac \ ondemandnavi \ - ${@bb.utils.contains("AGL_FEATURES", "agl-kvm-host-kuksa", "ondemandnavi-conf-kvm-demo", "ondemandnavi-conf", d)} \ + ${ONDEMANDNAVI_CONF} \ settings \ mediaplayer \ messaging \ diff --git a/recipes-platform/images/agl-ivi-image.bb b/recipes-platform/images/agl-ivi-image.bb index 12122cafb..3783db939 100644 --- a/recipes-platform/images/agl-ivi-image.bb +++ b/recipes-platform/images/agl-ivi-image.bb @@ -16,17 +16,22 @@ AGL_DEVEL_INSTALL += "\ AGL_APPS_INSTALL = "" +PLATFORM_SERVICES_INSTALL = " \ + packagegroup-agl-ivi-multimedia-platform \ + packagegroup-agl-ivi-services-platform \ +" + IMAGE_INSTALL += " \ packagegroup-agl-ivi-connectivity \ packagegroup-agl-ivi-graphics \ - packagegroup-agl-ivi-multimedia \ + packagegroup-agl-ivi-multimedia-client \ packagegroup-agl-ivi-multimedia-hardware \ packagegroup-agl-ivi-navigation \ packagegroup-agl-ivi-identity \ packagegroup-agl-ivi-services-applaunchd \ + ${PLATFORM_SERVICES_INSTALL} \ iproute2 \ ${AGL_APPS_INSTALL} \ ${@bb.utils.contains("DISTRO_FEATURES", "agl-devel", "${AGL_DEVEL_INSTALL}" , "", d)} \ - ${@bb.utils.contains("AGL_FEATURES", "agl-kvm-host-audio", "", "packagegroup-agl-ivi-services-platform", d)} \ " diff --git a/recipes-platform/packagegroups/packagegroup-agl-ivi-multimedia.bb b/recipes-platform/packagegroups/packagegroup-agl-ivi-multimedia.bb index 78c96faf8..be2ac44f5 100644 --- a/recipes-platform/packagegroups/packagegroup-agl-ivi-multimedia.bb +++ b/recipes-platform/packagegroups/packagegroup-agl-ivi-multimedia.bb @@ -6,7 +6,9 @@ inherit packagegroup PACKAGES = "\ packagegroup-agl-ivi-multimedia \ - " + packagegroup-agl-ivi-multimedia-client \ + packagegroup-agl-ivi-multimedia-platform \ +" ALLOW_EMPTY:${PN} = "1" @@ -15,11 +17,19 @@ PIPEWIRE_PACKAGES = " \ ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'packagegroup-pipewire-tools alsa-utils', '', d)} \ wireplumber-config-agl \ wireplumber-policy-config-agl \ - " +" -RDEPENDS:${PN} += "\ +RDEPENDS:${PN}-platform += " \ + mpd \ +" + +RDEPENDS:${PN}-client += "\ ${@bb.utils.contains('DISTRO_FEATURES', 'pipewire', '${PIPEWIRE_PACKAGES}', '', d)} \ gstreamer1.0-plugins-base-meta \ gstreamer1.0-plugins-good-meta \ - ${@bb.utils.contains('AGL_FEATURES', 'agl-kvm-host-audio', '', 'mpd', d)} \ - " +" + +RDEPENDS:${PN} += "\ + packagegroup-agl-ivi-multimedia-client \ + packagegroup-agl-ivi-multimedia-platform \ +"
\ No newline at end of file diff --git a/recipes-platform/packagegroups/packagegroup-agl-ivi-services.bb b/recipes-platform/packagegroups/packagegroup-agl-ivi-services.bb index c3a53d502..94cee97a4 100644 --- a/recipes-platform/packagegroups/packagegroup-agl-ivi-services.bb +++ b/recipes-platform/packagegroups/packagegroup-agl-ivi-services.bb @@ -18,6 +18,7 @@ RDEPENDS:${PN}-platform += " \ agl-service-hvac \ agl-service-audiomixer \ agl-service-radio \ + mpd \ " RDEPENDS:${PN} += " \ diff --git a/templates/feature/agl-kvm-host-audio/50_local.conf.inc b/templates/feature/agl-kvm-host-audio/50_local.conf.inc deleted file mode 100644 index 7bd20e391..000000000 --- a/templates/feature/agl-kvm-host-audio/50_local.conf.inc +++ /dev/null @@ -1 +0,0 @@ -AGL_FEATURES += "agl-kvm-host-audio" diff --git a/templates/feature/agl-kvm-host-audio/README_feature_agl-kvm-host-kuksa.md b/templates/feature/agl-kvm-host-audio/README_feature_agl-kvm-host-kuksa.md deleted file mode 100644 index 93a4b9ade..000000000 --- a/templates/feature/agl-kvm-host-audio/README_feature_agl-kvm-host-kuksa.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -description: Feature agl-kvm-host-audio -authors: Scott Murray <scott.murray@konsulko.com> ---- - -### Feature agl-kvm-host-audio - -* Enables support for running audio services on host in KVM+QEMU demo images - -### Dependent features pulled by agl-kvm-host-audio - -The following features are pulled: - -* agl-kvm agl-kvm-host-kuksa - -Note that enabling this feature results in a configuration where building images -other than agl-kvm-demo-platform will likely not give the desired results. diff --git a/templates/feature/agl-kvm-host-audio/included.dep b/templates/feature/agl-kvm-host-audio/included.dep deleted file mode 100644 index f1f0a2f99..000000000 --- a/templates/feature/agl-kvm-host-audio/included.dep +++ /dev/null @@ -1 +0,0 @@ -agl-kvm agl-kvm-host-kuksa diff --git a/templates/feature/agl-kvm-host-kuksa/50_local.conf.inc b/templates/feature/agl-kvm-host-kuksa/50_local.conf.inc deleted file mode 100644 index 6259e41f2..000000000 --- a/templates/feature/agl-kvm-host-kuksa/50_local.conf.inc +++ /dev/null @@ -1 +0,0 @@ -AGL_FEATURES += "agl-kvm-host-kuksa" diff --git a/templates/feature/agl-kvm-host-kuksa/README_feature_agl-kvm-host-kuksa.md b/templates/feature/agl-kvm-host-kuksa/README_feature_agl-kvm-host-kuksa.md deleted file mode 100644 index 1b607aa3c..000000000 --- a/templates/feature/agl-kvm-host-kuksa/README_feature_agl-kvm-host-kuksa.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -description: Feature agl-kvm-host-kuksa -authors: Scott Murray <scott.murray@konsulko.com> ---- - -### Feature agl-kvm-host-kuksa - -* Enables support for running KUKSA.val databroker on host in KVM+QEMU demo images - -### Dependent features pulled by agl-kvm-host-kuksa - -The following features are pulled: - -* agl-kvm - -Note that enabling this feature results in a configuration where building images -other than agl-kvm-demo-platform will likely not give the desired results. diff --git a/templates/feature/agl-kvm-host-kuksa/included.dep b/templates/feature/agl-kvm-host-kuksa/included.dep deleted file mode 100644 index b2b1014cf..000000000 --- a/templates/feature/agl-kvm-host-kuksa/included.dep +++ /dev/null @@ -1 +0,0 @@ -agl-kvm diff --git a/templates/feature/agl-kvm/50_bblayers.conf.inc b/templates/feature/agl-kvm/50_bblayers.conf.inc index e5e39118a..162f458be 100644 --- a/templates/feature/agl-kvm/50_bblayers.conf.inc +++ b/templates/feature/agl-kvm/50_bblayers.conf.inc @@ -2,3 +2,7 @@ AGL_META_PYTHON = "${METADIR}/external/meta-openembedded/meta-python" AGL_META_NETWORKING = "${METADIR}/external/meta-openembedded/meta-networking" AGL_META_FILESYSTEMS = "${METADIR}/external/meta-openembedded/meta-filesystems" AGL_META_VIRTUALIZATION = "${METADIR}/external/meta-virtualization" + +BBLAYERS =+ " \ + ${METADIR}/meta-agl-demo/meta-agl-kvm-demo \ +" |