【发布时间】:2018-07-12 17:00:55
【问题描述】:
我想知道在 aarch64 版本中是否有办法从客户系统中退出 qemu。例如,x86 具有用于此目的的 isa-debug-exit 设备。
有什么想法吗?
干杯
【问题讨论】:
我想知道在 aarch64 版本中是否有办法从客户系统中退出 qemu。例如,x86 具有用于此目的的 isa-debug-exit 设备。
有什么想法吗?
干杯
【问题讨论】:
这个问题的一般答案是“在真实硬件上做任何你想做的事情来导致断电”。这方面的细节取决于 QEMU 正在模拟哪台机器。对于 aarch64“virt”板,您可以使用仿真 PSCI 固件接口通过 SYSTEM_OFF 函数请求断电。
PSCI API 文档在这里:http://infocenter.arm.com/help/topic/com.arm.doc.den0022d/Power_State_Coordination_Interface_PDD_v1_1_DEN0022D.pdf
出于调试/测试目的,您可能还对具有 SYS_EXIT 功能的半主机 API (https://developer.arm.com/docs/dui0003/b) 感兴趣,但有一些注意事项:对于 QEMU,您只能通过 -semihosting 命令行参数启用半主机,并且只能从来宾的内核模式,并且只有在您绝对信任来宾代码时才必须使用它,因为它提供了对允许来宾读取和写入任何主机文件的功能的访问。但是对于明确信任的小型测试程序,它可能是一种很好的方式,可以轻松进行调试打印并以给定的退出状态退出。
【讨论】: