mirror of
https://github.com/xcat2/xcat-core.git
synced 2026-10-21 23:28:19 +00:00
ff4fb0d660
The aarch64 profile named one video model for every hypervisor. A model is not a property of the architecture: the emulator build decides it. On a host whose aarch64 emulator carries no virtio-gpu device, libvirt answers "domain configuration does not support video model 'virtio'" and mkvm cannot define the node, while the riscv64 emulator of the same host offers virtio. build_xmldesc() now reads the domain capabilities of the hypervisor and preferred_video_model() returns the first model the profile wants that the hypervisor offers. An aarch64 guest wants virtio and falls back to vga, which is what an emulator with no virtio-gpu device offers. vm.vidmodel still overrides both, and an architecture with no preference list makes no libvirt call. Measured on a hypervisor whose aarch64 emulator has no virtio-gpu device: the builder picks vga and virsh define accepts the domain. The same builder asking for virtio is refused there. Three assertions in kvm_guest_arch.t fail without this change. Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>