[PATCH] virtmanager: Fixed the legacy firmware installation error

Charles Arnold carnold at suse.com
Wed Mar 10 17:31:57 UTC 2021


On Wed, 2021-01-13 at 12:18 -0500, Cole Robinson wrote:
> On 1/13/21 1:40 AM, Al Cho wrote:
> > Hi,
> > 
> > That's before the last step during install new VM,
> > and there is a checkbutton "Customize Configure before install"
> > and Apply after choose Frimware bios.bin or bios-256k.bin, Click
> > "Begin
> > Installation"
> > show up the error message, list virt-manager --debug output below:
> > 
> > [Wed, 13 Jan 2021 14:35:14 virt-manager 3983] DEBUG (vmwindow:184)
> > Showing VM details: <vmmDomainVirtinst name=opensuse15.2-2
> > id=0x7f3b5449b080>
> > [Wed, 13 Jan 2021 14:35:14 virt-manager 3983] DEBUG (engine:316)
> > window
> > counter incremented to 3
> > [Wed, 13 Jan 2021 14:35:20 virt-manager 3983] DEBUG
> > (libvirtobject:48)
> > Redefining <vmmDomainVirtinst name=opensuse15.2-2
> > id=0x7f3b5449b080>
> > with XML diff:
> > --- Original XML
> > +++ New XML
> > @@ -11,6 +11,7 @@
> > Â  Â <vcpu>2</vcpu>
> > Â  Â <os>
> > Â  Â  Â <type arch="x86_64" machine="q35">hvm</type>
> > + Â  Â <loader readonly="yes"
> > type="pflash">/usr/share/qemu/bios.bin</loader>
> > Â  Â  Â <boot dev="hd"/>
> > Â  Â </os>
> > Â  Â <features>
> > 
> > [Wed, 13 Jan 2021 14:35:25 virt-manager 3983] DEBUG (createvm:1903)
> > User
> > finished customize dialog, starting install
> > [Wed, 13 Jan 2021 14:35:25 virt-manager 3983] DEBUG (createvm:2000)
> > Starting background install process
> > [Wed, 13 Jan 2021 14:35:25 virt-manager 3983] DEBUG (installer:599)
> > Generated install XML:
> > <domain type="kvm">
> > Â  <name>opensuse15.2-2</name>
> > Â  <uuid>e533dfcd-6767-400b-af6a-01de2716c88c</uuid>
> > Â  <metadata>
> > Â  Â  <libosinfo:libosinfo
> > xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
> > Â  Â  Â  <libosinfo:os id="http://opensuse.org/opensuse/15.2"/>
> > Â  Â  </libosinfo:libosinfo>
> > Â  </metadata>
> > Â  <memory>2097152</memory>
> > Â  <currentMemory>2097152</currentMemory>
> > Â  <vcpu>2</vcpu>
> > Â  <os>
> > Â  Â  <type arch="x86_64" machine="q35">hvm</type>
> > Â  Â  <loader readonly="yes"
> > type="pflash">/usr/share/qemu/bios.bin</loader>
> > Â  Â  <boot dev="cdrom"/>
> > Â  Â  <boot dev="hd"/>
> > Â  </os>
> > Â  <features>
> > Â  Â  <acpi/>
> > Â  Â  <apic/>
> > Â  Â  <vmport state="off"/>
> > Â  </features>
> > Â  <cpu mode="host-model"/>
> > Â  <clock offset="utc">
> > Â  Â  <timer name="rtc" tickpolicy="catchup"/>
> > Â  Â  <timer name="pit" tickpolicy="delay"/>
> > Â  Â  <timer name="hpet" present="no"/>
> > Â  </clock>
> > Â  <on_reboot>destroy</on_reboot>
> > Â  <pm>
> > Â  Â  <suspend-to-mem enabled="no"/>
> > Â  Â  <suspend-to-disk enabled="no"/>
> > Â  </pm>
> > Â  <devices>
> > Â  Â  <emulator>/usr/bin/qemu-system-x86_64</emulator>
> > Â  Â  <disk type="file" device="disk">
> > Â  Â  Â  <driver name="qemu" type="qcow2"/>
> > Â  Â  Â  <source file="/home/linux/image/opensuse15.2"/>
> > Â  Â  Â  <target dev="vda" bus="virtio"/>
> > Â  Â  </disk>
> > Â  Â  <disk type="file" device="cdrom">
> > Â  Â  Â  <driver name="qemu" type="raw"/>
> > Â  Â  Â  <source file="/home/linux/image/openSUSE-Leap-15.2-NET-
> > x86_64.iso"/>
> > Â  Â  Â  <target dev="sda" bus="sata"/>
> > Â  Â  Â  <readonly/>
> > Â  Â  </disk>
> > Â  Â  <controller type="usb" model="qemu-xhci" ports="15"/>
> > Â  Â  <interface type="network">
> > Â  Â  Â  <source network="default"/>
> > Â  Â  Â  <mac address="52:54:00:94:3c:9c"/>
> > Â  Â  Â  <model type="virtio"/>
> > Â  Â  </interface>
> > Â  Â  <console type="pty"/>
> > Â  Â  <channel type="unix">
> > Â  Â  Â  <source mode="bind"/>
> > Â  Â  Â  <target type="virtio" name="org.qemu.guest_agent.0"/>
> > Â  Â  </channel>
> > Â  Â  <channel type="spicevmc">
> > Â  Â  Â  <target type="virtio" name="com.redhat.spice.0"/>
> > Â  Â  </channel>
> > Â  Â  <input type="tablet" bus="usb"/>
> > Â  Â  <graphics type="spice" port="-1" tlsPort="-1" autoport="yes">
> > Â  Â  Â  <image compression="off"/>
> > Â  Â  </graphics>
> > Â  Â  <sound model="ich9"/>
> > Â  Â  <video>
> > Â  Â  Â  <model type="qxl"/>
> > Â  Â  </video>
> > Â  Â  <redirdev bus="usb" type="spicevmc"/>
> > Â  Â  <redirdev bus="usb" type="spicevmc"/>
> > Â  Â  <memballoon model="virtio"/>
> > Â  Â  <rng model="virtio">
> > Â  Â  Â  <backend model="random">/dev/urandom</backend>
> > Â  Â  </rng>
> > Â  </devices>
> > </domain>
> > 
> > [Wed, 13 Jan 2021 14:35:25 virt-manager 3983] DEBUG (installer:601)
> > Generated boot XML:
> > <domain type="kvm">
> > Â  <name>opensuse15.2-2</name>
> > Â  <uuid>e533dfcd-6767-400b-af6a-01de2716c88c</uuid>
> > Â  <metadata>
> > Â  Â  <libosinfo:libosinfo
> > xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
> > Â  Â  Â  <libosinfo:os id="http://opensuse.org/opensuse/15.2"/>
> > Â  Â  </libosinfo:libosinfo>
> > Â  </metadata>
> > Â  <memory>2097152</memory>
> > Â  <currentMemory>2097152</currentMemory>
> > Â  <vcpu>2</vcpu>
> > Â  <os>
> > Â  Â  <type arch="x86_64" machine="q35">hvm</type>
> > Â  Â  <loader readonly="yes"
> > type="pflash">/usr/share/qemu/bios.bin</loader>
> > Â  Â  <boot dev="hd"/>
> > Â  </os>
> > Â  <features>
> > Â  Â  <acpi/>
> > Â  Â  <apic/>
> > Â  Â  <vmport state="off"/>
> > Â  </features>
> > Â  <cpu mode="host-model"/>
> > Â  <clock offset="utc">
> > Â  Â  <timer name="rtc" tickpolicy="catchup"/>
> > Â  Â  <timer name="pit" tickpolicy="delay"/>
> > Â  Â  <timer name="hpet" present="no"/>
> > Â  </clock>
> > Â  <pm>
> > Â  Â  <suspend-to-mem enabled="no"/>
> > Â  Â  <suspend-to-disk enabled="no"/>
> > Â  </pm>
> > Â  <devices>
> > Â  Â  <emulator>/usr/bin/qemu-system-x86_64</emulator>
> > Â  Â  <disk type="file" device="disk">
> > Â  Â  Â  <driver name="qemu" type="qcow2"/>
> > Â  Â  Â  <source file="/home/linux/image/opensuse15.2"/>
> > Â  Â  Â  <target dev="vda" bus="virtio"/>
> > Â  Â  </disk>
> > Â  Â  <disk type="file" device="cdrom">
> > Â  Â  Â  <target dev="sda" bus="sata"/>
> > Â  Â  Â  <readonly/>
> > Â  Â  </disk>
> > Â  Â  <controller type="usb" model="qemu-xhci" ports="15"/>
> > Â  Â  <interface type="network">
> > Â  Â  Â  <source network="default"/>
> > Â  Â  Â  <mac address="52:54:00:94:3c:9c"/>
> > Â  Â  Â  <model type="virtio"/>
> > Â  Â  </interface>
> > Â  Â  <console type="pty"/>
> > Â  Â  <channel type="unix">
> > Â  Â  Â  <source mode="bind"/>
> > Â  Â  Â  <target type="virtio" name="org.qemu.guest_agent.0"/>
> > Â  Â  </channel>
> > Â  Â  <channel type="spicevmc">
> > Â  Â  Â  <target type="virtio" name="com.redhat.spice.0"/>
> > Â  Â  </channel>
> > Â  Â  <input type="tablet" bus="usb"/>
> > Â  Â  <graphics type="spice" port="-1" tlsPort="-1" autoport="yes">
> > Â  Â  Â  <image compression="off"/>
> > Â  Â  </graphics>
> > Â  Â  <sound model="ich9"/>
> > Â  Â  <video>
> > Â  Â  Â  <model type="qxl"/>
> > Â  Â  </video>
> > Â  Â  <redirdev bus="usb" type="spicevmc"/>
> > Â  Â  <redirdev bus="usb" type="spicevmc"/>
> > Â  Â  <memballoon model="virtio"/>
> > Â  Â  <rng model="virtio">
> > Â  Â  Â  <backend model="random">/dev/urandom</backend>
> > Â  Â  </rng>
> > Â  </devices>
> > </domain>
> > 
> > [Wed, 13 Jan 2021 14:35:25 virt-manager 3983] DEBUG (error:101)
> > error
> > dialog message:
> > summary=Unable to complete install: 'operation failed: unable to
> > find
> > any master var store for loader: /usr/share/qemu/bios.bin'
> > details=Traceback (most recent call last):
> > Â  File "./virtManager/asyncjob.py", line 65, in cb_wrapper
> > Â  Â  callback(asyncjob, *args, **kwargs)
> > Â  File "./virtManager/createvm.py", line 2001, in
> > _do_async_install
> > Â  Â  installer.start_install(guest, meter=meter)
> > Â  File "./virtinst/install/installer.py", line 701, in
> > start_install
> > Â  Â  domain = self._create_guest(
> > Â  File "./virtinst/install/installer.py", line 649, in
> > _create_guest
> > Â  Â  domain = self.conn.createXML(install_xml or final_xml, 0)
> > Â  File "/usr/lib64/python3.8/site-packages/libvirt.py", line 4366,
> > in
> > createXML
> > Â  Â  raise libvirtError('virDomainCreateXML() failed')
> > libvirt.libvirtError: operation failed: unable to find any master
> > var
> > store for loader: /usr/share/qemu/bios.bin
> 
> Okay thanks for clarifying. We populate that firmware box from
> domcapabilities <loader> values. Can you attach `sudo virsh
> domcapabilities` output?

The output of `virsh domcapabilities`,

<domainCapabilities>
  <path>/usr/bin/qemu-system-x86_64</path>
  <domain>kvm</domain>
  <machine>pc-i440fx-5.2</machine>
  <arch>x86_64</arch>
  <vcpu max='255'/>
  <iothreads supported='yes'/>
  <os supported='yes'>
    <enum name='firmware'>
      <value>bios</value>
      <value>efi</value>
    </enum>
    <loader supported='yes'>
      <value>/usr/share/qemu/bios-256k.bin</value>
      <value>/usr/share/qemu/ovmf-x86_64-ms-code.bin</value>
      <value>/usr/share/qemu/ovmf-x86_64-opensuse-code.bin</value>
      <value>/usr/share/qemu/ovmf-x86_64-suse-code.bin</value>
      <value>/usr/share/qemu/ovmf-x86_64-code.bin</value>
      <value>/usr/share/qemu/ovmf-x86_64-ms-4m-code.bin</value>
      <value>/usr/share/qemu/ovmf-x86_64-opensuse-4m-code.bin</value>
      <value>/usr/share/qemu/ovmf-x86_64-suse-4m-code.bin</value>
      <value>/usr/share/qemu/ovmf-x86_64-4m-code.bin</value>
      <value>/usr/share/qemu/bios.bin</value>
      <enum name='type'>
        <value>rom</value>
        <value>pflash</value>
      </enum>
      <enum name='readonly'>
        <value>yes</value>
        <value>no</value>
      </enum>
      <enum name='secure'>
        <value>no</value>
      </enum>
    </loader>
  </os>
  <cpu>
    <mode name='host-passthrough' supported='yes'>
      <enum name='hostPassthroughMigratable'>
        <value>on</value>
        <value>off</value>
      </enum>
    </mode>
    <mode name='host-model' supported='yes'>
      <model fallback='forbid'>Nehalem-IBRS</model>
      <vendor>Intel</vendor>
      <feature policy='require' name='vme'/>
      <feature policy='require' name='vmx'/>
      <feature policy='require' name='x2apic'/>
      <feature policy='require' name='tsc-deadline'/>
      <feature policy='require' name='hypervisor'/>
      <feature policy='require' name='arat'/>
      <feature policy='require' name='tsc_adjust'/>
      <feature policy='require' name='umip'/>
      <feature policy='require' name='stibp'/>
      <feature policy='require' name='arch-capabilities'/>
      <feature policy='require' name='ssbd'/>
      <feature policy='require' name='rdtscp'/>
      <feature policy='require' name='invtsc'/>
      <feature policy='require' name='skip-l1dfl-vmentry'/>
      <feature policy='require' name='pschange-mc-no'/>
    </mode>
    <mode name='custom' supported='yes'>
      <model usable='yes'>qemu64</model>
      <model usable='yes'>qemu32</model>
      <model usable='no'>phenom</model>
      <model usable='yes'>pentium3</model>
      <model usable='yes'>pentium2</model>
      <model usable='yes'>pentium</model>
      <model usable='no'>n270</model>
      <model usable='yes'>kvm64</model>
      <model usable='yes'>kvm32</model>
      <model usable='no'>coreduo</model>
      <model usable='no'>core2duo</model>
      <model usable='no'>athlon</model>
      <model usable='no'>Westmere-IBRS</model>
      <model usable='no'>Westmere</model>
      <model usable='no'>Snowridge</model>
      <model usable='no'>Skylake-Server-noTSX-IBRS</model>
      <model usable='no'>Skylake-Server-IBRS</model>
      <model usable='no'>Skylake-Server</model>
      <model usable='no'>Skylake-Client-noTSX-IBRS</model>
      <model usable='no'>Skylake-Client-IBRS</model>
      <model usable='no'>Skylake-Client</model>
      <model usable='no'>SandyBridge-IBRS</model>
      <model usable='no'>SandyBridge</model>
      <model usable='yes'>Penryn</model>
      <model usable='no'>Opteron_G5</model>
      <model usable='no'>Opteron_G4</model>
      <model usable='no'>Opteron_G3</model>
      <model usable='yes'>Opteron_G2</model>
      <model usable='yes'>Opteron_G1</model>
      <model usable='yes'>Nehalem-IBRS</model>
      <model usable='yes'>Nehalem</model>
      <model usable='no'>IvyBridge-IBRS</model>
      <model usable='no'>IvyBridge</model>
      <model usable='no'>Icelake-Server-noTSX</model>
      <model usable='no'>Icelake-Server</model>
      <model usable='no'>Icelake-Client-noTSX</model>
      <model usable='no'>Icelake-Client</model>
      <model usable='no'>Haswell-noTSX-IBRS</model>
      <model usable='no'>Haswell-noTSX</model>
      <model usable='no'>Haswell-IBRS</model>
      <model usable='no'>Haswell</model>
      <model usable='no'>EPYC-Rome</model>
      <model usable='no'>EPYC-IBPB</model>
      <model usable='no'>EPYC</model>
      <model usable='no'>Dhyana</model>
      <model usable='no'>Cooperlake</model>
      <model usable='yes'>Conroe</model>
      <model usable='no'>Cascadelake-Server-noTSX</model>
      <model usable='no'>Cascadelake-Server</model>
      <model usable='no'>Broadwell-noTSX-IBRS</model>
      <model usable='no'>Broadwell-noTSX</model>
      <model usable='no'>Broadwell-IBRS</model>
      <model usable='no'>Broadwell</model>
      <model usable='yes'>486</model>
    </mode>
  </cpu>
  <devices>
    <disk supported='yes'>
      <enum name='diskDevice'>
        <value>disk</value>
        <value>cdrom</value>
        <value>floppy</value>
        <value>lun</value>
      </enum>
      <enum name='bus'>
        <value>ide</value>
        <value>fdc</value>
        <value>scsi</value>
        <value>virtio</value>
        <value>usb</value>
        <value>sata</value>
      </enum>
      <enum name='model'>
        <value>virtio</value>
        <value>virtio-transitional</value>
        <value>virtio-non-transitional</value>
      </enum>
    </disk>
    <graphics supported='yes'>
      <enum name='type'>
        <value>sdl</value>
        <value>vnc</value>
        <value>spice</value>
        <value>egl-headless</value>
      </enum>
    </graphics>
    <video supported='yes'>
      <enum name='modelType'>
        <value>vga</value>
        <value>cirrus</value>
        <value>vmvga</value>
        <value>qxl</value>
        <value>virtio</value>
        <value>none</value>
        <value>bochs</value>
        <value>ramfb</value>
      </enum>
    </video>
    <hostdev supported='yes'>
      <enum name='mode'>
        <value>subsystem</value>
      </enum>
      <enum name='startupPolicy'>
        <value>default</value>
        <value>mandatory</value>
        <value>requisite</value>
        <value>optional</value>
      </enum>
      <enum name='subsysType'>
        <value>usb</value>
        <value>pci</value>
        <value>scsi</value>
      </enum>
      <enum name='capsType'/>
      <enum name='pciBackend'/>
    </hostdev>
    <rng supported='yes'>
      <enum name='model'>
        <value>virtio</value>
        <value>virtio-transitional</value>
        <value>virtio-non-transitional</value>
      </enum>
      <enum name='backendModel'>
        <value>random</value>
        <value>egd</value>
        <value>builtin</value>
      </enum>
    </rng>
  </devices>
  <features>
    <gic supported='no'/>
    <vmcoreinfo supported='yes'/>
    <genid supported='yes'/>
    <backingStoreInput supported='yes'/>
    <backup supported='no'/>
    <sev supported='no'/>
  </features>
</domainCapabilities>

- Charles





More information about the virt-tools-list mailing list