References: boo#981836 Tell libvirt what machine type the user chose for Xen (PV or HVM). Without a type specified, the default is to return the capabilities of a pv machine. This will allow the UEFI Customize option to show up when Xen HVM is selected. Also specify the name of our aavmf firmware for aarch64. Index: virt-manager-1.3.2/virtinst/domcapabilities.py =================================================================== --- virt-manager-1.3.2.orig/virtinst/domcapabilities.py +++ virt-manager-1.3.2/virtinst/domcapabilities.py @@ -73,13 +73,20 @@ class _Devices(_CapsBlock): class DomainCapabilities(XMLBuilder): @staticmethod - def build_from_params(conn, emulator, arch, machine, hvtype): + def build_from_params(conn, emulator, arch, machine, hvtype, os_type): xml = None if conn.check_support( conn.SUPPORT_CONN_DOMAIN_CAPABILITIES): + machine_type = machine + # For Xen capabilities pass either xenpv or xenfv + if hvtype == "xen": + if os_type == "hvm": + machine_type = "xenfv" + else: + machine_type = "xenpv" try: xml = conn.getDomainCapabilities(emulator, arch, - machine, hvtype) + machine_type, hvtype) except: logging.debug("Error fetching domcapabilities XML", exc_info=True) @@ -92,7 +99,7 @@ class DomainCapabilities(XMLBuilder): @staticmethod def build_from_guest(guest): return DomainCapabilities.build_from_params(guest.conn, - guest.emulator, guest.os.arch, guest.os.machine, guest.type) + guest.emulator, guest.os.arch, guest.os.machine, guest.type, guest.os.os_type) # Mapping of UEFI binary names to their associated architectures. We # only use this info to do things automagically for the user, it shouldn't @@ -106,6 +113,7 @@ class DomainCapabilities(XMLBuilder): "aarch64": [ ".*AAVMF_CODE\.fd", # RHEL ".*aarch64/QEMU_EFI.*", # gerd's firmware repo + ".*aavmf-aarch64-.*" # SUSE ], }