I have the current libvirt 1.2.20
i want to pass to my machine create with virt-manager
some qemu flags.
I edited the file and add
</devices>
<qemu:commandline>
<qemu:arg value='-L pc-bios'/>
</qemu:commandline>
</domain>
But doesn’t work
i also tried to edit from virsh
virsh edit domain
and put
<qemu:commandline>
<qemu:arg value='-L pc-bios'/>
</qemu:commandline>
But give me this error
errore: XML document failed to validate against schema: Unable to validate doc against /usr/share/libvirt/schemas/domain.rng Element domain has extra content: qemu:commandline Failed. Try again? [y,n,i,f,?]:
How to pass correctly qemu command line?
Thanks
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
elbarna’s own answer is the way to go for configuration options “natively” supported by libvirt (and thus its domain XML).
For qemu commandline arguments (and more) not supported by libvirt, you need to include qemu’s XML namespace declaration in the ‘domain’ root element:
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
Reference: https://libvirt.org/drvqemu.html#qemucommand
Method 2
If you have virt-xml 1.4.1 (released in 2017, so should be widespread by now) or later in your path (provided by community/virt-install in Arch), you can use:
virt-xml $DOMAIN --edit --confirm --qemu-commandline '-my-args 1234' virt-xml $DOMAIN --edit --confirm --qemu-commandline 'env=MY-ENV=1234'
to automatically add the XML corresponding to env vars and/or args, including the namespace. --confirm allows you to preview the changes before committing.
This is much more convenient than trying to manually paste in the XML namespace, and worked for me even though virsh edit was no longer accepting identical manual changes.
Ref: https://blog.wikichoon.com/2017/03/easy-qemu-commandline-passthrough-with.html
Method 3
Found solution using this workaround
Converting QEMU arguments to domain XML
After converting to xml import with
virsh create file.xml
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0