diff options
author | Joshua Watt <jpewhacker@gmail.com> | 2019-12-30 14:59:50 -0600 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2020-01-01 10:46:16 +0000 |
commit | 714eb4532b21b4e16bcd6e0975cfb887e93b08ce (patch) | |
tree | 048f9189d97ba2b13073e1c7ba58d64cadfc5a4a /scripts | |
parent | 4ceb3fcb4e140a12b2b2decdca6f012fa8682f5c (diff) | |
download | poky-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-x | scripts/runqemu | 34 |
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 | ||