Anthony Liguori <anth...@codemonkey.ws> writes: > Markus Armbruster <arm...@redhat.com> writes: > >> Very basic smoke test: start QEMU with -monitor stdio, quit immediately. >> Wouldn't it be nice if that worked for all targets and machine types? >> >> Many targets have mandatory options (fun oxymoron), such as -kernel or >> -pflash. Can't stop me, I just try a bunch until something works. >> >> Many targets expect various files to be present, and some of them need >> to have the right size. Can't stop me, I hack up the file loaders until >> it works (silly patch appended). To do this right, we'd need the >> required files or suitable mock-ups in-tree. > > I attempted something similar in the past and ran into similar results. > >> >> Test script: >> >> #!/bin/sh >> for i in ../qemu/bld/*-softmmu/qemu-system-* >> do >> echo "= $i =" >> for m in `$i -M help | sed -n '2,$s/ .*//gp'` >> do >> echo "== $m ==" >> for k in "" "-kernel /dev/null" "-pflash /dev/null" "-pflash /dev/null >> -pflash /dev/null -kernel /dev/null" >> do >> echo "=== ${k:-(default)} ===" >> if echo q | QEMU_AUDIO_DRV=none $i -S -vnc :0 -M $m $k -monitor >> stdio | fgrep -q '(qemu)' >> then break >> else false >> fi >> done >> if [ $? -eq 0 ] >> then echo "*** Success $k ***" >> else echo '*** Fail' >> fi >> done >> done >> >> Summary of results: >> >> * Bad unexplained >> >> qemu-system-arm lm3s811evb >> qemu-system-arm lm3s6965evb >> qemu-system-arm: /work/armbru/qemu/hw/qdev.c:310: qdev_get_gpio_in: >> Assertion `n >= 0 && n < dev->num_gpio_in' failed. >> >> qemu-system-ppc64 prep >> qemu: hardware error: Unknown device 'i82378' for bus 'PCI' >> >> qemu-system-ppcemb ref405ep >> qemu-system-ppcemb taihu >> Unable to find PowerPC 405ep CPU definition >> >> qemu-system-ppcemb mac99 >> qemu-system-ppcemb g3beige >> qemu-system-ppcemb prep >> Unable to find PowerPC CPU definition >> >> qemu-system-xtensaeb lx60 >> qemu-system-xtensaeb lx200 >> qemu-system-xtensaeb sim >> Unable to find CPU definition >> >> I'm not saying these are all busted. If you know how to "start to >> monitor" one of these, let us know. > > Perhaps we could add a QEMUMachine parameter that indicates that the > machine doesn't start without special options.
Recommend to make it a string that lists the mandatory options. > At least a handful of these machines cannot be run without the use of > non-free binaries firmware :-( Yes, and that's bad. However, my test isn't trying to execute any guest code. It *should* be possible to pull off with mocked-up firmware. The mock-ups could then serve as documentation on what firmware binaries are required.