[OE-core] [PATCH V4 00/11] runqemu: refactor it and remove machine knowledge

Robert Yang liezhi.yang at windriver.com
Tue Aug 23 00:27:09 UTC 2016



On 08/23/2016 03:44 AM, Aníbal Limón wrote:
> Hi Robert,
>
> May be your v4 now cover the current failures but only for notice,
> here's some example.
>
> https://autobuilder.yoctoproject.org/main/builders/nightly-arm/builds/926/steps/Running%20Sanity%20Tests/logs/stdio

Yes, RP found this on Saturday, I've fixed it in V4.

// Robert

>
> Cheers,
> 	alimon
>
> On 08/22/2016 02:52 AM, Robert Yang wrote:
>> * V4
>>   - Now the conf files can use @TAP@, @ROOTFS@ and @PORT@ when set vars
>>     for runqemu, so all the arch info are gone. And also update comments
>>     in qemuboot.bbclass.
>>   - Add var QB_SLIRP_OPT for slirp mode as Nathan suggested, also add
>>     QB_TAP_OPT whichi is for tap mode.
>>   - Print "Try 'runqemu help' on how to use it" when failed to parse args
>>     as Nathan suggested.
>>   - Fix device locking problems.
>>   - Fix nativesdk-qemu-helper.
>>   - Fix comments for qemurunner.py/qemutinyrunner.py
>>
>> * V3
>>   - Move the qemu boot settings out of tune files (e.g., arch-x86.inc)
>>     to avoid mixing BSP settings with the tunings as Mark suggested. and
>>     put them to <machine>.conf or <qemuboot>.inc file.
>>
>> * V2
>>   - Fixes for RP's comments
>>     a) 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
>>
>>     b) 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.
>>
>>     c) 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"
>>
>> * V1
>>   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
>>   - All of the TUN_ARCH knowledge are gone (FIXED in V4)
>>   - 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 (REMOVED by V2)
>>   - Fix SLIRP mode (FIXED by V2)
>>   - 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
>>
>>     Tested ext4, nfs, slirp, vmdk, iso and cpio.gz when they are available.
>>
>>   And also test "bitbake core-image-sato -ctestimage" which uses runqemu,
>>   it works, well.
>>
>> // Robert
>>
>> The following changes since commit 0865a5b8b8fbf478fb4b2310f808bcffff84a091:
>>
>>   packagefeed-stability.bbclass: cleansstate should remove pkgs from deploy dir (2016-08-20 16:05:29 +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 (11):
>>   qemuboot.bbclass: add it for runqemu
>>   qemuarm.conf: set vars for runqemu
>>   qemuarm64.conf: set vars for runqemu
>>   qemux86.conf/qemux86-64.conf: set vars for runqemu
>>   qemumips/qemumips64.conf: set vars for runqemu
>>   qemuppc.conf: set vars for runqemu
>>   qemu.inc: inherit qemuboot.bbclass
>>   runqemu: refactor it and remove machine knowledge
>>   python-3.5-manifest.inc: the signal module RDEPENDS on enum
>>   nativesdk-qemu-helper: fix for new runqemu
>>   qemurunner.py/qemutinyrunner.py: remove runqemu-internal
>>
>>  meta/classes/qemuboot.bbclass                      |   67 +
>>  meta/conf/machine/include/qemu.inc                 |    2 +
>>  meta/conf/machine/include/qemuboot-mips.inc        |    7 +
>>  meta/conf/machine/include/qemuboot-x86.inc         |   14 +
>>  meta/conf/machine/qemuarm.conf                     |    5 +
>>  meta/conf/machine/qemuarm64.conf                   |   13 +
>>  meta/conf/machine/qemumips.conf                    |    1 +
>>  meta/conf/machine/qemumips64.conf                  |    1 +
>>  meta/conf/machine/qemuppc.conf                     |    7 +
>>  meta/conf/machine/qemux86-64.conf                  |    1 +
>>  meta/conf/machine/qemux86.conf                     |    1 +
>>  meta/lib/oeqa/utils/qemurunner.py                  |    2 +-
>>  meta/lib/oeqa/utils/qemutinyrunner.py              |    2 +-
>>  .../python/python-3.5-manifest.inc                 |    2 +-
>>  .../qemu/nativesdk-qemu-helper_1.0.bb              |    9 +-
>>  scripts/contrib/python/generate-manifest-3.5.py    |    2 +-
>>  scripts/runqemu                                    | 1287 ++++++++++++--------
>>  scripts/runqemu-internal                           |  739 -----------
>>  18 files changed, 890 insertions(+), 1272 deletions(-)
>>  create mode 100644 meta/classes/qemuboot.bbclass
>>  create mode 100644 meta/conf/machine/include/qemuboot-mips.inc
>>  create mode 100644 meta/conf/machine/include/qemuboot-x86.inc
>>  delete mode 100755 scripts/runqemu-internal
>>
>



More information about the Openembedded-core mailing list