
On Tue, Aug 27, 2024 at 21:36:29 -0000, bo0od--- via Users wrote:
Full VM xml:
```
[...]
<audio id='1' type='spice'/> <video> <model type='virtio' heads='1' primary='yes'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/> <acceleration accel3d='yes' accel2d='yes'/> <gl enable='yes'/> </video> <watchdog model='itco' action='reset'/> <memballoon model='none'/> <rng model='virtio'> <rate bytes='1024' period='1000'/> <backend model='random'>/dev/random</backend> <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/> </rng> </devices> </domain> ```
But it will always show:
``` error: XML document failed to validate against schema: Unable to validate doc against /usr/share/libvirt/schemas/domain.rng Extra element devices in interleave Element domain failed to validate content ```
Any idea how to resolve this?
Error from a XML validator with more reasonable error reporting is: /tmp/asdfasdf.xml:134:50: error: element "acceleration" not allowed here; expected the element end-tag or element "acpi", "alias" or "driver" /tmp/asdfasdf.xml:135:25: error: element "gl" not allowed here; expected the element end-tag or element "acpi", "alias" or "driver" Per https://www.libvirt.org/formatdomain.html#video-devices The '<acceleration' element is supposed to be a sub-element of 'model': <devices> <video> <model type='vga' vram='16384' heads='1'> <acceleration accel3d='yes' accel2d='yes'/> </model> <driver name='qemu'/> </video> </devices> And '<gl' is supposed to be a child of 'graphics' instead of '<video'. As you have one at '<graphics' just delete it. With '<video>' like this it validates properly: <video> <model type='virtio' heads='1' primary='yes'> <acceleration accel3d='yes' accel2d='yes'/> </model> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/> </video> Although I don't know where you got that definition because the qemu driver doesn't support 'accel2d' altogether: $ virsh define /tmp/asdfasdf.xml error: Failed to define domain from /tmp/asdfasdf.xml error: unsupported configuration: qemu does not support the accel2d setting In src/qemu/qemu_validate.c in the function qemuValidateDomainDeviceDefVideo() the check is as follows: if (video->accel && video->accel->accel2d == VIR_TRISTATE_BOOL_YES) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("qemu does not support the accel2d setting")); return -1; } Thus with no exception. Thus the final working 'video' is: <video> <model type='virtio' heads='1' primary='yes'> <acceleration accel3d='yes'/> </model> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/> </video> Which is accepted: $ virsh define /tmp/asdfasdf.xml Domain 'Whonix-Gateway' defined from /tmp/asdfasdf.xml