From 2f6a12454e558f79f24d4f76bf9c6a16590a5bca Mon Sep 17 00:00:00 2001 From: Scott Murray Date: Sun, 12 May 2024 15:28:59 -0400 Subject: 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 Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl-demo/+/29905 Tested-by: Jan-Simon Moeller Reviewed-by: Jan-Simon Moeller --- .../files/agl-cluster-demo-flutter-guest-preconfigured.conf | 6 ++++++ .../qemu-config/files/agl-cluster-demo-flutter-guest.conf | 6 ++++++ .../files/agl-ivi-demo-flutter-guest-preconfigured.conf | 13 +++++++++++++ .../qemu-config/files/agl-ivi-demo-flutter-guest.conf | 13 +++++++++++++ .../recipes-config/qemu-config/files/bridge.conf | 1 + .../qemu-config/files/connman-nodnsproxy.conf | 3 +++ .../recipes-config/qemu-config/files/dnsmasq-qemu.conf | 4 ++++ .../recipes-config/qemu-config/files/vmnet0.netdev | 3 +++ .../recipes-config/qemu-config/files/vmnet0.network | 7 +++++++ 9 files changed, 56 insertions(+) create mode 100644 meta-agl-kvm-demo/recipes-config/qemu-config/files/agl-cluster-demo-flutter-guest-preconfigured.conf create mode 100644 meta-agl-kvm-demo/recipes-config/qemu-config/files/agl-cluster-demo-flutter-guest.conf create mode 100644 meta-agl-kvm-demo/recipes-config/qemu-config/files/agl-ivi-demo-flutter-guest-preconfigured.conf create mode 100644 meta-agl-kvm-demo/recipes-config/qemu-config/files/agl-ivi-demo-flutter-guest.conf create mode 100644 meta-agl-kvm-demo/recipes-config/qemu-config/files/bridge.conf create mode 100644 meta-agl-kvm-demo/recipes-config/qemu-config/files/connman-nodnsproxy.conf create mode 100644 meta-agl-kvm-demo/recipes-config/qemu-config/files/dnsmasq-qemu.conf create mode 100644 meta-agl-kvm-demo/recipes-config/qemu-config/files/vmnet0.netdev create mode 100644 meta-agl-kvm-demo/recipes-config/qemu-config/files/vmnet0.network (limited to 'meta-agl-kvm-demo/recipes-config/qemu-config/files') diff --git a/meta-agl-kvm-demo/recipes-config/qemu-config/files/agl-cluster-demo-flutter-guest-preconfigured.conf b/meta-agl-kvm-demo/recipes-config/qemu-config/files/agl-cluster-demo-flutter-guest-preconfigured.conf new file mode 100644 index 000000000..37003abde --- /dev/null +++ b/meta-agl-kvm-demo/recipes-config/qemu-config/files/agl-cluster-demo-flutter-guest-preconfigured.conf @@ -0,0 +1,6 @@ +QEMU_TASKSET_CPUS="4-7" +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/meta-agl-kvm-demo/recipes-config/qemu-config/files/agl-cluster-demo-flutter-guest.conf b/meta-agl-kvm-demo/recipes-config/qemu-config/files/agl-cluster-demo-flutter-guest.conf new file mode 100644 index 000000000..37003abde --- /dev/null +++ b/meta-agl-kvm-demo/recipes-config/qemu-config/files/agl-cluster-demo-flutter-guest.conf @@ -0,0 +1,6 @@ +QEMU_TASKSET_CPUS="4-7" +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/meta-agl-kvm-demo/recipes-config/qemu-config/files/agl-ivi-demo-flutter-guest-preconfigured.conf b/meta-agl-kvm-demo/recipes-config/qemu-config/files/agl-ivi-demo-flutter-guest-preconfigured.conf new file mode 100644 index 000000000..c2d420eb6 --- /dev/null +++ b/meta-agl-kvm-demo/recipes-config/qemu-config/files/agl-ivi-demo-flutter-guest-preconfigured.conf @@ -0,0 +1,13 @@ +QEMU_TASKSET_CPUS="0-3" +QEMU_SMP_OPT="-smp 4" +QEMU_MEM_OPT="-m 4G" +# With touchscreen plugged into the bottom connector of the 2x USB 2.0 +# on the reference hardware +QEMU_INPUT_OPT="-device qemu-xhci -usb -device usb-host,hostbus=5,hostport=1" +# Fallback for touchscreen or other pointing device plugged in elsewhere +#QEMU_INPUT_OPT="-device virtio-tablet-device" +QEMU_AUDIO_OPT="-audiodev alsa,id=agl -device intel-hda -device hda-duplex,audiodev=agl" +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/meta-agl-kvm-demo/recipes-config/qemu-config/files/agl-ivi-demo-flutter-guest.conf b/meta-agl-kvm-demo/recipes-config/qemu-config/files/agl-ivi-demo-flutter-guest.conf new file mode 100644 index 000000000..c2d420eb6 --- /dev/null +++ b/meta-agl-kvm-demo/recipes-config/qemu-config/files/agl-ivi-demo-flutter-guest.conf @@ -0,0 +1,13 @@ +QEMU_TASKSET_CPUS="0-3" +QEMU_SMP_OPT="-smp 4" +QEMU_MEM_OPT="-m 4G" +# With touchscreen plugged into the bottom connector of the 2x USB 2.0 +# on the reference hardware +QEMU_INPUT_OPT="-device qemu-xhci -usb -device usb-host,hostbus=5,hostport=1" +# Fallback for touchscreen or other pointing device plugged in elsewhere +#QEMU_INPUT_OPT="-device virtio-tablet-device" +QEMU_AUDIO_OPT="-audiodev alsa,id=agl -device intel-hda -device hda-duplex,audiodev=agl" +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/meta-agl-kvm-demo/recipes-config/qemu-config/files/bridge.conf b/meta-agl-kvm-demo/recipes-config/qemu-config/files/bridge.conf new file mode 100644 index 000000000..72c73f39f --- /dev/null +++ b/meta-agl-kvm-demo/recipes-config/qemu-config/files/bridge.conf @@ -0,0 +1 @@ +allow vmnet0 diff --git a/meta-agl-kvm-demo/recipes-config/qemu-config/files/connman-nodnsproxy.conf b/meta-agl-kvm-demo/recipes-config/qemu-config/files/connman-nodnsproxy.conf new file mode 100644 index 000000000..9d7f74b8f --- /dev/null +++ b/meta-agl-kvm-demo/recipes-config/qemu-config/files/connman-nodnsproxy.conf @@ -0,0 +1,3 @@ +[Service] +ExecStart= +ExecStart=/usr/sbin/connmand -n --nodnsproxy diff --git a/meta-agl-kvm-demo/recipes-config/qemu-config/files/dnsmasq-qemu.conf b/meta-agl-kvm-demo/recipes-config/qemu-config/files/dnsmasq-qemu.conf new file mode 100644 index 000000000..4ab6ee3bf --- /dev/null +++ b/meta-agl-kvm-demo/recipes-config/qemu-config/files/dnsmasq-qemu.conf @@ -0,0 +1,4 @@ +interface=vmnet0 +dhcp-range=172.16.10.1,172.16.10.5,255.255.255.0,12h +dhcp-host=52:54:00:12:00:02,172.16.10.2 +dhcp-host=52:54:00:12:00:03,172.16.10.3 diff --git a/meta-agl-kvm-demo/recipes-config/qemu-config/files/vmnet0.netdev b/meta-agl-kvm-demo/recipes-config/qemu-config/files/vmnet0.netdev new file mode 100644 index 000000000..e25453174 --- /dev/null +++ b/meta-agl-kvm-demo/recipes-config/qemu-config/files/vmnet0.netdev @@ -0,0 +1,3 @@ +[NetDev] +Name=vmnet0 +Kind=bridge diff --git a/meta-agl-kvm-demo/recipes-config/qemu-config/files/vmnet0.network b/meta-agl-kvm-demo/recipes-config/qemu-config/files/vmnet0.network new file mode 100644 index 000000000..600f8ac01 --- /dev/null +++ b/meta-agl-kvm-demo/recipes-config/qemu-config/files/vmnet0.network @@ -0,0 +1,7 @@ +[Match] +Name=vmnet0 + +[Network] +Address=172.16.10.1/24 +IPForward=yes +IPMasquerade=yes -- cgit 1.2.3-korg