Enable running audio services on host for KVM demo
[AGL/meta-agl-demo.git] / recipes-platform / images / agl-kvm-demo-platform.bb
index d04186b..ddb2ddb 100644 (file)
@@ -2,13 +2,20 @@ DESCRIPTION = "AGL KVM+QEMU Demo Platform image."
 
 LICENSE = "MIT"
 
-require recipes-platform/images/agl-image-weston.inc
+require recipes-platform/images/agl-image-compositor.bb
+require 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)} \
+"
+
 # Add packages for KVM+QEMU demo platform here
-IMAGE_INSTALL:append = " \
-    packagegroup-agl-image-minimal \
+IMAGE_INSTALL += " \
     packagegroup-agl-core-connectivity \
     kernel-image \
     agl-compositor \
@@ -23,6 +30,29 @@ IMAGE_INSTALL:append = " \
     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"
@@ -36,9 +66,6 @@ GUEST_IMAGES ?= "agl-kvm-guest:${GUEST_VM1_IMAGE} agl-kvm-guest:${GUEST_VM2_IMAG
 
 QEMU_GUEST_CONFIGS ?= ""
 
-# Handle modification of IMAGE_LINK_NAME done by ULCB builds with Kingfisher support
-MACHINE_SUFFIX = "${@bb.utils.contains('AGL_FEATURES', 'kingfisher', '-kf', '', d)}"
-
 python __anonymous() {
     for c in (d.getVar('GUEST_IMAGES') or "").split():
         (mc, image) = c.split(':')
@@ -56,7 +83,7 @@ install_guest_images() {
         name=${image}
         rm -rf  ${IMAGE_ROOTFS}/var/lib/machines/${name}
         install -m 0755 -d ${IMAGE_ROOTFS}/var/lib/machines/${name}
-        src="${TOPDIR}/tmp-${config}/deploy/images/${GUEST_MACHINE}/${image}-${GUEST_MACHINE}${MACHINE_SUFFIX}.ext4"
+        src="${TOPDIR}/tmp-${config}/deploy/images/${GUEST_MACHINE}/${image}-${GUEST_MACHINE}.ext4"
         bbnote "Installing ${src}"
         install -m 0600 ${src} ${IMAGE_ROOTFS}/var/lib/machines/${name}/
        # Placeholder until booting from kernel in VM image is worked out