[PATCH 0/8] runqemu: refactor it and remove machine knowledge
From: Robert Yang <hidden>
Date: 2016-08-18 06:15:45
Previously, runqemu had hard coded machine knowledge, which limited its usage, for example, qemu can boot genericx86, but runqemu can't, we need edit runqemu/runqemu-internal a lot if we want to boot genericx86. Now bsp conf files can set vars to make it can be boot by runqemu, and qemuboot.bbclass will save these info to DEPLOY_DIR_IMAGE/qemuboot.py. Please see qemuboot.bbclass' comments on how to set the vars. * Re-write it in python3, which can reduce lines from 1239 to about 750 lines * All the machine knowledges are gone * Most of the TUN_ARCH knowledge are gone except aarch64 and powerpc, it's not easy to remove the two, so leave them there atm * All the previous options are preserved, and there is a new way to run runqemu: (it doesn't need run "bitake -e" in such a case) $ runqemu tmp/deploy/images/qemux86 or: $ runqemu tmp/deploy/images/qemuarm/<image>.ext4 or: $ runqemu tmp/deploy/images/qemuarm/qemuboot.py * Fixed audio support, not limited on x86 or x86_64 * The kvm support is not limited on x86 or x86_64 * Fix SLIRP mode * Fix NFS boot, it will extract <image>.tar.bz2 or tar.gz to DEPLOY_DIR_IMAGE/<image>-nfsroot when no NFS_DIR, and remove it after stop. * More bsps can be boot, such as genericx86 and genericx86-64. * The patch for qemuzynq, qemuzynqmp, qemumicroblaze has been sent to meta-xilinx' mailing list. * I can't find any qemush4 bsp or how to build it, so it is not considered atm. * Tested the following machines, all of them work well: genericx86 genericx86-64 qemuarm qemuarm64 qemumips qemumips64 qemuppc qemux86 qemux86-64 qemuzynq qemuzynqmp And also test "bitbake core-image-sato -ctestimage" which uses runqemu, it also works. // Robert The following changes since commit c86bf80abd87acb0da5860806822c64ec9dee089: oeqa.buildperf: use oe.path.remove() (2016-08-17 10:35:27 +0100) are available in the git repository at: git://git.openembedded.org/openembedded-core-contrib rbt/runqemu http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=rbt/runqemu Robert Yang (8): qemu.inc: inherit qemu-boot.bbclass arm: set vars for runqemu qemuarm64.conf: set vars for runqemu arch-x86.inc: set vars for runqemu arch-mips.inc: set vars for runqemu qemuppc.conf: set vars for runqemu qemuboot.bbclass: add it for runqemu runqemu: refactor it and remove machine knowledge meta/classes/qemuboot.bbclass | 59 ++ meta/conf/machine/include/mips/arch-mips.inc | 6 + meta/conf/machine/include/qemu.inc | 2 + meta/conf/machine/include/tune-cortexa8.inc | 4 + meta/conf/machine/include/x86/arch-x86.inc | 15 + meta/conf/machine/qemuarm.conf | 5 + meta/conf/machine/qemuarm64.conf | 9 + meta/conf/machine/qemuppc.conf | 6 + scripts/runqemu | 1261 +++++++++++++++----------- scripts/runqemu-internal | 739 --------------- 10 files changed, 842 insertions(+), 1264 deletions(-) create mode 100644 meta/classes/qemuboot.bbclass delete mode 100755 scripts/runqemu-internal -- 2.9.0