[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