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 <[email protected]>
> ---
>  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 :|

Reply via email to