学习x86-64内核:如何在QEMU 4.2中启用ACPI 2.0+?
在QEMU 4.2 x86-64 Q35虚拟机中启用ACPI 2.0+的方法
我来帮你搞定这个问题——你当前用QEMU 4.2运行Q35机器时遇到ACPI版本为0、仅使用RSDT的情况,其实通过调整启动参数就能轻松启用ACPI 2.0+(对应XSDT),具体操作如下:
- 添加ACPI版本指定参数:QEMU的Q35机型本身支持ACPI 2.0+,但默认可能未开启。你需要在启动命令里加上
-acpi version=2,这个参数会强制QEMU遵循ACPI 2.0规范,自动切换到XSDT作为根表。 - 清理冲突参数:检查你的启动命令里有没有
-no-acpi这类禁用或降级ACPI的参数,如果有的话直接删掉,避免覆盖新的配置。
调整后的完整启动命令应该是这样的:
qemu-system-x86_64 -machine q35 -cpu Broadwell -accel kvm -acpi version=2 Boot.disk
验证生效
启动虚拟机后,在你的内核里检测ACPI表:如果成功启用,应该能识别到XSDT而非RSDT,同时ACPI版本会显示为2.0或更高。
另外补充个小提示:QEMU 4.2的Q35对ACPI 2.0支持已经比较完善,除非遇到PCI热插拔相关的冲突,否则不需要额外加其他参数。如果真碰到这类问题,可以试试添加-global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off来排查。
内容的提问来源于stack exchange,提问作者Shore
相关产品推荐
相关产品推荐

