[Kimchi-devel] [PATCH] Supports Kimchi on LE systems v2
Aline Manera
alinefm at linux.vnet.ibm.com
Tue Jan 27 14:20:08 UTC 2015
On 27/01/2015 11:25, Paulo Ricardo Paz Vital wrote:
> Aline, the point is not the kdb_bus used to configure the keyboard,
> but the type.
You are right.
>
> Ramon, I guess you can update, on osinfo.py file, the common_spec
> dictionary to add the kdb_type value - this will be common to all
> cases. Then, you can add a new key into power specs specific to
> ppc64le that have this different value. Anyway, a little modification
> on vmtemplate.py will be necessary to use the new variable/key.
+1
>
> On Tue Jan 27 2015 at 2:14:15 PM Aline Manera
> <alinefm at linux.vnet.ibm.com <mailto:alinefm at linux.vnet.ibm.com>> wrote:
>
>
> On 27/01/2015 10:38, Ramon Medeiros wrote:
> > Changes
> >
> > v2:
> >
> > Improve coding by removing duplicated actions
> > Fix typo
> >
> > 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
> <mailto:ramonn at linux.vnet.ibm.com>>
> > ---
> > src/kimchi/config.py.in <http://config.py.in> | 11 +++++++++--
> > src/kimchi/osinfo.py | 6 +++++-
> > src/kimchi/vmtemplate.py | 11 +++++++++--
> > 3 files changed, 23 insertions(+), 5 deletions(-)
> >
> > diff --git a/src/kimchi/config.py.in <http://config.py.in>
> b/src/kimchi/config.py.in <http://config.py.in>
> > index 83a5dd0..d5e0f6c 100644
> > --- a/src/kimchi/config.py.in <http://config.py.in>
> > +++ b/src/kimchi/config.py.in <http://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()
> > +
> > + # On Little Endian system, the qemu binary is
> > + # qemu-system-ppc64, not qemu-system-ppc64le as expected
> > + arch = platform.machine()
> > + if arch == "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..9bfd148 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')}
>
> In osinfo.py we have a dict for each supported arch.
>
> template_specs = {'x86': {'old': dict(common_spec, disk_bus='ide',
> nic_model='e1000',
> sound_model='ich6'),
> 'modern': dict(common_spec,
> disk_bus='virtio',
> nic_model='virtio',
> sound_model='ich6')},
> 'power': {'old': dict(common_spec, disk_bus='scsi',
> nic_model='spapr-vlan',
> cdrom_bus='scsi',
> kbd_bus='usb',
> mouse_bus='usb',
> tablet_bus='usb',
> memory=1280),
> 'modern': dict(common_spec,
> disk_bus='virtio',
> nic_model='virtio',
> cdrom_bus='scsi', kbd_bus='usb',
> mouse_bus='usb',
> tablet_bus='usb',
> memory=1280)}}
>
> You should add the new ppc64le there with the right bus values.
> So for ppc64el we should point the kbd_bus="keyboard"
>
> And vmtemplate.py will not change.
>
> >
> >
> > 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()
> >
> > + # set up arch to ppc64 instead of ppc64le due to libvirt
> compatibility
> > + 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..bcfbab6 100644
> > --- a/src/kimchi/vmtemplate.py
> > +++ b/src/kimchi/vmtemplate.py
> > @@ -245,9 +245,16 @@ class VMTemplate(object):
> > mouse = """
> > <input type='mouse' bus='%(mouse_bus)s'/>
> > """
> > +
> > + # PPC64EL does not uses kbd
> > + self.info <http://self.info>["kbd_type"] = "kbd"
> > + if os.uname()[4] == "ppc64le":
> > + self.info <http://self.info>["kbd_type"] = "keyboard"
> > +
> > keyboard = """
> > - <input type='kbd' bus='%(kbd_bus)s'> </input>
> > - """
> > + <input type='%(kbd_type)s' bus='%(kbd_bus)s'> </input>
> > + """
> > +
> > tablet = """
> > <input type='tablet' bus='%(kbd_bus)s'> </input>
> > """
>
> _______________________________________________
> Kimchi-devel mailing list
> Kimchi-devel at ovirt.org <mailto:Kimchi-devel at ovirt.org>
> http://lists.ovirt.org/mailman/listinfo/kimchi-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ovirt.org/pipermail/kimchi-devel/attachments/20150127/4d2604d2/attachment.html>
More information about the Kimchi-devel
mailing list