diff options
-rwxr-xr-x | scripts/runqemu | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/scripts/runqemu b/scripts/runqemu index 310d79fdc5..7eb7a9c7b4 100755 --- a/scripts/runqemu +++ b/scripts/runqemu | |||
@@ -420,6 +420,23 @@ class BaseConfig(object): | |||
420 | logger.error("%s not a directory valid DEPLOY_DIR_IMAGE" % deploy_dir_image) | 420 | logger.error("%s not a directory valid DEPLOY_DIR_IMAGE" % deploy_dir_image) |
421 | self.set("MACHINE", arg) | 421 | self.set("MACHINE", arg) |
422 | 422 | ||
423 | def set_dri_path(self): | ||
424 | # As runqemu can be run within bitbake (when using testimage, for example), | ||
425 | # we need to ensure that we run host pkg-config, and that it does not | ||
426 | # get mis-directed to native build paths set by bitbake. | ||
427 | try: | ||
428 | del os.environ['PKG_CONFIG_PATH'] | ||
429 | del os.environ['PKG_CONFIG_DIR'] | ||
430 | del os.environ['PKG_CONFIG_LIBDIR'] | ||
431 | del os.environ['PKG_CONFIG_SYSROOT_DIR'] | ||
432 | except KeyError: | ||
433 | pass | ||
434 | try: | ||
435 | dripath = subprocess.check_output("PATH=/bin:/usr/bin:$PATH pkg-config --variable=dridriverdir dri", shell=True) | ||
436 | except subprocess.CalledProcessError as e: | ||
437 | raise RunQemuError("Could not determine the path to dri drivers on the host via pkg-config.\nPlease install Mesa development files (particularly, dri.pc) on the host machine.") | ||
438 | os.environ['LIBGL_DRIVERS_PATH'] = dripath.decode('utf-8').strip() | ||
439 | |||
423 | def check_args(self): | 440 | def check_args(self): |
424 | for debug in ("-d", "--debug"): | 441 | for debug in ("-d", "--debug"): |
425 | if debug in sys.argv: | 442 | if debug in sys.argv: |
@@ -440,15 +457,19 @@ class BaseConfig(object): | |||
440 | self.kernel_cmdline_script += ' console=ttyS0' | 457 | self.kernel_cmdline_script += ' console=ttyS0' |
441 | elif arg == 'sdl': | 458 | elif arg == 'sdl': |
442 | if 'gl' in sys.argv[1:]: | 459 | if 'gl' in sys.argv[1:]: |
460 | self.set_dri_path() | ||
443 | self.qemu_opt_script += ' -vga virtio -display sdl,gl=on' | 461 | self.qemu_opt_script += ' -vga virtio -display sdl,gl=on' |
444 | elif 'gl-es' in sys.argv[1:]: | 462 | elif 'gl-es' in sys.argv[1:]: |
463 | self.set_dri_path() | ||
445 | self.qemu_opt_script += ' -vga virtio -display sdl,gl=es' | 464 | self.qemu_opt_script += ' -vga virtio -display sdl,gl=es' |
446 | else: | 465 | else: |
447 | self.qemu_opt_script += ' -display sdl' | 466 | self.qemu_opt_script += ' -display sdl' |
448 | elif arg == 'gtk': | 467 | elif arg == 'gtk': |
449 | if 'gl' in sys.argv[1:]: | 468 | if 'gl' in sys.argv[1:]: |
469 | self.set_dri_path() | ||
450 | self.qemu_opt_script += ' -vga virtio -display gtk,gl=on' | 470 | self.qemu_opt_script += ' -vga virtio -display gtk,gl=on' |
451 | elif 'gl-es' in sys.argv[1:]: | 471 | elif 'gl-es' in sys.argv[1:]: |
472 | self.set_dri_path() | ||
452 | self.qemu_opt_script += ' -vga virtio -display gtk,gl=es' | 473 | self.qemu_opt_script += ' -vga virtio -display gtk,gl=es' |
453 | else: | 474 | else: |
454 | self.qemu_opt_script += ' -display gtk' | 475 | self.qemu_opt_script += ' -display gtk' |
@@ -456,22 +477,8 @@ class BaseConfig(object): | |||
456 | # These args are handled inside sdl or gtk blocks above | 477 | # These args are handled inside sdl or gtk blocks above |
457 | pass | 478 | pass |
458 | elif arg == 'egl-headless': | 479 | elif arg == 'egl-headless': |
480 | self.set_dri_path() | ||
459 | self.qemu_opt_script += ' -vga virtio -display egl-headless' | 481 | self.qemu_opt_script += ' -vga virtio -display egl-headless' |
460 | # As runqemu can be run within bitbake (when using testimage, for example), | ||
461 | # we need to ensure that we run host pkg-config, and that it does not | ||
462 | # get mis-directed to native build paths set by bitbake. | ||
463 | try: | ||
464 | del os.environ['PKG_CONFIG_PATH'] | ||
465 | del os.environ['PKG_CONFIG_DIR'] | ||
466 | del os.environ['PKG_CONFIG_LIBDIR'] | ||
467 | del os.environ['PKG_CONFIG_SYSROOT_DIR'] | ||
468 | except KeyError: | ||
469 | pass | ||
470 | try: | ||
471 | dripath = subprocess.check_output("PATH=/bin:/usr/bin:$PATH pkg-config --variable=dridriverdir dri", shell=True) | ||
472 | except subprocess.CalledProcessError as e: | ||
473 | raise RunQemuError("Could not determine the path to dri drivers on the host via pkg-config.\nPlease install Mesa development files (particularly, dri.pc) on the host machine.") | ||
474 | os.environ['LIBGL_DRIVERS_PATH'] = dripath.decode('utf-8').strip() | ||
475 | elif arg == 'serial': | 482 | elif arg == 'serial': |
476 | self.kernel_cmdline_script += ' console=ttyS0' | 483 | self.kernel_cmdline_script += ' console=ttyS0' |
477 | self.serialconsole = True | 484 | self.serialconsole = True |