summaryrefslogtreecommitdiffstats
path: root/recipes-extended/agl-qemu-runner
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 /recipes-extended/agl-qemu-runner
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
Diffstat (limited to 'recipes-extended/agl-qemu-runner')
-rw-r--r--recipes-extended/agl-qemu-runner/agl-qemu-runner.bb25
-rwxr-xr-xrecipes-extended/agl-qemu-runner/files/agl-qemu-runner.sh71
-rw-r--r--recipes-extended/agl-qemu-runner/files/agl-qemu-runner@.service12
3 files changed, 0 insertions, 108 deletions
diff --git a/recipes-extended/agl-qemu-runner/agl-qemu-runner.bb b/recipes-extended/agl-qemu-runner/agl-qemu-runner.bb
deleted file mode 100644
index b3e3a67dd..000000000
--- a/recipes-extended/agl-qemu-runner/agl-qemu-runner.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "AGL simple QEMU runner script"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-inherit systemd allarch
-
-SRC_URI = "file://agl-qemu-runner.sh \
- file://agl-qemu-runner@.service \
-"
-
-do_configure[noexec] = "1"
-do_compile[noexec] = "1"
-
-do_install() {
- # Install template unit
- install -d ${D}${systemd_system_unitdir}
- install -m 0644 ${WORKDIR}/agl-qemu-runner@.service ${D}${systemd_system_unitdir}/
-
- # Install script
- install -D -m 0755 ${WORKDIR}/agl-qemu-runner.sh ${D}${sbindir}/agl-qemu-runner.sh
-}
-
-FILES:${PN} += "${systemd_system_unitdir}"
-
-RDEPENDS:${PN} += "bash qemu"
diff --git a/recipes-extended/agl-qemu-runner/files/agl-qemu-runner.sh b/recipes-extended/agl-qemu-runner/files/agl-qemu-runner.sh
deleted file mode 100755
index ab3a02c91..000000000
--- a/recipes-extended/agl-qemu-runner/files/agl-qemu-runner.sh
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/bin/bash
-# SPDX-License-Identifier: Apache-2.0
-
-if [ -z "$1" ]; then
- echo "Usage: ${basename $0} <image name>"
- exit 1
-fi
-image="$1"
-
-conf="/etc/agl-qemu-runner/${image}.conf"
-if [ ! -f "$conf" ]; then
- echo "No configuration file $conf"
- exit 1
-fi
-
-. $conf
-
-arch="$(uname -m)"
-if [ -z "$QEMU_IMAGE_ARCH" ]; then
- QEMU_IMAGE_ARCH="virtio-${arch}"
-fi
-
-disk="/var/lib/machines/${image}/${image}-${QEMU_IMAGE_ARCH}.ext4"
-if [ ! -f "$disk" ]; then
- echo "No disk image for $image"
- exit 1
-fi
-kernel="/var/lib/machines/${image}/Image-${QEMU_IMAGE_ARCH}.bin"
-if [ ! -f "$kernel" ]; then
- echo "No kernel for $image"
- exit 1
-fi
-
-TASKSET_CMD=""
-if [ -n "$QEMU_TASKSET_CPUS" ]; then
- TASKSET_CMD="taskset -c ${QEMU_TASKSET_CPUS}"
-fi
-
-export SDL_VIDEODRIVER=wayland
-export XDG_RUNTIME_DIR=/run/user/1001
-# The following may be needed if the socket is not wayland-0, as SDL
-# seems to lack detection logic for that case.
-#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}"
-
-${TASKSET_CMD} \
-qemu-system-${arch} \
- -enable-kvm \
- -machine virt,gic-version=max,iommu=smmuv3 \
- -cpu host \
- ${QEMU_SMP_OPT} \
- ${QEMU_MEM_OPT} \
- -kernel $kernel \
- -append "${QEMU_KERNEL_CMDLINE_APPEND}" \
- -drive id=disk0,file=${disk},format=raw,if=none \
- -serial mon:pty \
- -object rng-random,filename=/dev/urandom,id=rng0 \
- -device virtio-blk-device,drive=disk0 \
- -device virtio-rng-device,rng=rng0 \
- ${QEMU_NET_OPT} \
- ${QEMU_INPUT_OPT} \
- -global virtio-mmio.force-legacy=false \
- -device virtio-gpu-gl-device \
- -display sdl,gl=on -vga std \
- ${QEMU_AUDIO_OPT} \
- ${QEMU_CAN_OPT} \
- ${QEMU_EXTRA_OPT} \
- -full-screen
diff --git a/recipes-extended/agl-qemu-runner/files/agl-qemu-runner@.service b/recipes-extended/agl-qemu-runner/files/agl-qemu-runner@.service
deleted file mode 100644
index d19c529f0..000000000
--- a/recipes-extended/agl-qemu-runner/files/agl-qemu-runner@.service
+++ /dev/null
@@ -1,12 +0,0 @@
-[Unit]
-Requires=native-shell-client.service
-After=native-shell-client.service
-
-[Service]
-Type=simple
-ExecStart=/usr/sbin/agl-qemu-runner.sh %i
-#Restart=on-failure
-Restart=no
-
-[Install]
-WantedBy=multi-user.target