[libvirt] [PATCH v2] qemu: Add support for SGA
Eric Blake
eblake at redhat.com
Tue Jul 5 23:56:13 UTC 2011
On 07/05/2011 04:29 AM, Michal Privoznik wrote:
> This patch creates new attribute 'sga' for <serial> element. Serial Graphics
> Adapter allows users to see BIOS messages from the very first moment
> domain boots up. Therefore, users can choose boot medium, set PXE, etc.
>
> However, to be able to use this, one need SGABIOS, which is accessible
> here: http://code.google.com/p/sgabios/
> ---
> diff to v1:
> -move from <video> to <serial> as Dan suggested:
> https://www.redhat.com/archives/libvir-list/2011-July/msg00134.html
I'll let Dan comment on whether this better fits what he envisioned, but
I have some code comments:
> +++ b/docs/schemas/domain.rng
> @@ -1618,11 +1618,21 @@
> -->
> <define name="qemucdev">
> <ref name="qemucdevSrcType"/>
> - <optional>
> - <attribute name="tty">
> - <ref name="absFilePath"/>
> - </attribute>
> - </optional>
> + <interleave>
> + <optional>
> + <attribute name="tty">
> + <ref name="absFilePath"/>
> + </attribute>
> + </optional>
> + <optional>
> + <attribute name="sga">
> + <choice>
> + <value>on</value>
> + <value>off</value>
> + </choice>
> + </attribute>
Aren't attributes already interleaved in RNG notation? That is, I
thought that <interleave> was only necessary for sub-elements.
The easiest way to test would be (temporarily) listing 'sga=' prior to
'tty=' and seeing if you still pass the rng validation tests (at that
point, it is the rng test that is important; if you fail the tests for
round-trip from xml -> parsed -> xml, that's okay, since our parser
outputs in fixed order - the real goal of this exercise is to prove that
we are liberal in what we accept).
> +++ b/src/qemu/qemu_command.c
> @@ -3884,6 +3884,11 @@ qemuBuildCommandLine(virConnectPtr conn,
> virCommandAddArg(cmd, "-device");
> virCommandAddArgFormat(cmd, "isa-serial,chardev=char%s,id=%s",
> serial->info.alias, serial->info.alias);
> +
> + if (serial->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_SERIAL &&
> + serial->source.sga == VIR_DOMAIN_CHR_SGA_ON &&
> + qemuCapsGet(qemuCaps, QEMU_CAPS_SGA))
> + virCommandAddArgList(cmd, "-device", "sga", NULL);
This should issue an error if we lack QEMU_CAPS_SGA but requested
VIR_DOMAIN_CHR_SGA_ON, rather than silently ignoring the request.
Meanwhile, it is okay to have an explicit VIR_DOMAIN_CHR_SGA_OFF even if
we lack the qemu feature.
--
Eric Blake eblake at redhat.com +1-801-349-2682
Libvirt virtualization library http://libvirt.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 619 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20110705/82e37e00/attachment-0001.sig>
More information about the libvir-list
mailing list