summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorJoshua Watt <jpewhacker@gmail.com>2019-12-30 14:59:50 -0600
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-01-01 10:46:16 +0000
commit714eb4532b21b4e16bcd6e0975cfb887e93b08ce (patch)
tree048f9189d97ba2b13073e1c7ba58d64cadfc5a4a /scripts
parent4ceb3fcb4e140a12b2b2decdca6f012fa8682f5c (diff)
downloadpoky-714eb4532b21b4e16bcd6e0975cfb887e93b08ce.tar.gz
runqemu: Add multiconfig support
Users may want to run qemu against a specific multiconfig instead of the base configuration, so give them the ability to specify which config should be used with the MULTICONFIG environment variable. (From OE-Core rev: fda5d9b64fa310173ad949540c54fd693c4f7d3a) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/runqemu34
1 files changed, 23 insertions, 11 deletions
diff --git a/scripts/runqemu b/scripts/runqemu
index ef454d67ff..b6fca041ae 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -135,6 +135,7 @@ class BaseConfig(object):
135 'DEPLOY_DIR_IMAGE', 135 'DEPLOY_DIR_IMAGE',
136 'OE_TMPDIR', 136 'OE_TMPDIR',
137 'OECORE_NATIVE_SYSROOT', 137 'OECORE_NATIVE_SYSROOT',
138 'MULTICONFIG',
138 ) 139 )
139 140
140 self.qemu_opt = '' 141 self.qemu_opt = ''
@@ -401,9 +402,7 @@ class BaseConfig(object):
401 self.set("MACHINE", arg) 402 self.set("MACHINE", arg)
402 return 403 return
403 404
404 cmd = 'MACHINE=%s bitbake -e' % arg 405 self.bitbake_e = self.run_bitbake_env(arg)
405 logger.info('Running %s...' % cmd)
406 self.bitbake_e = subprocess.check_output(cmd, shell=True).decode('utf-8')
407 # bitbake -e doesn't report invalid MACHINE as an error, so 406 # bitbake -e doesn't report invalid MACHINE as an error, so
408 # let's check DEPLOY_DIR_IMAGE to make sure that it is a valid 407 # let's check DEPLOY_DIR_IMAGE to make sure that it is a valid
409 # MACHINE. 408 # MACHINE.
@@ -1410,10 +1409,7 @@ class BaseConfig(object):
1410 1409
1411 self.cleaned = True 1410 self.cleaned = True
1412 1411
1413 def load_bitbake_env(self, mach=None): 1412 def run_bitbake_env(self, mach=None):
1414 if self.bitbake_e:
1415 return
1416
1417 bitbake = shutil.which('bitbake') 1413 bitbake = shutil.which('bitbake')
1418 if not bitbake: 1414 if not bitbake:
1419 return 1415 return
@@ -1421,14 +1417,24 @@ class BaseConfig(object):
1421 if not mach: 1417 if not mach:
1422 mach = self.get('MACHINE') 1418 mach = self.get('MACHINE')
1423 1419
1420 multiconfig = self.get('MULTICONFIG')
1421 if multiconfig:
1422 multiconfig = "mc:%s" % multiconfig
1423
1424 if mach: 1424 if mach:
1425 cmd = 'MACHINE=%s bitbake -e' % mach 1425 cmd = 'MACHINE=%s bitbake -e %s' % (mach, multiconfig)
1426 else: 1426 else:
1427 cmd = 'bitbake -e' 1427 cmd = 'bitbake -e %s' % multiconfig
1428 1428
1429 logger.info('Running %s...' % cmd) 1429 logger.info('Running %s...' % cmd)
1430 return subprocess.check_output(cmd, shell=True).decode('utf-8')
1431
1432 def load_bitbake_env(self, mach=None):
1433 if self.bitbake_e:
1434 return
1435
1430 try: 1436 try:
1431 self.bitbake_e = subprocess.check_output(cmd, shell=True).decode('utf-8') 1437 self.bitbake_e = self.run_bitbake_env(mach=mach)
1432 except subprocess.CalledProcessError as err: 1438 except subprocess.CalledProcessError as err:
1433 self.bitbake_e = '' 1439 self.bitbake_e = ''
1434 logger.warning("Couldn't run 'bitbake -e' to gather environment information:\n%s" % err.output.decode('utf-8')) 1440 logger.warning("Couldn't run 'bitbake -e' to gather environment information:\n%s" % err.output.decode('utf-8'))
@@ -1443,7 +1449,13 @@ class BaseConfig(object):
1443 if result and os.path.exists(result): 1449 if result and os.path.exists(result):
1444 return result 1450 return result
1445 1451
1446 cmd = ('bitbake', 'qemu-helper-native', '-e') 1452 cmd = ['bitbake', '-e']
1453 multiconfig = self.get('MULTICONFIG')
1454 if multiconfig:
1455 cmd.append('mc:%s:qemu-helper-native' % multiconfig)
1456 else:
1457 cmd.append('qemu-helper-native')
1458
1447 logger.info('Running %s...' % str(cmd)) 1459 logger.info('Running %s...' % str(cmd))
1448 out = subprocess.check_output(cmd).decode('utf-8') 1460 out = subprocess.check_output(cmd).decode('utf-8')
1449 1461