diff options
Diffstat (limited to 'scripts')
| -rwxr-xr-x | scripts/runqemu | 33 |
1 files changed, 26 insertions, 7 deletions
diff --git a/scripts/runqemu b/scripts/runqemu index 2f77a7bd0f..36af764b1b 100755 --- a/scripts/runqemu +++ b/scripts/runqemu | |||
| @@ -1363,13 +1363,27 @@ 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 self.sdl == True or self.gtk == True or self.egl_headless == True: | 1366 | # If we have no display option, we autodetect based upon what qemu supports. We |
| 1367 | if self.gl or self.gl_es or self.egl_headless: | 1367 | # need our font setup and show-cusor below so we need to see what qemu --help says |
| 1368 | self.qemu_opt += ' -device virtio-vga-gl ' | 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 | ||
| 1369 | else: | 1375 | else: |
| 1370 | self.qemu_opt += ' -device virtio-vga ' | 1376 | self.qemu_opt += '-display none' |
| 1371 | 1377 | ||
| 1372 | self.qemu_opt += '-display ' | 1378 | if self.sdl == True or self.gtk == True or self.egl_headless == True: |
| 1379 | |||
| 1380 | if self.qemu_system.endswith(('i386', 'x86_64')): | ||
| 1381 | if self.gl or self.gl_es or self.egl_headless: | ||
| 1382 | self.qemu_opt += ' -device virtio-vga-gl ' | ||
| 1383 | else: | ||
| 1384 | self.qemu_opt += ' -device virtio-vga ' | ||
| 1385 | |||
| 1386 | self.qemu_opt += ' -display ' | ||
| 1373 | if self.egl_headless == True: | 1387 | if self.egl_headless == True: |
| 1374 | self.set_dri_path() | 1388 | self.set_dri_path() |
| 1375 | self.qemu_opt += 'egl-headless,' | 1389 | self.qemu_opt += 'egl-headless,' |
| @@ -1415,7 +1429,7 @@ class BaseConfig(object): | |||
| 1415 | if serial_num < 2: | 1429 | if serial_num < 2: |
| 1416 | self.qemu_opt += " -serial null" | 1430 | self.qemu_opt += " -serial null" |
| 1417 | 1431 | ||
| 1418 | def setup_final(self): | 1432 | def find_qemu(self): |
| 1419 | qemu_bin = os.path.join(self.bindir_native, self.qemu_system) | 1433 | qemu_bin = os.path.join(self.bindir_native, self.qemu_system) |
| 1420 | 1434 | ||
| 1421 | # It is possible to have qemu-native in ASSUME_PROVIDED, and it won't | 1435 | # It is possible to have qemu-native in ASSUME_PROVIDED, and it won't |
| @@ -1434,8 +1448,13 @@ class BaseConfig(object): | |||
| 1434 | 1448 | ||
| 1435 | if not os.access(qemu_bin, os.X_OK): | 1449 | if not os.access(qemu_bin, os.X_OK): |
| 1436 | raise OEPathError("No QEMU binary '%s' could be found" % qemu_bin) | 1450 | raise OEPathError("No QEMU binary '%s' could be found" % qemu_bin) |
| 1451 | self.qemu_bin = qemu_bin | ||
| 1452 | |||
| 1453 | def setup_final(self): | ||
| 1454 | |||
| 1455 | self.find_qemu() | ||
| 1437 | 1456 | ||
| 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'))) | 1457 | 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 | 1458 | ||
| 1440 | for ovmf in self.ovmf_bios: | 1459 | for ovmf in self.ovmf_bios: |
| 1441 | format = ovmf.rsplit('.', 1)[-1] | 1460 | format = ovmf.rsplit('.', 1)[-1] |
