On Wed, Feb 18, 2026 at 01:05:53PM +0100, Andrea Bolognani via Devel wrote:
> This makes guests actually functional.
.....they're not actually functional yet if you require use of
a template, or apparmor or selinux. IMHO this needs to be moved
after patch 34
>
> https://issues.redhat.com/browse/RHEL-82645
>
> Signed-off-by: Andrea Bolognani <abologna@redhat.com>
> ---
> src/qemu/qemu_command.c | 34 +++++++++++++++++++
> ...-enrolled-keys-aarch64.aarch64-latest.args | 1 +
> ...o-efi-varstore-aarch64.aarch64-latest.args | 1 +
> ...e-auto-efi-varstore-q35.x86_64-latest.args | 1 +
> ...l-efi-varstore-aarch64.aarch64-latest.args | 1 +
> ...manual-efi-varstore-q35.x86_64-latest.args | 1 +
> 6 files changed, 39 insertions(+)
>
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index a742998e4c..ba300f3551 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -9815,6 +9815,37 @@ qemuBuildDomainLoaderCommandLine(virCommand *cmd,
> }
>
>
> +static int
> +qemuBuildUefiVarsCommandLine(virCommand *cmd,
> + const virDomainDef *def,
> + virQEMUCaps *qemuCaps)
> +{
> + virDomainLoaderDef *loader = def->os.loader;
> + virDomainVarstoreDef *varstore = def->os.varstore;
> + g_autoptr(virJSONValue) props = NULL;
> + const char *model = NULL;
> +
> + if (!loader || !varstore || !varstore->path)
> + return 0;
> +
> + if (ARCH_IS_X86(def->os.arch))
> + model = "uefi-vars-x64";
> + else
> + model = "uefi-vars-sysbus";
> +
> + if (virJSONValueObjectAdd(&props,
> + "s:driver", model,
> + "s:jsonfile", varstore->path,
> + NULL) < 0)
> + return -1;
> +
> + if (qemuBuildDeviceCommandlineFromJSON(cmd, props, def, qemuCaps) < 0)
> + return -1;
> +
> + return 0;
> +}
> +
> +
> static int
> qemuBuildTPMDevCmd(virCommand *cmd,
> const virDomainDef *def,
> @@ -10889,6 +10920,9 @@ qemuBuildCommandLine(virDomainObj *vm,
>
> qemuBuildDomainLoaderCommandLine(cmd, def);
>
> + if (qemuBuildUefiVarsCommandLine(cmd, def, qemuCaps) < 0)
> + return NULL;
> +
> if (qemuBuildMemCommandLine(cmd, def, qemuCaps, priv) < 0)
> return NULL;
>
> diff --git a/tests/qemuxmlconfdata/firmware-auto-efi-enrolled-keys-aarch64.aarch64-latest.args b/tests/qemuxmlconfdata/firmware-auto-efi-enrolled-keys-aarch64.aarch64-latest.args
> index abc934692a..10f1a5a6a4 100644
> --- a/tests/qemuxmlconfdata/firmware-auto-efi-enrolled-keys-aarch64.aarch64-latest.args
> +++ b/tests/qemuxmlconfdata/firmware-auto-efi-enrolled-keys-aarch64.aarch64-latest.args
> @@ -13,6 +13,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
> -machine virt-8.2,usb=off,gic-version=2,dump-guest-core=off,memory-backend=mach-virt.ram,acpi=on \
> -accel kvm \
> -bios /usr/share/edk2/aarch64/QEMU_EFI.qemuvars.fd \
> +-device '{"driver":"uefi-vars-sysbus","jsonfile":"/var/lib/libvirt/qemu/varstore/guest.json"}' \
> -m size=1048576k \
> -object '{"qom-type":"memory-backend-ram","id":"mach-virt.ram","size":1073741824}' \
> -overcommit mem-lock=off \
> diff --git a/tests/qemuxmlconfdata/firmware-auto-efi-varstore-aarch64.aarch64-latest.args b/tests/qemuxmlconfdata/firmware-auto-efi-varstore-aarch64.aarch64-latest.args
> index abc934692a..10f1a5a6a4 100644
> --- a/tests/qemuxmlconfdata/firmware-auto-efi-varstore-aarch64.aarch64-latest.args
> +++ b/tests/qemuxmlconfdata/firmware-auto-efi-varstore-aarch64.aarch64-latest.args
> @@ -13,6 +13,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
> -machine virt-8.2,usb=off,gic-version=2,dump-guest-core=off,memory-backend=mach-virt.ram,acpi=on \
> -accel kvm \
> -bios /usr/share/edk2/aarch64/QEMU_EFI.qemuvars.fd \
> +-device '{"driver":"uefi-vars-sysbus","jsonfile":"/var/lib/libvirt/qemu/varstore/guest.json"}' \
> -m size=1048576k \
> -object '{"qom-type":"memory-backend-ram","id":"mach-virt.ram","size":1073741824}' \
> -overcommit mem-lock=off \
> diff --git a/tests/qemuxmlconfdata/firmware-auto-efi-varstore-q35.x86_64-latest.args b/tests/qemuxmlconfdata/firmware-auto-efi-varstore-q35.x86_64-latest.args
> index 9a899c2a65..392ea77c28 100644
> --- a/tests/qemuxmlconfdata/firmware-auto-efi-varstore-q35.x86_64-latest.args
> +++ b/tests/qemuxmlconfdata/firmware-auto-efi-varstore-q35.x86_64-latest.args
> @@ -14,6 +14,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
> -accel kvm \
> -cpu qemu64 \
> -bios /usr/share/edk2/ovmf/OVMF.qemuvars.fd \
> +-device '{"driver":"uefi-vars-x64","jsonfile":"/var/lib/libvirt/qemu/varstore/guest.json"}' \
> -m size=1048576k \
> -object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":1073741824}' \
> -overcommit mem-lock=off \
> diff --git a/tests/qemuxmlconfdata/firmware-manual-efi-varstore-aarch64.aarch64-latest.args b/tests/qemuxmlconfdata/firmware-manual-efi-varstore-aarch64.aarch64-latest.args
> index abc934692a..894bab7ffe 100644
> --- a/tests/qemuxmlconfdata/firmware-manual-efi-varstore-aarch64.aarch64-latest.args
> +++ b/tests/qemuxmlconfdata/firmware-manual-efi-varstore-aarch64.aarch64-latest.args
> @@ -13,6 +13,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
> -machine virt-8.2,usb=off,gic-version=2,dump-guest-core=off,memory-backend=mach-virt.ram,acpi=on \
> -accel kvm \
> -bios /usr/share/edk2/aarch64/QEMU_EFI.qemuvars.fd \
> +-device '{"driver":"uefi-vars-sysbus","jsonfile":"/path/to/guest.json"}' \
> -m size=1048576k \
> -object '{"qom-type":"memory-backend-ram","id":"mach-virt.ram","size":1073741824}' \
> -overcommit mem-lock=off \
> diff --git a/tests/qemuxmlconfdata/firmware-manual-efi-varstore-q35.x86_64-latest.args b/tests/qemuxmlconfdata/firmware-manual-efi-varstore-q35.x86_64-latest.args
> index 9a899c2a65..6c04c8c39f 100644
> --- a/tests/qemuxmlconfdata/firmware-manual-efi-varstore-q35.x86_64-latest.args
> +++ b/tests/qemuxmlconfdata/firmware-manual-efi-varstore-q35.x86_64-latest.args
> @@ -14,6 +14,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
> -accel kvm \
> -cpu qemu64 \
> -bios /usr/share/edk2/ovmf/OVMF.qemuvars.fd \
> +-device '{"driver":"uefi-vars-x64","jsonfile":"/path/to/guest.json"}' \
> -m size=1048576k \
> -object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":1073741824}' \
> -overcommit mem-lock=off \
> --
> 2.53.0
>
With regards,
Daniel
--
|: https://berrange.com ~~ https://hachyderm.io/@berrange :|
|: https://libvirt.org ~~ https://entangle-photo.org :|
|: https://pixelfed.art/berrange ~~ https://fstop138.berrange.com :|