From: Anthony Liguori <aliguori@us.ibm.com>
To: "Daniel P. Berrange" <berrange@redhat.com>, qemu-devel@nongnu.org
Cc: Markus Armbruster <armbru@redhat.com>
Subject: Re: [Qemu-devel] How to reliably start a bare QEMU target to query capabilities via QMP
Date: Wed, 22 Aug 2012 15:25:38 -0500 [thread overview]
Message-ID: <87obm28yil.fsf@codemonkey.ws> (raw)
In-Reply-To: <20120822200337.GA9878@redhat.com>
"Daniel P. Berrange" <berrange@redhat.com> writes:
> I've been adapting libvirt to use to the various new QMP commands to
> query QEMU's capabilities, instead of the hated -help parsing. Obviously
> the critical part of this is being able to reliably start a bare QEMU
> process with no actual guest OS configured (no disks, no kernel, etc)
> and talk to its monitor. I hadn't anticipated problems since I only
> tested with x86_64 / i386 most of the time, which work well in this
> respect. Currently I am doing
>
> # $QEMU_BINARY -S \
> -no-user-config \
> -nodefconfig \
> -nodefaults \
> -nographic \
> -qmp stdio
>
>
> This works for about 50% of the QEMU targets:
>
> qemu-system-alpha
> qemu-system-i386
> qemu-system-lm32
> qemu-system-ppc
> qemu-system-ppc64
> qemu-system-s390x
> qemu-system-sparc
> qemu-system-sparc64
> qemu-system-x86_64
> qemu-system-xtensa
> qemu-system-xtensaeb
>
> but fails for the other 50% of targets:
>
> qemu-system-arm
> qemu-system-cris
> qemu-system-m68k
> qemu-system-mips
> qemu-system-mips64
> qemu-system-mips64el
> qemu-system-mipsel
> qemu-system-or32
> qemu-system-ppcemb
> qemu-system-sh4
> qemu-system-sh4eb
> qemu-system-unicore32
>
>
> With the failing targets i see the following kinds of errors:
>
>
> $ qemu-system-arm -S -nodefconfig -nodefaults -nographic -qmp unix:/tmp/foo,server,nowait
> Kernel image must be specified
>
> $ qemu-system-cris -S -nodefconfig -nodefaults -nographic -qmp unix:/tmp/foo,server,nowait
> Kernel image must be specified
>
> $ qemu-system-m68k -S -nodefconfig -nodefaults -nographic -qmp unix:/tmp/foo,server,nowait
> Kernel image must be specified
>
> $ qemu-system-mips -S -nodefconfig -nodefaults -nographic -qmp unix:/tmp/foo,server,nowait qemu: Could not load MIPS bios 'mips_bios.bin', and no -kernel argument was specified
>
> $ qemu-system-mipsel -S -nodefconfig -nodefaults -nographic -qmp unix:/tmp/foo,server,nowait
> qemu: Could not load MIPS bios 'mipsel_bios.bin', and no -kernel argument was specified
>
> $ qemu-system-or32 -S -nodefconfig -nodefaults -nographic -qmp unix:/tmp/foo,server,nowait
> Can't create serial device, empty char device
>
> $ qemu-system-ppcemb -S -nodefconfig -nodefaults -nographic -qmp unix:/tmp/foo,server,nowait
> Unable to find PowerPC CPU definition
>
> $ qemu-system-sh4 -S -nodefconfig -nodefaults -nographic -qmp unix:/tmp/foo,server,nowait
> Initializing CPU
> Allocating ROM
> Allocating SDRAM 1
> Allocating SDRAM 2
> shix_init: load BIOS 'shix_bios.bin'
> ret=-1
> qemu: could not load SHIX bios 'shix_bios.bin'
>
> $ qemu-system-sh4eb -S -nodefconfig -nodefaults -nographic -qmp unix:/tmp/foo,server,nowait
> Initializing CPU
> Allocating ROM
> Allocating SDRAM 1
> Allocating SDRAM 2
> shix_init: load BIOS 'shix_bios.bin'
> ret=-1
> qemu: could not load SHIX bios 'shix_bios.bin'
>
> $ qemu-system-unicore32 -S -nodefconfig -nodefaults -nographic -qmp unix:/tmp/foo,server,nowait
> qemu-system-unicore32: /home/berrange/src/virt/qemu/hw/unicore32/../puv3.c:81: puv3_load_kernel: Assertion `kernel_filename != ((void *)0)' failed.
> Aborted
>
>
> Can we "fix" them in some way to not require the kernel ?
>
> Do we have to go down the route of adding some sort of "-no-vm" flag to
> explicitly say we don't care about any of the VM setup parts ? This would
> be more like what my old patches did which mapped monitors commands
> onto '-query-XXXXX' command line args, bypassing VM setup, but still
> using normal QMP monitor interaction.
>
> Any other suggestions on how to reliably get a QMP monitor to a target,
> without any VM config. ?
-M none. See the patch I just sent out. I think we can include this in
1.2 as it poses no real risk.
Regards,
Anthony Liguori
>
> Daniel
> --
> |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
> |: http://libvirt.org -o- http://virt-manager.org :|
> |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
> |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
next prev parent reply other threads:[~2012-08-22 20:26 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-22 20:03 [Qemu-devel] How to reliably start a bare QEMU target to query capabilities via QMP Daniel P. Berrange
2012-08-22 20:25 ` Anthony Liguori [this message]
2012-08-23 8:56 ` Daniel P. Berrange
2012-08-23 6:35 ` [Qemu-devel] unicore32 fails assertion without -kernel (was: How to reliably start a bare QEMU target to query capabilities via QMP) Markus Armbruster
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87obm28yil.fsf@codemonkey.ws \
--to=aliguori@us.ibm.com \
--cc=armbru@redhat.com \
--cc=berrange@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.