【问题标题】:How to automatically close QEMU window after end of its process如何在进程结束后自动关闭 QEMU 窗口
【发布时间】:2017-07-11 06:14:06
【问题描述】:

其实之前也有同样的问题,

How to automatically close the execution of the `qemu` after end of process?

但我再次问这个问题,因为还没有人回答。

我正在尝试在 qemu 上模拟 pintos。当我调用命令“pintos run alarm-multiple”时,会出现一个新的 QEMU 窗口,如上所示,并且在断电后它不会自行关闭。但是,我想当我尝试“make check”时这会导致问题,因为每个测试都不会自动结束。所以“-T 60”选项最终会终止测试,如下所示。

如何让 QEMU 在结束进程时自动退出?

【问题讨论】:

    标签: qemu pintos


    【解决方案1】:

    默认 Pintos 代码将字符串“Shutdown”输出到端口 0x8900。这是 Bochs 和 Qemu 的断电序列。但这最近从 Qemu 中删除了。试试this

    【讨论】:

      【解决方案2】:

      尝试从命令行参数中删除“-T 60”,我记得使用 -T 来解决同样的问题。

      【讨论】:

      • 那么'make check'永远不会结束,因为qemu不能自己停止!
      • 这可能与你的qemu版本有关,我会检查我的设置并在这里回复。我记得遇到过这个问题,然后我的教授或助教帮助了我,但这是很久以前的事了。你应该使用“bochs”来运行所有的测试,因为它是轻量级的,它比 qemu 运行得快很多。 Here 是链接。安装后,在“src”级别的配置文件之一中将“--qemu”标志更改为“--bochs”。
      【解决方案3】:

      QEMU 将(默认情况下,除非通过 -no-shutdown 选项)在客户操作系统执行任何“关机”操作时自动退出正在模拟的硬件。 (例如,对于 Linux 来宾,这通常发生在来宾执行“shutdown -h now”时。)

      如果这没有发生,那么问题很可能是以下问题之一:

      1. 您正在运行 QEMU,以模拟不实现断电功能的板模型(例如,某些嵌入式 ARM 板模型)
      2. 您的客户操作系统不知道如何关闭硬件电源
      3. 您的测试代码/线束没有告诉客户操作系统在完成后关闭硬件电源

      【讨论】:

        猜你喜欢
        • 2017-07-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多