diff options
-rwxr-xr-x | scripts/runqemu | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/scripts/runqemu b/scripts/runqemu index 2f77a7bd0f..664a073807 100755 --- a/scripts/runqemu +++ b/scripts/runqemu | |||
@@ -1363,6 +1363,18 @@ class BaseConfig(object): | |||
1363 | if (self.gl_es == True or self.gl == True) and (self.sdl == False and self.gtk == False): | 1363 | if (self.gl_es == True or self.gl == True) and (self.sdl == False and self.gtk == False): |
1364 | raise RunQemuError('Option gl/gl-es needs gtk or sdl option.') | 1364 | raise RunQemuError('Option gl/gl-es needs gtk or sdl option.') |
1365 | 1365 | ||
1366 | # If we have no display option, we autodetect based upon what qemu supports. We | ||
1367 | # need our font setup and show-cusor below so we need to see what qemu --help says | ||
1368 | # is supported so we can pass our correct config in. | ||
1369 | if not self.nographic and not self.sdl and not self.gtk and not self.egl_headless == True: | ||
1370 | output = subprocess.check_output([self.qemu_bin, "--help"], universal_newlines=True) | ||
1371 | if "-display gtk" in output: | ||
1372 | self.gtk = True | ||
1373 | elif "-display sdl" in output: | ||
1374 | self.sdl = True | ||
1375 | else: | ||
1376 | self.qemu_opt += '-display none' | ||
1377 | |||
1366 | if self.sdl == True or self.gtk == True or self.egl_headless == True: | 1378 | if self.sdl == True or self.gtk == True or self.egl_headless == True: |
1367 | if self.gl or self.gl_es or self.egl_headless: | 1379 | if self.gl or self.gl_es or self.egl_headless: |
1368 | self.qemu_opt += ' -device virtio-vga-gl ' | 1380 | self.qemu_opt += ' -device virtio-vga-gl ' |
@@ -1415,7 +1427,7 @@ class BaseConfig(object): | |||
1415 | if serial_num < 2: | 1427 | if serial_num < 2: |
1416 | self.qemu_opt += " -serial null" | 1428 | self.qemu_opt += " -serial null" |
1417 | 1429 | ||
1418 | def setup_final(self): | 1430 | def find_qemu(self): |
1419 | qemu_bin = os.path.join(self.bindir_native, self.qemu_system) | 1431 | qemu_bin = os.path.join(self.bindir_native, self.qemu_system) |
1420 | 1432 | ||
1421 | # It is possible to have qemu-native in ASSUME_PROVIDED, and it won't | 1433 | # It is possible to have qemu-native in ASSUME_PROVIDED, and it won't |
@@ -1434,8 +1446,13 @@ class BaseConfig(object): | |||
1434 | 1446 | ||
1435 | if not os.access(qemu_bin, os.X_OK): | 1447 | if not os.access(qemu_bin, os.X_OK): |
1436 | raise OEPathError("No QEMU binary '%s' could be found" % qemu_bin) | 1448 | raise OEPathError("No QEMU binary '%s' could be found" % qemu_bin) |
1449 | self.qemu_bin = qemu_bin | ||
1450 | |||
1451 | def setup_final(self): | ||
1452 | |||
1453 | self.find_qemu() | ||
1437 | 1454 | ||
1438 | self.qemu_opt = "%s %s %s %s %s" % (qemu_bin, self.get('NETWORK_CMD'), self.get('QB_RNG'), self.get('ROOTFS_OPTIONS'), self.get('QB_OPT_APPEND').replace('@DEPLOY_DIR_IMAGE@', self.get('DEPLOY_DIR_IMAGE'))) | 1455 | self.qemu_opt = "%s %s %s %s %s" % (self.qemu_bin, self.get('NETWORK_CMD'), self.get('QB_RNG'), self.get('ROOTFS_OPTIONS'), self.get('QB_OPT_APPEND').replace('@DEPLOY_DIR_IMAGE@', self.get('DEPLOY_DIR_IMAGE'))) |
1439 | 1456 | ||
1440 | for ovmf in self.ovmf_bios: | 1457 | for ovmf in self.ovmf_bios: |
1441 | format = ovmf.rsplit('.', 1)[-1] | 1458 | format = ovmf.rsplit('.', 1)[-1] |