[Kimchi-devel] [PATCH] Supports Kimchi on LE systems
Ramon Medeiros
ramonn at linux.vnet.ibm.com
Fri Jan 23 18:20:01 UTC 2015
On LE systems, some changes on libvirt xml is needed. The input device
for keyboard is not kbd anymore, the architecture is still ppc64 and the
qemu binary is not qemu-kvm as in the other archs.
Signed-off-by: Ramon Medeiros <ramonn at linux.vnet.ibm.com>
---
src/kimchi/config.py.in | 11 +++++++++--
src/kimchi/osinfo.py | 6 +++++-
src/kimchi/vmtemplate.py | 8 ++++++++
3 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/src/kimchi/config.py.in b/src/kimchi/config.py.in
index 83a5dd0..f0089dc 100644
--- a/src/kimchi/config.py.in
+++ b/src/kimchi/config.py.in
@@ -68,12 +68,19 @@ def find_qemu_binary(find_emulator=False):
raise Exception("Unable to get qemu binary location: %s" % e)
try:
xml = connect.getCapabilities()
+
+ # ISSUE #573: On POWER8 debian little endian, the qemu binary is
+ # qemu-system-ppc64, not qemu-system-ppc64el as expected
+ arch = platform.machine()
+ if platform.machine() == "ppc64le":
+ arch = "ppc64"
+
if find_emulator:
expr = "/capabilities/guest/arch[@name='%s']\
- /emulator" % platform.machine()
+ /emulator" % arch
else:
expr = "/capabilities/guest/arch[@name='%s']\
- /domain[@type='kvm']/emulator" % platform.machine()
+ /domain[@type='kvm']/emulator" % arch
res = xpath_get_text(xml, expr)
location = res[0]
except Exception, e:
diff --git a/src/kimchi/osinfo.py b/src/kimchi/osinfo.py
index 0e16b50..2f6558d 100644
--- a/src/kimchi/osinfo.py
+++ b/src/kimchi/osinfo.py
@@ -29,7 +29,7 @@ from kimchi.config import paths
SUPPORTED_ARCHS = {'x86': ('i386', 'i686', 'x86_64'),
- 'power': ('ppc', 'ppc64')}
+ 'power': ('ppc', 'ppc64', 'ppc64le')}
common_spec = {'cpus': 1, 'memory': 1024, 'disks': [{'index': 0, 'size': 10}],
@@ -94,6 +94,10 @@ def lookup(distro, version):
params['os_version'] = version
arch = _get_arch()
+ # ppc64le hack: qemu ppc64le uses ppc64 in libvirt xml
+ if params["arch"] == "ppc64le":
+ params["arch"] = "ppc64"
+
if distro in modern_version_bases[arch]:
if LooseVersion(version) >= LooseVersion(
modern_version_bases[arch][distro]):
diff --git a/src/kimchi/vmtemplate.py b/src/kimchi/vmtemplate.py
index e41a959..a017874 100644
--- a/src/kimchi/vmtemplate.py
+++ b/src/kimchi/vmtemplate.py
@@ -245,9 +245,17 @@ class VMTemplate(object):
mouse = """
<input type='mouse' bus='%(mouse_bus)s'/>
"""
+
keyboard = """
<input type='kbd' bus='%(kbd_bus)s'> </input>
"""
+
+ # PPC64EL does not uses kbd
+ if os.uname()[4] == "ppc64le":
+ keyboard = """
+ <input type='keyboard' bus='%(kbd_bus)s'> </input>
+ """
+
tablet = """
<input type='tablet' bus='%(kbd_bus)s'> </input>
"""
--
1.8.3.1
More information about the Kimchi-devel
mailing list