qemu-system-arm is missing dependency seabios

Bug #2033905 reported by Giuseppe Petralia
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
qemu (Ubuntu)
Triaged
Undecided
Sergio Durigan Junior

Bug Description

qemu-system-arm is missing seabios as dependency. As a result if you install charm nova-compute on arm64 machines and try to create a VM on the arm64 hypervisor, VM creation will fail with:

2023-09-01 13:12:00.329 189585 ERROR nova.virt.libvirt.driver [req-3dadac8a-cd7b-42fb-a0ff-5571765cded0 de6ee71f5247471a96ee54c7be4c7a0a d53aa7ee73474b9eb7de53b8019b8333 - default default] [instance: ff8d2ca2-5d17-423a-9e42-4bf375f943de] Failed to start libvirt guest: libvirt.libvirtError: internal error: qemu unexpectedly closed the monitor: 2023-09-01T13:11:59.759452Z qemu-system-aarch64: -device virtio-vga,id=video0,max_outputs=1,bus=pci.7,addr=0x0: failed to find romfile "vgabios-virtio.bin"

Workaround is to install manually the dependency with:

apt install seabios

Tags: qemu-24.04
Bryce Harrington (bryce)
tags: added: server-triage-discuss
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :
Download full text (5.3 KiB)

This is ... unexpected.

I set up an arm64 machine and ran a normal (read no special config in any way) guest via libvirt/qemu/kvm

It works fine and seabios is not installed at this moment.
Guest config looks like:

<domain type='kvm'>
  <name>jammy-cpaelzer</name>
  <uuid>7dcae1b1-3caa-462c-b91d-b6af643a9dbc</uuid>
  <metadata>
  <memory unit='KiB'>524288</memory>
  <currentMemory unit='KiB'>524288</currentMemory>
  <vcpu placement='static'>1</vcpu>
  <os>
    <type arch='aarch64' machine='virt-6.2'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/AAVMF/AAVMF_CODE.fd</loader>
    <nvram template='/usr/share/AAVMF/AAVMF_CODE.fd'>/var/lib/libvirt/qemu/nvram/jammy-cpaelzer_VARS.fd</nvram>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <pae/>
    <gic version='3'/>
  </features>
  <cpu mode='host-passthrough' check='none'/>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <devices>
    <emulator>/usr/bin/qemu-system-aarch64</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/var/lib/uvtool/libvirt/images/jammy-cpaelzer.qcow'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/var/lib/uvtool/libvirt/images/jammy-cpaelzer-ds.qcow'/>
      <target dev='vdb' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
    </disk>
    <controller type='pci' index='0' model='pcie-root'/>
    <controller type='pci' index='1' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='1' port='0x8'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0' multifunction='on'/>
    </controller>
    <controller type='pci' index='2' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='2' port='0x9'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <controller type='pci' index='3' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='3' port='0xa'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
    </controller>
    <controller type='pci' index='4' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='4' port='0xb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x3'/>
    </controller>
    <controller type='pci' index='5' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='5' port='0xc'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x4'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
    </controller>
    <interface type='network'>
      <mac address='52:54:00:d9:1b:cc'/>
      <source network='default'/>
      <model type='virtio'/>
      <address type='...

Read more...

Changed in qemu (Ubuntu):
status: New → Triaged
tags: added: qemu-24.04
tags: added: server-todo
Revision history for this message
Bryce Harrington (bryce) wrote :

Thanks Christian, I was wondering if this might be a trivial fix but it sounds not so.

tags: removed: server-todo server-triage-discuss
tags: added: server-todo
Changed in qemu (Ubuntu):
assignee: nobody → Sergio Durigan Junior (sergiodj)
Revision history for this message
Michael Tokarev (mjt+launchpad-tls) wrote :

This particular case comes from enabling the vgabios-virtio.bin rom in virtio-vga unconditionally, without considering current architecture (the rom only works on x86). virtio-vga device should either omit the rom if !x86, or.. just don't care like it currently does :)

I'm evaluating what to do with this one. Adding the dep does not look right, - this is the first such request in the history. It might be added to Recommends: or even better to Suggests:. But I'd love to omit rom loading when it makes no sense. Let's see...

See also https://lists.nongnu.org/archive/html/qemu-devel/2024-01/msg06515.html

Bryce Harrington (bryce)
tags: removed: server-todo
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.