[elbe-devel] [PATCH v2 1/1] libvirt.xml: Workaround for buggy qemu machine type in vmware/stretch

Manuel Traut manut at linutronix.de
Mon Feb 25 16:19:47 CET 2019


On 11:58 Fri 22 Feb     , bage at linutronix.de wrote:
> From: Bastian Germann <bage at linutronix.de>
> 
> Add a heuristic to set a working qemu machine type when generating
> libvirt.xml on initvm creation when running on a VMware setup
> with Debian Stretch.
> 
> Solves issue #183.
> Original author: Andreas Messerschmid.
> 
> Signed-off-by: Bastian Germann <bage at linutronix.de>
Signed-off-by: Manuel Traut <manut at linutronix.de>
Reviewed-by: Manuel Traut <manut at linutronix.de>

Thanks Bastian & Andreas, merged into devel/elbe-3.0

> ---
>  elbepack/commands/init.py      | 12 ++++++++++++
>  elbepack/init/libvirt.xml.mako |  2 +-
>  2 files changed, 13 insertions(+), 1 deletion(-)
> 
> diff --git a/elbepack/commands/init.py b/elbepack/commands/init.py
> index 3bb36551..9c66e948 100644
> --- a/elbepack/commands/init.py
> +++ b/elbepack/commands/init.py
> @@ -21,6 +21,7 @@ from elbepack.version import elbe_version
>  from elbepack.templates import write_template, get_initvm_preseed
>  from elbepack.directories import init_template_dir, elbe_dir
>  from elbepack.config import cfg
> +from elbepack.shellhelper import command_out
>  
>  
>  def run_command(argv):
> @@ -146,6 +147,16 @@ def run_command(argv):
>      else:
>          path = opt.directory
>  
> +    # this is a workaround for
> +    # http://lists.linutronix.de/pipermail/elbe-devel/2017-July/000541.html
> +    _, virt = command_out('test -x /usr/bin/systemd-detect-virt && /usr/bin/systemd-detect-virt');
> +    _, dist = command_out('lsb_release -cs')
> +
> +    if 'vmware' in virt and 'stretch' in dist:
> +        machine_type = 'pc-i440fx-2.6'
> +    else:
> +        machine_type = 'pc'
> +
>      try:
>          os.makedirs(path)
>      except OSError as e:
> @@ -171,6 +182,7 @@ def run_command(argv):
>           "http_proxy": http_proxy,
>           "pkgs": xml.node("/initvm/pkg-list") or [],
>           "preseed": get_initvm_preseed(xml),
> +         "machine_type": machine_type,
>           "cfg": cfg}
>  
>      if http_proxy != "":
> diff --git a/elbepack/init/libvirt.xml.mako b/elbepack/init/libvirt.xml.mako
> index dd422d6e..92e64b45 100644
> --- a/elbepack/init/libvirt.xml.mako
> +++ b/elbepack/init/libvirt.xml.mako
> @@ -41,7 +41,7 @@ xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
>    </cpu>
>  % endif
>    <os>
> -    <type arch='x86_64' machine='pc'>hvm</type>
> +    <type arch='x86_64' machine='${machine_type}'>hvm</type>
>    </os>
>    <features>
>      <acpi />
> -- 
> 2.11.0
> 
> 
> _______________________________________________
> elbe-devel mailing list
> elbe-devel at linutronix.de
> https://lists.linutronix.de/mailman/listinfo/elbe-devel



More information about the elbe-devel mailing list