[OE-core] [PATCH 0/8] runqemu: refactor it and remove machine knowledge

Robert Yang liezhi.yang at windriver.com
Thu Aug 18 06:15:36 UTC 2016


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




More information about the Openembedded-core mailing list