X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=recipes-extended%2Fagl-qemu-runner%2Ffiles%2Fagl-qemu-runner.sh;fp=recipes-extended%2Fagl-qemu-runner%2Ffiles%2Fagl-qemu-runner.sh;h=d12764735c658c5e225f5b399691761fec062cbd;hb=dce8116fb1a1b6f3c2976db126d9f923e2fe4c6f;hp=0000000000000000000000000000000000000000;hpb=46a4e4e4f43625686e73db8523bbfc9abaed558f;p=AGL%2Fmeta-agl-demo.git diff --git a/recipes-extended/agl-qemu-runner/files/agl-qemu-runner.sh b/recipes-extended/agl-qemu-runner/files/agl-qemu-runner.sh new file mode 100755 index 000000000..d12764735 --- /dev/null +++ b/recipes-extended/agl-qemu-runner/files/agl-qemu-runner.sh @@ -0,0 +1,71 @@ +#!/bin/bash +# SPDX-License-Identifier: Apache-2.0 + +if [ -z "$1" ]; then + echo "Usage: ${basename $0} " + 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 \ + -netdev user,id=net-user \ + -device virtio-blk-device,drive=disk0 \ + -device virtio-net-device,netdev=net-user,mac=52:54:00:12:00:02 \ + -device virtio-rng-device,rng=rng0 \ + ${QEMU_INPUT_OPT} \ + -global virtio-mmio.force-legacy=false \ + -device virtio-gpu-gl-device \ + -display sdl,gl=on -vga std \ + ${QEMU_AUDIO_OPT} \ + ${QEMU_EXTRA_OPT} \ + -full-screen