- bsc#1178926 - Unable to find any master var for loader

/usr/share/qemu/{bios.bin, bios-256k.bin}
  virtman-legacy-bios-support.patch

OBS-URL: https://build.opensuse.org/package/show/Virtualization/virt-manager?expand=0&rev=541
This commit is contained in:
Charles Arnold 2021-02-24 22:18:04 +00:00 committed by Git OBS Bridge
parent 47f719b76e
commit 16b0bd545c
5 changed files with 102 additions and 1 deletions

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Wed Feb 24 14:10:01 MST 2021 - acho@suse.com
- bsc#1178926 - Unable to find any master var for loader
/usr/share/qemu/{bios.bin, bios-256k.bin}
virtman-legacy-bios-support.patch
-------------------------------------------------------------------
Mon Jan 25 14:32:10 MST 2021 - carnold@suse.com

View File

@ -67,6 +67,7 @@ Patch157: virtman-fix-restore-vm-menu-selection.patch
Patch158: virtman-disallow-adding-floppy-disk.patch
Patch159: virtman-register-delete-event-for-details-dialog.patch
Patch160: virtman-show-no-firmware-for-xenpv.patch
Patch161: virtman-legacy-bios-support.patch
Patch170: virtinst-xen-drive-type.patch
Patch171: virtinst-xenbus-disk-index-fix.patch
Patch172: virtinst-refresh_before_fetch_pool.patch
@ -198,6 +199,7 @@ machine).
%patch158 -p1
%patch159 -p1
%patch160 -p1
%patch161 -p1
%patch170 -p1
%patch171 -p1
%patch172 -p1

View File

@ -1,3 +1,7 @@
References: bsc#1180897
Removing the cdrom iso file from the device prevents booting
with a qemu error.
Index: virt-manager-3.2.0/virtinst/install/installer.py
===================================================================
--- virt-manager-3.2.0.orig/virtinst/install/installer.py

View File

@ -4,7 +4,7 @@ Index: virt-manager-3.2.0/virtinst/guest.py
===================================================================
--- virt-manager-3.2.0.orig/virtinst/guest.py
+++ virt-manager-3.2.0/virtinst/guest.py
@@ -691,6 +691,8 @@ class Guest(XMLBuilder):
@@ -704,6 +704,8 @@ class Guest(XMLBuilder):
self.type != "kvm"):
log.warning( # pragma: no cover
"KVM acceleration not available, using '%s'", self.type)

View File

@ -0,0 +1,88 @@
References: bsc#1178926
When we choose /usr/share/qemu/bios.bin or /usr/share/qemu/bios-256k.bin
in Customize configuration before install, show this error message:
Unable to complete install: 'operation failed: unable to find any master var store for loader: /usr/share/qemu/bios.bin'
Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 65, in cb_wrapper
callback(asyncjob, *args, **kwargs)
File "/usr/share/virt-manager/virtManager/createvm.py", line 2081, in _do_async_install
installer.start_install(guest, meter=meter)
File "/usr/share/virt-manager/virtinst/install/installer.py", line 721, in start_install
domain = self._create_guest(
File "/usr/share/virt-manager/virtinst/install/installer.py", line 669, in _create_guest
domain = self.conn.createXML(install_xml or final_xml, 0)
File "/usr/lib64/python3.8/site-packages/libvirt.py", line 4347, in createXML
raise libvirtError('virDomainCreateXML() failed')
libvirt.libvirtError: operation failed: unable to find any master var store for loader: /usr/share/qemu/bios.bin
This patch check the loader if it is include bios.bin and bios-256k.bin.
Signed-off-by: Yu-Chen, Cho <acho suse com>
--
v2:
Fixed tabs vs spaces issues.
v1:
Check the loader if it is include bios.bin and bios-256k.bin.
---
virtManager/object/domain.py | 18 +++++++++---------
virtinst/guest.py | 13 +++++++++++++
2 files changed, 22 insertions(+), 9 deletions(-)
Index: virt-manager-3.2.0/virtManager/object/domain.py
===================================================================
--- virt-manager-3.2.0.orig/virtManager/object/domain.py
+++ virt-manager-3.2.0/virtManager/object/domain.py
@@ -671,16 +671,16 @@ class vmmDomain(vmmLibvirtObject):
if loader != _SENTINEL:
if loader is None:
- # Implies seabios, aka the default, so clear everything
- guest.os.loader = None
- guest.os.loader_ro = None
- guest.os.loader_type = None
- guest.os.nvram = None
- guest.os.nvram_template = None
+ # Implies the default, so clear everything
+ guest.set_legacy_path(None)
else:
- # Implies UEFI
- guest.set_uefi_path(loader)
- guest.disable_hyperv_for_uefi()
+ if "bios.bin" in loader or "bios-256k.bin" in loader:
+ # Implies Custom: seabios, not UEFI
+ guest.set_legacy_path(loader)
+ else:
+ # Implies UEFI
+ guest.set_uefi_path(loader)
+ guest.disable_hyperv_for_uefi()
if nvram != _SENTINEL:
guest.os.nvram = nvram
Index: virt-manager-3.2.0/virtinst/guest.py
===================================================================
--- virt-manager-3.2.0.orig/virtinst/guest.py
+++ virt-manager-3.2.0/virtinst/guest.py
@@ -569,6 +569,19 @@ class Guest(XMLBuilder):
self.os.machine)
self.os.machine = "q35"
+ def set_legacy_path(self, path):
+ """
+ Configure legacy BIOS for QEMU.
+ """
+ self.os.loader = path
+ if (path):
+ self.os.loader_ro = True
+ else:
+ self.os.loader_ro = None
+ self.os.loader_type = None
+ self.os.nvram = None
+ self.os.nvram_template = None
+
def disable_hyperv_for_uefi(self):
# UEFI doesn't work with hyperv bits for some OS
if not self.is_uefi():