Install QEMU's virtio-vga display and check for it
The smoketest VMs start with -vga virtio, but Arch packages that display apart from qemu-base, so the base image build failed with "Virtio VGA not available". update.sh now installs qemu-hw-display-virtio-vga, and doctor and smoketest run check QEMU has the display before anything downloads. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -62,6 +62,12 @@ in_flatpak() {
|
||||
[ -f /.flatpak-info ] || [ -n "${FLATPAK_ID:-}" ]
|
||||
}
|
||||
|
||||
# Whether QEMU has the display the smoketest's VMs start with (-vga virtio).
|
||||
# Arch packages it apart from qemu-base, as qemu-hw-display-virtio-vga.
|
||||
qemu_has_virtio_vga() {
|
||||
[[ "$(qemu-system-x86_64 -device help 2> /dev/null)" == *'name "virtio-vga"'* ]]
|
||||
}
|
||||
|
||||
# This project's folder
|
||||
sibling_dir() {
|
||||
cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd
|
||||
|
||||
@@ -50,6 +50,15 @@ cmd_doctor() {
|
||||
problem "not installed: ${missing[*]}" "fix: bash $(sibling_dir)/update.sh"
|
||||
fi
|
||||
|
||||
if command -v qemu-system-x86_64 &> /dev/null; then
|
||||
if qemu_has_virtio_vga; then
|
||||
ok "QEMU has the virtio-vga display the smoketest's VMs use"
|
||||
else
|
||||
problem "QEMU has no virtio-vga display, so the smoketest's VMs won't start" \
|
||||
"fix: bash $(sibling_dir)/update.sh"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -r /dev/kvm ] && [ -w /dev/kvm ]; then
|
||||
ok "KVM is available for the smoketest's virtual machines"
|
||||
else
|
||||
|
||||
@@ -56,6 +56,8 @@ require_vm_tools() {
|
||||
command -v "$tool" &> /dev/null \
|
||||
|| die "$tool isn't installed. Install coredesktop-dev's packages: bash $(sibling_dir)/update.sh"
|
||||
done
|
||||
qemu_has_virtio_vga \
|
||||
|| die "QEMU has no virtio-vga display. Install coredesktop-dev's packages: bash $(sibling_dir)/update.sh"
|
||||
[ -r "$KVM_DEVICE" ] && [ -w "$KVM_DEVICE" ] \
|
||||
|| die "Can't use $KVM_DEVICE. Turn on virtualization (VT-x/AMD-V) in the firmware settings."
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user