From: "Daniel P. Berrange" <berrange@redhat.com>
To: qemu-devel@nongnu.org
Cc: Anthony Liguori <aliguori@us.ibm.com>
Subject: [Qemu-devel] How to reliably start a bare QEMU target to query capabilities via QMP
Date: Wed, 22 Aug 2012 21:03:37 +0100 [thread overview]
Message-ID: <20120822200337.GA9878@redhat.com> (raw)
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. ?
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 reply other threads:[~2012-08-22 20:03 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-22 20:03 Daniel P. Berrange [this message]
2012-08-22 20:25 ` [Qemu-devel] How to reliably start a bare QEMU target to query capabilities via QMP Anthony Liguori
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=20120822200337.GA9878@redhat.com \
--to=berrange@redhat.com \
--cc=aliguori@us.ibm.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.