[libvirt] [PATCH] docs: document <qemu:commandline> xml
Daniel P. Berrange
berrange at redhat.com
Mon Dec 19 19:21:05 UTC 2011
On Mon, Dec 19, 2011 at 12:12:31PM -0700, Eric Blake wrote:
> Even though we technically don't support <qemu:commandline> (as in,
> if you mis-use things, you get to keep the pieces), we should at
> least document how to use it.
>
> * docs/drvqemu.html.in (qemucommand): New section.
> ---
>
> I wrote this in response to an IRC comment lamenting that the only
> existing documentation was reading the examples in the testsuite.
Co-incidentally I also blogged about it today
http://berrange.com/posts/2011/12/19/using-command-line-arg-monitor-command-passthrough-with-libvirt-and-kvm/
> diff --git a/docs/drvqemu.html.in b/docs/drvqemu.html.in
> index 4da3817..d6effb5 100644
> --- a/docs/drvqemu.html.in
> +++ b/docs/drvqemu.html.in
> @@ -513,6 +513,67 @@ $ virsh domxml-to-native qemu-argv demo.xml
> -serial none -parallel none -usb
> </pre>
>
> + <h2><a name="qemucommand">Pass-through of arbitrary qemu
> + commands</a></h2>
> +
> + <p>Libvirt provides an optional
> + library <code>libvirt-qemu.so</code> for dealing specifically
> + with qemu. This library is <b>unsupported</b>, in that it is
> + not guaranteed to have a stable API, and that mis-using the
> + library may result in inconsistent state the crashes libvirtd.
> + However, when used correctly, this library allows testing
> + specific qemu features that have not yet been ported to the
> + generic libvirt XML and API interfaces.
> + </p>
> + <p>The library provides two
> + API: <code>virDomainQemuMonitorCommand</code>, for sending an
> + arbitrary monitor command (in either HMP or QMP format) to a
> + qemu guest (<span class="since">Since 0.8.3</span>),
> + and <code>virDomainQemuAttach</code>, for registering a qemu
> + domain that was manually started so that it can then be managed
> + by libvirtd (<span class="since">Since 0.9.4</span>).
> + </p>
> + <p>Additionally, the following XML additions allow fine-tuning of
> + the command line given to qemu when starting a domain
> + (<span class="since">Since 0.8.3</span>). In order to use the
> + XML additions, it is necessary to issue an XML namespace request
> + (the special <code>xmlns:<i>name</i></code> attribute) that
> + pulls in <code>http://libirt.org/schemas/domain/qemu/1.0</code>;
> + typically, the namespace is given the name
> + of <code>qemu</code>. With the namespace in place, it is then
> + possible to add an element <code><qemu:commandline></code>
> + under <code>driver</code>, with the following sub-elements
> + repeated as often as needed:
> + <dl>
> + <dt><code>qemu:arg</code></dt>
> + <dd>Add an additional command-line argument to the qemu
> + process when starting the domain, given by the value of the
> + attribute <code>value</code>.
> + </dd>
> + <dt><code>qemu:env</code></dt>
> + <dd>Add an additional environment variable to the qemu
> + process when starting the domain, given with the name-value
> + pair recorded in the attributes <code>name</code>
> + and <code>value</code>.</dd>
> + </dl>
> +
> + <p>Example:</p><pre>
> +<domain type='qemu' xmlns:qemu='http://libirt.org/schemas/domain/qemu/1.0'>
> + <name>QEmu-fedora-i686</name>
> + <memory>219200</memory>
> + <os>
> + <type arch='i686' machine='pc'>hvm</type>
> + </os>
> + <devices>
> + <emulator>/usr/bin/qemu-system-x86_64</emulator>
> + </devices>
> + <qemu:commandline>
> + <qemu:arg value='-newarg'/>
> + <qemu:env name='QEMU_ENV' value='VAL'/>
> + </qemu:commandline>
> +</domain>
> +</pre>
> +
> <h2><a name="xmlconfig">Example domain XML config</a></h2>
>
> <h3>QEMU emulated guest on x86_64</h3>
ACK
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the libvir-list
mailing list