aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2024-05-12 15:28:59 -0400
committerScott Murray <scott.murray@konsulko.com>2024-05-27 16:03:25 +0000
commit2e0fd28b2470f6d81bfb1b0b273af5742060ed6a (patch)
treebc485361a96ada08b826b02f7141ae5f7565c2f9
parentea7e39dc258c5e7d3a46ffb31b3321331ba9e900 (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/+/29918 ci-image-build: Jenkins Job builder account Tested-by: Jenkins Job builder account ci-image-boot-test: Jenkins Job builder account
-rw-r--r--meta-agl-kvm-demo/conf/layer.conf15
-rw-r--r--meta-agl-kvm-demo/recipes-config/qemu-config/files/agl-cluster-demo-flutter-guest-preconfigured.conf (renamed from recipes-config/qemu-config/files/agl-cluster-demo-flutter.conf)1
-rw-r--r--meta-agl-kvm-demo/recipes-config/qemu-config/files/agl-cluster-demo-flutter-guest.conf (renamed from recipes-config/qemu-config/files/agl-cluster-demo-qt.conf)5
-rw-r--r--meta-agl-kvm-demo/recipes-config/qemu-config/files/agl-ivi-demo-flutter-guest-preconfigured.conf (renamed from recipes-config/qemu-config/files/agl-ivi-demo-flutter.conf)1
-rw-r--r--meta-agl-kvm-demo/recipes-config/qemu-config/files/agl-ivi-demo-flutter-guest.conf (renamed from recipes-config/qemu-config/files/agl-ivi-demo-qt.conf)1
-rw-r--r--meta-agl-kvm-demo/recipes-config/qemu-config/files/bridge.conf (renamed from recipes-config/qemu-config/files/bridge.conf)0
-rw-r--r--meta-agl-kvm-demo/recipes-config/qemu-config/files/connman-nodnsproxy.conf (renamed from recipes-config/qemu-config/files/connman-nodnsproxy.conf)0
-rw-r--r--meta-agl-kvm-demo/recipes-config/qemu-config/files/dnsmasq-qemu.conf (renamed from recipes-config/qemu-config/files/dnsmasq-qemu.conf)0
-rw-r--r--meta-agl-kvm-demo/recipes-config/qemu-config/files/vmnet0.netdev (renamed from recipes-config/qemu-config/files/vmnet0.netdev)0
-rw-r--r--meta-agl-kvm-demo/recipes-config/qemu-config/files/vmnet0.network (renamed from recipes-config/qemu-config/files/vmnet0.network)0
-rw-r--r--meta-agl-kvm-demo/recipes-config/qemu-config/qemu-config-agl-cluster-demo-flutter-guest-preconfigured.bb3
-rw-r--r--meta-agl-kvm-demo/recipes-config/qemu-config/qemu-config-agl-cluster-demo-flutter-guest.bb (renamed from recipes-config/qemu-config/qemu-config-agl-cluster-demo-flutter.bb)2
-rw-r--r--meta-agl-kvm-demo/recipes-config/qemu-config/qemu-config-agl-ivi-demo-flutter-guest-preconfigured.bb3
-rw-r--r--meta-agl-kvm-demo/recipes-config/qemu-config/qemu-config-agl-ivi-demo-flutter-guest.bb (renamed from recipes-config/qemu-config/qemu-config-agl-ivi-demo-flutter.bb)2
-rw-r--r--meta-agl-kvm-demo/recipes-config/qemu-config/qemu-config-vmnet0.bb (renamed from recipes-config/qemu-config/qemu-config-vmnet0.bb)0
-rw-r--r--meta-agl-kvm-demo/recipes-extended/agl-qemu-runner/agl-qemu-runner.bb (renamed from recipes-extended/agl-qemu-runner/agl-qemu-runner.bb)0
-rwxr-xr-xmeta-agl-kvm-demo/recipes-extended/agl-qemu-runner/files/agl-qemu-runner.sh (renamed from recipes-extended/agl-qemu-runner/files/agl-qemu-runner.sh)5
-rw-r--r--meta-agl-kvm-demo/recipes-extended/agl-qemu-runner/files/agl-qemu-runner@.service (renamed from recipes-extended/agl-qemu-runner/files/agl-qemu-runner@.service)0
-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.in (renamed from recipes-graphics/wayland/weston-ini-conf/weston.ini.kvm.in)4
-rw-r--r--meta-agl-kvm-demo/recipes-graphics/wayland/weston-ini-conf_agldemo.inc66
-rw-r--r--meta-agl-kvm-demo/recipes-platform/images/agl-cluster-demo-flutter-guest-preconfigured.bb12
-rw-r--r--meta-agl-kvm-demo/recipes-platform/images/agl-cluster-demo-flutter-guest.bb8
-rw-r--r--meta-agl-kvm-demo/recipes-platform/images/agl-ivi-demo-flutter-guest-preconfigured.bb12
-rw-r--r--meta-agl-kvm-demo/recipes-platform/images/agl-ivi-demo-flutter-guest.bb14
-rw-r--r--meta-agl-kvm-demo/recipes-platform/images/agl-kvm-demo-flutter-preconfigured.bb38
-rw-r--r--meta-agl-kvm-demo/recipes-platform/images/agl-kvm-demo.bb (renamed from recipes-platform/images/agl-kvm-demo.bb)34
-rw-r--r--recipes-config/qemu-config/qemu-config-agl-cluster-demo-qt.bb29
-rw-r--r--recipes-config/qemu-config/qemu-config-agl-ivi-demo-qt.bb29
-rw-r--r--recipes-demo/flutter-cluster-dashboard/files/cluster-dashboard.yaml.kvm-demo4
-rw-r--r--recipes-demo/flutter-cluster-dashboard/flutter-cluster-dashboard_git.bb18
-rw-r--r--recipes-demo/flutter-ics-homescreen/flutter-ics-homescreen_git.bb1
-rw-r--r--recipes-demo/libqtappfw/libqtappfw_git.bb1
-rw-r--r--recipes-graphics/wayland/weston-ini-conf_agldemo.inc59
-rw-r--r--recipes-platform/images/agl-cluster-demo-flutter-preconfigured.bb3
-rw-r--r--recipes-platform/images/agl-cluster-demo-flutter.bb4
-rw-r--r--recipes-platform/images/agl-ivi-demo-features.inc8
-rw-r--r--recipes-platform/images/agl-ivi-demo-flutter.bb7
-rw-r--r--recipes-platform/images/agl-ivi-demo-qt.bb4
-rw-r--r--recipes-platform/images/agl-ivi-image.bb9
-rw-r--r--recipes-platform/packagegroups/packagegroup-agl-ivi-multimedia.bb20
-rw-r--r--recipes-platform/packagegroups/packagegroup-agl-ivi-services.bb1
-rw-r--r--templates/feature/agl-kvm-host-audio/50_local.conf.inc1
-rw-r--r--templates/feature/agl-kvm-host-audio/README_feature_agl-kvm-host-kuksa.md17
-rw-r--r--templates/feature/agl-kvm-host-audio/included.dep1
-rw-r--r--templates/feature/agl-kvm-host-kuksa/50_local.conf.inc1
-rw-r--r--templates/feature/agl-kvm-host-kuksa/README_feature_agl-kvm-host-kuksa.md17
-rw-r--r--templates/feature/agl-kvm-host-kuksa/included.dep1
-rw-r--r--templates/feature/agl-kvm/50_bblayers.conf.inc4
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 beee7005f..f81d8e733 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 \
"
@@ -26,8 +27,6 @@ PUBSPEC_APPNAME = "flutter_cluster_dashboard"
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"
@@ -42,7 +41,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/
}
@@ -52,7 +51,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}"
@@ -63,10 +62,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 576e5a7d1..17e55994e 100644
--- a/recipes-demo/flutter-ics-homescreen/flutter-ics-homescreen_git.bb
+++ b/recipes-demo/flutter-ics-homescreen/flutter-ics-homescreen_git.bb
@@ -59,7 +59,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 \
+"