[Libguestfs] supermin on arm

Richard W.M. Jones rjones at redhat.com
Thu Mar 5 12:22:40 UTC 2015


On Wed, Mar 04, 2015 at 10:18:28AM +0000, Richard W.M. Jones wrote:
> On Tue, Mar 03, 2015 at 07:37:47PM -0600, Dennis Gilmore wrote:
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> > 
> > Hi all,
> > 
> > I was testing oz/imagefactory on 32 bit arm, you have to have
> > kernel-lpae installed to run kvm.  while you can have the regular
> > kernel installed also. You end up having the system booting the regular
> > kernel and you do not get kvm. Ideally supermin will work with the lpae
> > kernel.
> > https://github.com/libguestfs/supermin/blob/master/src/kernel.ml#L112
> > explictly removes it.
> 
> This check was added in the following commit:
> 
>   commit dc3e43babd76883df0493b57d563ca3b69e2662c
>   Author: Richard W.M. Jones <rjones at redhat.com>
>   Date:   Thu Aug 1 11:49:15 2013 +0100
> 
>       helper: On arm, don't choose a .lpae or .tegra kernel.
> 
>       The vexpress-aX emulation we are using in qemu doesn't support these
>       kernels.
> 
> The concern was that the lpae kernels don't boot under qemu.  If they
> do, then I can remove this check.

I resurrected my Cubietruck today.  It boots with an lpae kernel, and
if I remove all ordinary kernels then I can reproduce the bug at will
using 'libguestfs-test-tool':

  $ libguestfs-test-tool
  [...]
  supermin: build: 7230 files, after adding hostfiles
  supermin: build: 7254 files, after munging
  supermin: failed to find a suitable kernel (host_cpu=armv7hl).
  
  I looked for kernels in /boot and modules in /lib/modules.
  
  If this is a Xen guest, and you only have Xen domU kernels
  installed, try installing a fullvirt kernel (only for
  supermin use, you shouldn't boot the Xen guest with it).
  libguestfs: error: /usr/bin/supermin exited with error status 1, see debug messages above
  libguestfs-test-tool: failed to launch appliance

Setting SUPERMIN_KERNEL etc does not help for me.

I modified supermin to drop the check for "lpae":

  https://github.com/libguestfs/supermin/commit/68332640d5d78317e7914995a2c6883574c864e5

Annoyingly you can't just pass an environment variable to
libguestfs-test-tool to make it use another supermin binary, but must
rebuild libguestfs from source.  Anyway, the lpae kernel works just
fine now.

I also changed libguestfs to drop the -dtb parameter (relying instead
on -M virt and qemu's internal DT generation):

  https://github.com/libguestfs/libguestfs/commit/af762e43424382d895d3a10aa6632adc601fdbad

This probably requires a more recent version of qemu than the one in
Fedora 21.  It works for me with qemu.git.

Those patches will be in Rawhide soon.  As ever, file bug(s) if you
need backports.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
libguestfs lets you edit virtual machines.  Supports shell scripting,
bindings from many languages.  http://libguestfs.org




More information about the Libguestfs mailing list