summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoshua Lock <joshuagloe@gmail.com>2016-09-05 21:32:56 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-09-09 12:01:24 +0100
commita6448371b87f754def669adfdc01b07d18003405 (patch)
treeb54f1827d4031b6bffadfabc0e8663666e7c8a05
parent60ca8a8d899b90a4693fd62b6ec97d0c76a9f6c5 (diff)
downloadopenembedded-core-contrib-a6448371b87f754def669adfdc01b07d18003405.tar.gz
openembedded-core-contrib-a6448371b87f754def669adfdc01b07d18003405.tar.bz2
openembedded-core-contrib-a6448371b87f754def669adfdc01b07d18003405.zip
runqemu: assume artefacts are relative to *.qemuboot.conf
When runqemu is started with a *.qemuboot.conf arg assume that image artefacts are relative to that file, rather than in whatever directory the DEPLOY_DIR_IMAGE variable in the conf file points to. Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rwxr-xr-xscripts/runqemu15
1 files changed, 14 insertions, 1 deletions
diff --git a/scripts/runqemu b/scripts/runqemu
index 7b0bcb24ee..5b719d5ac7 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -143,6 +143,7 @@ class BaseConfig(object):
self.nfs_server = ''
self.rootfs = ''
self.qemuboot = ''
+ self.qbconfload = False
self.kernel = ''
self.kernel_cmdline = ''
self.kernel_cmdline_script = ''
@@ -239,6 +240,7 @@ class BaseConfig(object):
"""
if p.endswith('.qemuboot.conf'):
self.qemuboot = p
+ self.qbconfload = True
elif re.search('\.bin$', p) or re.search('bzImage', p) or \
re.search('zImage', p) or re.search('vmlinux', p) or \
re.search('fitImage', p) or re.search('uImage', p):
@@ -250,7 +252,8 @@ class BaseConfig(object):
if m:
qb = '%s%s' % (re.sub('\.rootfs$', '', m.group(1)), '.qemuboot.conf')
if os.path.exists(qb):
- self.qemuboot = qb
+ self.qemuboot = qb
+ self.qbconfload = True
else:
logger.warn("%s doesn't exist" % qb)
fst = m.group(2)
@@ -533,6 +536,7 @@ class BaseConfig(object):
qbs = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE).stdout.read().decode('utf-8')
if qbs:
self.qemuboot = qbs.split()[0]
+ self.qbconfload = True
if not os.path.exists(self.qemuboot):
raise Exception("Failed to find <image>.qemuboot.conf!")
@@ -545,6 +549,15 @@ class BaseConfig(object):
k_upper = k.upper()
self.set(k_upper, v)
+ # When we're started with a *.qemuboot.conf arg assume that image
+ # artefacts are relative to that file, rather than in whatever
+ # directory DEPLOY_DIR_IMAGE in the conf file points to.
+ if self.qbconfload:
+ imgdir = os.path.dirname(self.qemuboot)
+ if imgdir != self.get('DEPLOY_DIR_IMAGE'):
+ logger.info('Setting DEPLOY_DIR_IMAGE to folder containing %s (%s)' % (self.qemuboot, imgdir))
+ self.set('DEPLOY_DIR_IMAGE', imgdir)
+
def print_config(self):
logger.info('Continuing with the following parameters:\n')
if not self.fstype in self.vmtypes: