On 12/20/22 16:01, Andrey Drobyshev wrote: > According to [1], there're different ways to specify which firmware is > to be used by a libvirt-driven VM. Namely, there's an automatic > firmware selection, e.g.: > > ... > <os firmware='(bios|efi)'> > ... > > and a manual one, e.g.: > > ... > <os> > <loader readonly='yes' > type='pflash'>/usr/share/OVMF/OVMF_CODE.fd</loader> > ... > </os> > ... > > with the latter being a way to specify UEFI firmware. So let's add this > search path as well when parsing source VM's libvirt xml. > > [1] https://libvirt.org/formatdomain.html#bios-bootloader > > Co-authored-by: Laszlo Ersek <ler...@redhat.com> > Signed-off-by: Andrey Drobyshev <andrey.drobys...@virtuozzo.com> > Originally-by: Denis Plotnikov <dplotni...@virtuozzo.com> > --- > input/parse_libvirt_xml.ml | 15 +++++++++++++-- > 1 file changed, 13 insertions(+), 2 deletions(-) > > diff --git a/input/parse_libvirt_xml.ml b/input/parse_libvirt_xml.ml > index 1e98ce1a..65693c98 100644 > --- a/input/parse_libvirt_xml.ml > +++ b/input/parse_libvirt_xml.ml > @@ -446,12 +446,23 @@ let parse_libvirt_xml ?conn xml = > done; > List.rev !nics in > > - (* Firmware. *) > + (* Firmware. > + * If "/domain/os" node doesn't contain "firmware" attribute (automatic > + * firmware), we look for the presence of "pflash" in > + * "/domain/os/loader/@type" attribute (manual firmware), with the latter > + * indicating the UEFI firmware. > + * See https://libvirt.org/formatdomain.html#bios-bootloader > + *) > let firmware = > match xpath_string "/domain/os/@firmware" with > | Some "bios" -> BIOS > | Some "efi" -> UEFI > - | None | Some _ -> UnknownFirmware in > + | Some _ -> UnknownFirmware > + | None -> ( > + match xpath_string "/domain/os/loader/@type" with > + | Some "pflash" -> UEFI > + | _ -> UnknownFirmware > + ) in > > (* Check for hostdev devices. (RHBZ#1472719) *) > let () =
Commit 73614313114a. Best regards, Laszlo _______________________________________________ Libguestfs mailing list Libguestfs@redhat.com https://listman.redhat.com/mailman/listinfo/libguestfs