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 | ||
