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

Robert Yang liezhi.yang at windriver.com
Thu Aug 18 09:50:58 UTC 2016


Hi,

Here is V2, mainly fix RP's comments: (talked via IRC)

* Remove a kvm commit message since qemu-kvm can only run target when
   its arch is the same as the host arch:
   The kvm support is not limited on x86 or x86_64

* Fix a typo in commit message: qemu-boot.bbclass -> qemuboot.bbclass,
   You may wonder why I use qemuboot.bbclass but not qemu-boot.bbclass,
   this is because the bbclass will save vars into qemuboot.py, the
   qemuboot.py can't be qemu-boot.py here, otherwise,
   "import qemu-boot.py" doesn't work since "-" is not a validate identifier,
    so use "qemuboot" to make them unify.

* Reorder the patches to make sure they don't break the bisect build.

* Update commit message:
   "Fix SLIRP mode" -> "Fix SLIRP mode, add help message, avoid mixing with tap"

======================
Updated in the repo:

The following changes since commit ecc8d346223030ee06aa6d83427f757982e948e4:

   sanity: Require bitbake 1.31.1 for multi-config changes (2016-08-18 10:07:18 
+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):
   qemuboot.bbclass: add it for runqemu
   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
   qemu.inc: inherit qemuboot.bbclass
   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                              | 1260 +++++++++++++++-----------
  scripts/runqemu-internal                     |  739 ---------------
  10 files changed, 841 insertions(+), 1264 deletions(-)
  create mode 100644 meta/classes/qemuboot.bbclass
  delete mode 100755 scripts/runqemu-internal

// Robert

On 08/18/2016 02:15 PM, Robert Yang wrote:
> 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
>



More information about the Openembedded-core mailing list