* [PATCH 1/2] qemuboot.bbclass: add two vars for use by runqemu
2017-04-07 8:05 [PATCH 0/2] Fix runqemu problem when 'rm_work' is enabled Chen Qi
@ 2017-04-07 8:05 ` Chen Qi
2017-04-07 8:05 ` [PATCH 2/2] runqemu: make use of two new vars Chen Qi
1 sibling, 0 replies; 3+ messages in thread
From: Chen Qi @ 2017-04-07 8:05 UTC (permalink / raw)
To: openembedded-core
Add STAGING_DIR_TUNCTL_NATIVE and STAGING_DIR_QEMU_BINDIR_NATIVE so that
runqemu could find 'tunctl' and 'qemu-xxx' binaries to run correctly.
[YOCTO #11266]
[YOCTO #11193]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
meta/classes/qemuboot.bbclass | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/meta/classes/qemuboot.bbclass b/meta/classes/qemuboot.bbclass
index 3ca97ca..bd2102b 100644
--- a/meta/classes/qemuboot.bbclass
+++ b/meta/classes/qemuboot.bbclass
@@ -67,12 +67,15 @@ QB_NETWORK_DEVICE ?= "-device virtio-net-pci,netdev=net0,mac=@MAC@"
# Create qemuboot.conf
addtask do_write_qemuboot_conf after do_rootfs before do_image
IMGDEPLOYDIR ?= "${WORKDIR}/deploy-${PN}-image-complete"
+STAGING_DIR_TUNCTL_NATIVE = "${STAGING_DIR}-components/${BUILD_ARCH}/qemu-helper-native"
+STAGING_DIR_QEMU_BINDIR_NATIVE = "${STAGING_DIR}-components/${BUILD_ARCH}/qemu-native/usr/bin"
def qemuboot_vars(d):
build_vars = ['MACHINE', 'TUNE_ARCH', 'DEPLOY_DIR_IMAGE',
'KERNEL_IMAGETYPE', 'IMAGE_NAME', 'IMAGE_LINK_NAME',
'STAGING_DIR_NATIVE', 'STAGING_BINDIR_NATIVE',
- 'STAGING_DIR_HOST']
+ 'STAGING_DIR_HOST', 'STAGING_DIR_TUNCTL_NATIVE',
+ 'STAGING_DIR_QEMU_BINDIR_NATIVE']
return build_vars + [k for k in d.keys() if k.startswith('QB_')]
do_write_qemuboot_conf[vardeps] += "${@' '.join(qemuboot_vars(d))}"
--
1.9.1
^ permalink raw reply related [flat|nested] 3+ messages in thread* [PATCH 2/2] runqemu: make use of two new vars
2017-04-07 8:05 [PATCH 0/2] Fix runqemu problem when 'rm_work' is enabled Chen Qi
2017-04-07 8:05 ` [PATCH 1/2] qemuboot.bbclass: add two vars for use by runqemu Chen Qi
@ 2017-04-07 8:05 ` Chen Qi
1 sibling, 0 replies; 3+ messages in thread
From: Chen Qi @ 2017-04-07 8:05 UTC (permalink / raw)
To: openembedded-core
Make use of STAGING_DIR_TUNCTL_NATIVE and STAGING_DIR_QEMU_BINDIR_NATIVE
to run correctly. In this way, runqemu would still work when 'rm_work'
is enabled.
[YOCTO #11266]
[YOCTO #11193]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
scripts/runqemu | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/scripts/runqemu b/scripts/runqemu
index 23c9efb..cde9ae5 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -908,7 +908,10 @@ class BaseConfig(object):
gid = os.getgid()
uid = os.getuid()
logger.info("Setting up tap interface under sudo")
- cmd = 'sudo %s %s %s %s' % (self.qemuifup, uid, gid, self.get('STAGING_DIR_NATIVE'))
+ if os.path.exists(self.get('STAGING_DIR_TUNCTL_NATIVE')):
+ cmd = 'sudo %s %s %s %s' % (self.qemuifup, uid, gid, self.get('STAGING_DIR_TUNCTL_NATIVE'))
+ else:
+ cmd = 'sudo %s %s %s %s' % (self.qemuifup, uid, gid, self.get('STAGING_DIR_NATIVE'))
tap = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE).stdout.read().decode('utf-8').rstrip('\n')
lockfile = os.path.join(lockdir, tap)
self.lock = lockfile + '.lock'
@@ -1041,7 +1044,10 @@ class BaseConfig(object):
if not qemu_system:
raise Exception("Failed to boot, QB_SYSTEM_NAME is NULL!")
- qemu_bin = '%s/%s' % (self.get('STAGING_BINDIR_NATIVE'), qemu_system)
+ if os.path.exists(self.get('STAGING_DIR_QEMU_BINDIR_NATIVE')):
+ qemu_bin = '%s/%s' % (self.get('STAGING_DIR_QEMU_BINDIR_NATIVE'), qemu_system)
+ else:
+ qemu_bin = '%s/%s' % (self.get('STAGING_BINDIR_NATIVE'), qemu_system)
# It is possible to have qemu-native in ASSUME_PROVIDED, and it won't
# find QEMU in sysroot, it needs to use host's qemu.
--
1.9.1
^ permalink raw reply related [flat|nested] 3+ messages in thread