"Daniel P. Berrange" <berra...@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 :|