diff --git a/virt-manager.changes b/virt-manager.changes index cc0c2aa0..58198ca6 100644 --- a/virt-manager.changes +++ b/virt-manager.changes @@ -3,8 +3,9 @@ Thu Sep 10 13:46:12 MDT 2015 - carnold@suse.com - Add upstream s390x support patch (bnc#869024) 8dbe96fc-add-s390x-arch-support.patch - virtman-s390x-dont-add-graphics-support.patch + virtman-s390x-ppc64-arch-support.patch Drop virtman-add-s390x-arch-support.patch + Drop virtman-s390x-default-to-vminstall.patch ------------------------------------------------------------------- Tue Sep 8 15:59:53 MDT 2015 - carnold@suse.com diff --git a/virt-manager.spec b/virt-manager.spec index 7b5dd503..2a0ad11e 100644 --- a/virt-manager.spec +++ b/virt-manager.spec @@ -54,11 +54,10 @@ Patch71: virtman-kvm.patch Patch72: virtman-keycombo.patch Patch73: virtman-vminstall.patch Patch74: virtman-show-suse-install-repos.patch -Patch75: virtman-s390x-default-to-vminstall.patch -Patch76: virtman-libvirtd-not-running.patch -Patch77: virtman-dont-allow-grub.xen-to-be-deleted.patch -Patch78: virtinst-pvgrub2-bootloader.patch -Patch79: virtinst-nfs-install-sanitize.patch +Patch75: virtman-libvirtd-not-running.patch +Patch76: virtman-dont-allow-grub.xen-to-be-deleted.patch +Patch77: virtinst-pvgrub2-bootloader.patch +Patch78: virtinst-nfs-install-sanitize.patch # Features or Enhancements Patch100: virtman-eepro100.patch Patch101: virtman-default-guest-from-host-os.patch @@ -66,7 +65,7 @@ Patch102: virtman-default-to-xen-pv.patch Patch103: virtman-autoyast-support.patch Patch104: virtman-packages.patch Patch105: virtman-load-stored-uris.patch -Patch106: virtman-s390x-dont-add-graphics-support.patch +Patch106: virtman-s390x-ppc64-arch-support.patch Patch107: virtman-add-connect-default.patch Patch120: virtinst-storage-ocfs2.patch Patch121: virtinst-default-xen-to-qcow2-format.patch @@ -190,7 +189,6 @@ machine). %patch76 -p1 %patch77 -p1 %patch78 -p1 -%patch79 -p1 # Enhancements %patch100 -p1 %patch101 -p1 diff --git a/virtinst-detect-oes-distros.patch b/virtinst-detect-oes-distros.patch index 296fc903..9e2b6edc 100644 --- a/virtinst-detect-oes-distros.patch +++ b/virtinst-detect-oes-distros.patch @@ -1,11 +1,11 @@ Enhancement to correctly detect Open Enterprise Server media is selected as the installation source. -Index: virt-manager-1.2.0/virtinst/urlfetcher.py +Index: virt-manager-1.2.1/virtinst/urlfetcher.py =================================================================== ---- virt-manager-1.2.0.orig/virtinst/urlfetcher.py -+++ virt-manager-1.2.0/virtinst/urlfetcher.py -@@ -383,6 +383,10 @@ def _distroFromSUSEContent(fetcher, arch - dclass = SLEDDistro +--- virt-manager-1.2.1.orig/virtinst/urlfetcher.py ++++ virt-manager-1.2.1/virtinst/urlfetcher.py +@@ -393,6 +393,10 @@ def _distroFromSUSEContent(fetcher, arch + dclass = SLESDistro if distro_version is None: distro_version = ['VERSION', distribution[1].strip().rsplit(' ')[4]] + elif re.match(".*Open Enterprise Server*", distribution[1]): diff --git a/virtman-add-connect-default.patch b/virtman-add-connect-default.patch index 2b677fe7..79ecc220 100644 --- a/virtman-add-connect-default.patch +++ b/virtman-add-connect-default.patch @@ -1,10 +1,10 @@ Enhancement for when no hypervisor can be found locally it opens the new connection dialog. -Index: virt-manager-1.1.0/virtManager/engine.py +Index: virt-manager-1.2.1/virtManager/engine.py =================================================================== ---- virt-manager-1.1.0.orig/virtManager/engine.py -+++ virt-manager-1.1.0/virtManager/engine.py -@@ -203,9 +203,6 @@ class vmmEngine(vmmGObject): +--- virt-manager-1.2.1.orig/virtManager/engine.py ++++ virt-manager-1.2.1/virtManager/engine.py +@@ -202,9 +202,6 @@ class vmmEngine(vmmGObject): except: logging.exception("Error talking to PackageKit") @@ -14,7 +14,7 @@ Index: virt-manager-1.1.0/virtManager/engine.py warnmsg = _("The 'libvirtd' service will need to be started.\n\n" "After that, virt-manager will connect to libvirt on\n" "the next application start up.") -@@ -219,7 +216,11 @@ class vmmEngine(vmmGObject): +@@ -218,7 +215,11 @@ class vmmEngine(vmmGObject): if not connected and do_start: manager.err.ok(_("Libvirt service must be started"), warnmsg) diff --git a/virtman-allow-destroy-from-shutdown-menu-of-crashed-vm.patch b/virtman-allow-destroy-from-shutdown-menu-of-crashed-vm.patch index c2aafc76..7ec1e1a3 100644 --- a/virtman-allow-destroy-from-shutdown-menu-of-crashed-vm.patch +++ b/virtman-allow-destroy-from-shutdown-menu-of-crashed-vm.patch @@ -6,10 +6,10 @@ Steps to get a KVM VM in the crashed state: 4) Edit the VM's /etc/default/grub file and remove the crashkernel information and then run grub2-mkconfig /boot/grub2/grub.cfg. 5) Start the VM and within the VM's terminal type "echo 'c' > /proc/sysrq-trigger" -Index: virt-manager-1.1.0/virtManager/manager.py +Index: virt-manager-1.2.1/virtManager/manager.py =================================================================== ---- virt-manager-1.1.0.orig/virtManager/manager.py -+++ virt-manager-1.1.0/virtManager/manager.py +--- virt-manager-1.2.1.orig/virtManager/manager.py ++++ virt-manager-1.2.1/virtManager/manager.py @@ -864,7 +864,7 @@ class vmmManager(vmmGObjectUI): show_pause = bool(vm and vm.is_unpauseable()) else: @@ -19,19 +19,11 @@ Index: virt-manager-1.1.0/virtManager/manager.py if vm and vm.managedsave_supported: self.change_run_text(vm.has_managed_save()) -Index: virt-manager-1.1.0/virtManager/vmmenu.py +Index: virt-manager-1.2.1/virtManager/vmmenu.py =================================================================== ---- virt-manager-1.1.0.orig/virtManager/vmmenu.py -+++ virt-manager-1.1.0/virtManager/vmmenu.py -@@ -22,6 +22,7 @@ from gi.repository import Gtk - from virtManager import config - - import platform -+import logging - - #################################################################### - # Build toolbar new button menu (manager and details toolbar) # -@@ -53,6 +54,7 @@ class _VMMenu(Gtk.Menu): +--- virt-manager-1.2.1.orig/virtManager/vmmenu.py ++++ virt-manager-1.2.1/virtManager/vmmenu.py +@@ -50,6 +50,7 @@ class _VMMenu(Gtk.Menu): self._parent = src self._current_vm_cb = current_vm_cb self._show_open = show_open @@ -39,7 +31,7 @@ Index: virt-manager-1.1.0/virtManager/vmmenu.py self._init_state() -@@ -114,6 +116,7 @@ class VMShutdownMenu(_VMMenu): +@@ -111,6 +112,7 @@ class VMShutdownMenu(_VMMenu): name = getattr(child, "vmm_widget_name", None) if name in statemap: child.set_sensitive(statemap[name]) @@ -47,7 +39,7 @@ Index: virt-manager-1.1.0/virtManager/vmmenu.py if name == "reset": child.set_tooltip_text(None) -@@ -130,7 +133,8 @@ class VMActionMenu(_VMMenu): +@@ -127,7 +129,8 @@ class VMActionMenu(_VMMenu): self._add_action(_("_Pause"), "suspend", Gtk.STOCK_MEDIA_PAUSE) self._add_action(_("R_esume"), "resume", Gtk.STOCK_MEDIA_PAUSE) s = self._add_action(_("_Shut Down"), "shutdown", addcb=False) @@ -57,7 +49,7 @@ Index: virt-manager-1.1.0/virtManager/vmmenu.py self.add(Gtk.SeparatorMenuItem()) self._add_action(_("Clone..."), "clone", None) -@@ -146,7 +150,7 @@ class VMActionMenu(_VMMenu): +@@ -143,7 +146,7 @@ class VMActionMenu(_VMMenu): def update_widget_states(self, vm): statemap = { "run": bool(vm and vm.is_runable()), @@ -66,7 +58,7 @@ Index: virt-manager-1.1.0/virtManager/vmmenu.py "suspend": bool(vm and vm.is_stoppable()), "resume": bool(vm and vm.is_paused()), "migrate": bool(vm and vm.is_stoppable()), -@@ -163,6 +167,8 @@ class VMActionMenu(_VMMenu): +@@ -160,6 +163,8 @@ class VMActionMenu(_VMMenu): child.get_submenu().update_widget_states(vm) if name in statemap: child.set_sensitive(statemap[name]) diff --git a/virtman-load-stored-uris.patch b/virtman-load-stored-uris.patch index 5e0abff4..c7bffe7b 100644 --- a/virtman-load-stored-uris.patch +++ b/virtman-load-stored-uris.patch @@ -2,11 +2,11 @@ Reference: bnc#867749 When booted into the native kernel don't ask libvirt to make a local Xen connection and likewise when booted into the Xen kernel don't ask libvirt to connect to the local qemu. -Index: virt-manager-1.1.0/virtManager/engine.py +Index: virt-manager-1.2.1/virtManager/engine.py =================================================================== ---- virt-manager-1.1.0.orig/virtManager/engine.py -+++ virt-manager-1.1.0/virtManager/engine.py -@@ -227,9 +227,22 @@ class vmmEngine(vmmGObject): +--- virt-manager-1.2.1.orig/virtManager/engine.py ++++ virt-manager-1.2.1/virtManager/engine.py +@@ -226,9 +226,22 @@ class vmmEngine(vmmGObject): if not uris: return logging.debug("About to connect to uris %s", uris) diff --git a/virtman-packages.patch b/virtman-packages.patch index 9d8fac96..7f98acf6 100644 --- a/virtman-packages.patch +++ b/virtman-packages.patch @@ -4,10 +4,10 @@ This is not a normal situation on a suse distro. Split out required libvirt packages (kvm vs xen). Only install those libvirt packages for which the host is booted. This patch has a corresponding spec file change (%define libvirt_kvm_packages and %define libvirt_xen_packages). -Index: virt-manager-1.2.0/setup.py +Index: virt-manager-1.2.1/setup.py =================================================================== ---- virt-manager-1.2.0.orig/setup.py -+++ virt-manager-1.2.0/setup.py +--- virt-manager-1.2.1.orig/setup.py ++++ virt-manager-1.2.1/setup.py @@ -280,8 +280,11 @@ class configure(Command): ("prefix=", None, "installation prefix"), ("qemu-user=", None, @@ -45,10 +45,10 @@ Index: virt-manager-1.2.0/setup.py if self.kvm_package_names is not None: template += "hv_packages = %s\n" % self.kvm_package_names if self.askpass_package_names is not None: -Index: virt-manager-1.2.0/virtcli/cliconfig.py +Index: virt-manager-1.2.1/virtcli/cliconfig.py =================================================================== ---- virt-manager-1.2.0.orig/virtcli/cliconfig.py -+++ virt-manager-1.2.0/virtcli/cliconfig.py +--- virt-manager-1.2.1.orig/virtcli/cliconfig.py ++++ virt-manager-1.2.1/virtcli/cliconfig.py @@ -84,7 +84,8 @@ class _CLIConfig(object): _get_param("preferred_distros", "")) self.hv_packages = _split_list(_get_param("hv_packages", "")) @@ -59,10 +59,10 @@ Index: virt-manager-1.2.0/virtcli/cliconfig.py self.default_graphics = _get_param("default_graphics", "spice") self.default_hvs = _split_list(_get_param("default_hvs", "")) -Index: virt-manager-1.2.0/virtManager/config.py +Index: virt-manager-1.2.1/virtManager/config.py =================================================================== ---- virt-manager-1.2.0.orig/virtManager/config.py -+++ virt-manager-1.2.0/virtManager/config.py +--- virt-manager-1.2.1.orig/virtManager/config.py ++++ virt-manager-1.2.1/virtManager/config.py @@ -165,7 +165,8 @@ class vmmConfig(object): self.default_qemu_user = CLIConfig.default_qemu_user self.preferred_distros = CLIConfig.preferred_distros @@ -73,11 +73,11 @@ Index: virt-manager-1.2.0/virtManager/config.py self.askpass_package = CLIConfig.askpass_package self.default_graphics_from_config = CLIConfig.default_graphics self.default_hvs = CLIConfig.default_hvs -Index: virt-manager-1.2.0/virtManager/engine.py +Index: virt-manager-1.2.1/virtManager/engine.py =================================================================== ---- virt-manager-1.2.0.orig/virtManager/engine.py -+++ virt-manager-1.2.0/virtManager/engine.py -@@ -193,21 +193,18 @@ class vmmEngine(vmmGObject): +--- virt-manager-1.2.1.orig/virtManager/engine.py ++++ virt-manager-1.2.1/virtManager/engine.py +@@ -192,21 +192,18 @@ class vmmEngine(vmmGObject): ret = None try: diff --git a/virtman-s390x-default-to-vminstall.patch b/virtman-s390x-default-to-vminstall.patch deleted file mode 100644 index 8f577e2f..00000000 --- a/virtman-s390x-default-to-vminstall.patch +++ /dev/null @@ -1,87 +0,0 @@ -Reference: bnc#888173 -Force the use of vm-install on s390. The viewer in virt-manager -and virt-viewer needs a graphics adapter defined in the VM to show -the display correctly. On s390 you can't have a graphics adapter -(you get the error 'No PCI buses available'). Vm-install gets -around this problem by starting an xterm window in which to run the -VM. -Index: virt-manager-1.1.0/virtManager/engine.py -=================================================================== ---- virt-manager-1.1.0.orig/virtManager/engine.py -+++ virt-manager-1.1.0/virtManager/engine.py -@@ -27,6 +27,7 @@ import re - import Queue - import threading - import traceback -+import platform - import os - from subprocess import * - -@@ -821,7 +822,7 @@ class vmmEngine(vmmGObject): - obj.connect("action-clone-domain", self._do_show_clone) - obj.connect("action-show-domain", self._do_show_vm) - obj.connect("action-show-preferences", self._do_show_preferences) -- obj.connect("action-show-create", self._do_show_create) -+ obj.connect("action-show-create", self._do_show_create_virtinstall) - obj.connect("action-show-create-vminstall", self._do_show_create_vminstall) - obj.connect("action-show-about", self._do_show_about) - obj.connect("action-show-host", self._do_show_host) -@@ -869,7 +870,20 @@ class vmmEngine(vmmGObject): - self.windowCreate = None - - def _do_show_create_vminstall(self, src, uri): -- self._do_show_create(src, uri, True) -+ # When pop-down menu is selected -+ if platform.machine() == "s390x": -+ # For s390, the pop-down is virt-install -+ self._do_show_create(src, uri, False) -+ else: -+ self._do_show_create(src, uri, True) -+ -+ def _do_show_create_virtinstall(self, src, uri): -+ # When 'Create a new virtual machine' button is selected -+ if platform.machine() == "s390x": -+ # For s390, the button is vm-install -+ self._do_show_create(src, uri, True) -+ else: -+ self._do_show_create(src, uri, False) - - def _do_show_create(self, src, uri, use_vminstall=False): - if uri is None: -@@ -952,7 +966,10 @@ class vmmEngine(vmmGObject): - - def show_domain_creator(self, uri): - self.show_manager() -- self._do_show_create(self.get_manager(), uri) -+ if platform.machine() == "s390x": -+ self._do_show_create(self.get_manager(), uri, True) -+ else: -+ self._do_show_create(self.get_manager(), uri, False) - - - def _find_vm_by_cli_str(self, uri, clistr): -Index: virt-manager-1.1.0/virtManager/vmmenu.py -=================================================================== ---- virt-manager-1.1.0.orig/virtManager/vmmenu.py -+++ virt-manager-1.1.0/virtManager/vmmenu.py -@@ -21,6 +21,7 @@ - from gi.repository import Gtk - from virtManager import config - -+import platform - - #################################################################### - # Build toolbar new button menu (manager and details toolbar) # -@@ -33,8 +34,10 @@ def build_new_button_menu(widget, vminst - widget.set_menu(menu) - - vminstallimg = Gtk.Image.new_from_icon_name(icon_name, Gtk.IconSize.MENU) -- -- vminstall = Gtk.ImageMenuItem.new_with_mnemonic(_("_Vm-install")) -+ if platform.machine() == "s390x": -+ vminstall = Gtk.ImageMenuItem.new_with_mnemonic(_("_Virt-install")) -+ else: -+ vminstall = Gtk.ImageMenuItem.new_with_mnemonic(_("_Vm-install")) - vminstall.set_image(vminstallimg) - vminstall.show() - vminstall.connect("activate", vminstall_cb) diff --git a/virtman-s390x-dont-add-graphics-support.patch b/virtman-s390x-dont-add-graphics-support.patch deleted file mode 100644 index 8b13a4c8..00000000 --- a/virtman-s390x-dont-add-graphics-support.patch +++ /dev/null @@ -1,51 +0,0 @@ -Reference: bnc#869024 -Add s390x support -Index: virt-manager-1.2.1/virtinst/guest.py -=================================================================== ---- virt-manager-1.2.1.orig/virtinst/guest.py -+++ virt-manager-1.2.1/virtinst/guest.py -@@ -120,7 +120,10 @@ class Guest(XMLBuilder): - self.skip_default_channel = False - self.skip_default_sound = False - self.skip_default_usbredir = False -- self.skip_default_graphics = False -+ if self.os.is_s390x(): -+ self.skip_default_graphics = True -+ else: -+ self.skip_default_graphics = False - self.x86_cpu_default = self.cpu.SPECIAL_MODE_HOST_MODEL_ONLY - - self.__os_object = None -@@ -605,11 +608,13 @@ class Guest(XMLBuilder): - self.conn.check_support( - self.conn.SUPPORT_CONN_VIRTIO_CONSOLE)): - dev.target_type = "virtio" -+ elif self.os.is_s390x(): -+ dev.target_type = "sclp" - - self.add_device(dev) - - def add_default_video_device(self): -- if self.os.is_container(): -+ if self.os.is_container() or self.os.is_s390x(): - return - if self.get_devices("video"): - return -@@ -654,7 +659,7 @@ class Guest(XMLBuilder): - return - if self.os.is_container(): - return -- if self.os.arch not in ["x86_64", "i686", "ppc64", "ppc64le", "ia64"]: -+ if self.os.arch not in ["x86_64", "i686", "ppc64", "ppc64le", "ia64", "s390x"]: - return - self.add_device(VirtualGraphics(self.conn)) - -@@ -957,7 +962,7 @@ class Guest(XMLBuilder): - if self._hv_only_supports_virtio(): - return True - -- if self.os.is_x86(): -+ if self.os.is_x86() or self.os.is_s390x(): - return True - - if (self.os.is_arm_vexpress() and diff --git a/virtman-s390x-ppc64-arch-support.patch b/virtman-s390x-ppc64-arch-support.patch new file mode 100644 index 00000000..423a964b --- /dev/null +++ b/virtman-s390x-ppc64-arch-support.patch @@ -0,0 +1,125 @@ +Reference: bnc#869024 +Add s390x support +Index: virt-manager-1.2.1/virtinst/guest.py +=================================================================== +--- virt-manager-1.2.1.orig/virtinst/guest.py ++++ virt-manager-1.2.1/virtinst/guest.py +@@ -120,7 +120,10 @@ class Guest(XMLBuilder): + self.skip_default_channel = False + self.skip_default_sound = False + self.skip_default_usbredir = False +- self.skip_default_graphics = False ++ if self.os.is_s390x(): ++ self.skip_default_graphics = True ++ else: ++ self.skip_default_graphics = False + self.x86_cpu_default = self.cpu.SPECIAL_MODE_HOST_MODEL_ONLY + + self.__os_object = None +@@ -605,11 +608,13 @@ class Guest(XMLBuilder): + self.conn.check_support( + self.conn.SUPPORT_CONN_VIRTIO_CONSOLE)): + dev.target_type = "virtio" ++ elif self.os.is_s390x(): ++ dev.target_type = "sclp" + + self.add_device(dev) + + def add_default_video_device(self): +- if self.os.is_container(): ++ if self.os.is_container() or self.os.is_s390x(): + return + if self.get_devices("video"): + return +@@ -654,7 +659,7 @@ class Guest(XMLBuilder): + return + if self.os.is_container(): + return +- if self.os.arch not in ["x86_64", "i686", "ppc64", "ppc64le", "ia64"]: ++ if self.os.arch not in ["x86_64", "i686", "ppc64", "ppc64le", "ia64", "s390x"]: + return + self.add_device(VirtualGraphics(self.conn)) + +@@ -957,7 +962,7 @@ class Guest(XMLBuilder): + if self._hv_only_supports_virtio(): + return True + +- if self.os.is_x86(): ++ if self.os.is_x86() or self.os.is_s390x(): + return True + + if (self.os.is_arm_vexpress() and +--- virt-manager-1.2.1/virtinst/urlfetcher.py.orig 2015-09-10 15:05:22.973065632 -0600 ++++ virt-manager-1.2.1/virtinst/urlfetcher.py 2015-09-10 15:07:15.127199219 -0600 +@@ -371,6 +371,12 @@ def _distroFromSUSEContent(fetcher, arch + arch = "x86_64" + elif cbuf.find("i586") != -1: + arch = "i586" ++ elif cbuf.find("s390x") != -1: ++ arch = "s390x" ++ elif cbuf.find("ppc64") != -1: ++ arch = "ppc64" ++ elif cbuf.find("ppc64le") != -1: ++ arch = "ppc64le" + + dclass = GenericDistro + if distribution: +@@ -383,6 +389,10 @@ def _distroFromSUSEContent(fetcher, arch + dclass = SLEDDistro + if distro_version is None: + distro_version = ['VERSION', distribution[1].strip().rsplit(' ')[4]] ++ elif re.match(".*Open Enterprise Server*", distribution[1]): ++ dclass = SLESDistro ++ if distro_version is None: ++ distro_version = ['VERSION', distribution[1].strip().rsplit(' ')[4]] + elif re.match(".*openSUSE.*", distribution[1]): + dclass = OpensuseDistro + if distro_version is None: +@@ -936,16 +946,23 @@ class SuseDistro(Distro): + oldkern += "64" + oldinit += "64" + +- # Tested with Opensuse >= 10.2, 11, and sles 10 +- self._hvm_kernel_paths = [("boot/%s/loader/linux" % self.arch, +- "boot/%s/loader/initrd" % self.arch)] +- # Tested with Opensuse 10.0 +- self._hvm_kernel_paths.append(("boot/loader/%s" % oldkern, +- "boot/loader/%s" % oldinit)) +- +- # Matches Opensuse > 10.2 and sles 10 +- self._xen_kernel_paths = [("boot/%s/vmlinuz-xen" % self.arch, +- "boot/%s/initrd-xen" % self.arch)] ++ if self.arch == "s390x" or \ ++ self.arch == "ppc64" or self.arch == "ppc64le": ++ self._hvm_kernel_paths = [ ("boot/%s/linux" % self.arch, ++ "boot/%s/initrd" % self.arch) ] ++ # No Xen on s390x and ppc ++ self._xen_kernel_paths = [] ++ else: ++ # Tested with Opensuse >= 10.2, 11, and sles 10 ++ self._hvm_kernel_paths = [("boot/%s/loader/linux" % self.arch, ++ "boot/%s/loader/initrd" % self.arch)] ++ # Tested with Opensuse 10.0 ++ self._hvm_kernel_paths.append(("boot/loader/%s" % oldkern, ++ "boot/loader/%s" % oldinit)) ++ ++ # Matches Opensuse > 10.2 and sles 10 ++ self._xen_kernel_paths = [("boot/%s/vmlinuz-xen" % self.arch, ++ "boot/%s/initrd-xen" % self.arch)] + + def _variantFromVersion(self): + distro_version = self.version_from_content[1].strip() +@@ -973,6 +990,13 @@ class SuseDistro(Distro): + self._variantFromVersion() + + self.os_variant = self._detect_osdict_from_url() ++ ++ # Reset kernel name for sle11 source on s390x ++ if self.arch == "s390x": ++ if self.os_variant == "sles11" or self.os_variant == "sled11": ++ self._hvm_kernel_paths = [ ("boot/%s/vmrdr.ikr" % self.arch, ++ "boot/%s/initrd" % self.arch) ] ++ + return True + + def _get_method_arg(self):