ARM 虚拟机缺 acpi 为什么登录没反应?

ARM 虚拟机配置中 <features> 区块缺少 <acpi/>,表面现象是 virsh console 登录没反应。根因是 ACPI 缺失导致系统底层硬件/服务初始化异常,间接引发登录流程失败。 现象 ARM 虚拟机配置中 <features> 区块里缺少 <acpi/>,虚拟机异常。 表面现象是 virsh console 的时候登录没有反应。 这种时候其实都是虚拟机启动阶段就有问题了。 排查 各 feature 的作用 <apic/> - 高级可编程中断控制器(Advanced Programmable Interrupt Controller) 这是 x86 架构的中断控制器标准,替代老式的 8259 PIC; 负责管理 CPU 的中断请求(比如硬件设备的信号、定时器中断等); 支持多核心 CPU 的中断分发、中断优先级控制、中断重映射等; 对 ARM 环境的意义:ARM 架构不使用 APIC,这个配置属于冗余配置(无实际作用),是兼容 x86 配置模板留下的,删除也不会影响 ARM 虚拟机运行。 <pae/> - 物理地址扩展(Physical Address Extension) 这是 32 位 x86 架构的内存扩展技术,让 32 位 x86 系统突破 4GB 物理内存的访问限制(最大支持 64GB); 对 ARM 环境的意义:你的环境是 64 位 ARM(aarch64),天然支持大于 4GB 的内存寻址,<pae/> 完全无作用,属于冗余配置。 <acpi/> - 高级配置与电源接口(Advanced Configuration and Power Interface) ...

January 25, 2026 · 1 min · 191 words · 文叨叨

ARM 架构下 CPU 模型设置为什么失效?只有 passthrough

在 ARM(aarch64)架构下,libvirt/QEMU 的 CPU 模型与特性禁用设置不生效,虚拟机看到的 CPU 依然是透传的物理 CPU。所以 ARM 架构下,别探索什么指令集、热迁移了,全部用 passthrough。 现象 将虚拟机 CPU 设置为 custom 模式,指定 Kunpeng-920 指令集,并通过 <feature policy="disable"> 禁用 asimddp、asimdfhm 两个 CPU 特性。 对比宿主机与虚拟机内的 lscpu / /proc/cpuinfo 输出,发现设置未生效。 尽管 QEMU 进程命令行已携带 -cpu Kunpeng-920,asimddp=off,asimdfhm=off,虚拟机内部看到的 CPU 依然是透传的物理 CPU(特性、implementer、part 号与宿主机完全一致)。 排查 测试环境 项目 值 宿主机架构 aarch64 (ARM64) 宿主机 CPU HUAWEI Kunpeng 920 3210 (HiSilicon) 虚拟机架构 aarch64, machine virt-4.1 QEMU qemu-system-aarch64 (4.1.0.2) 虚拟化 KVM (accel=kvm) 虚拟机内存/CPU 1024 MiB / 1 vCPU 虚拟机 XML 的 CPU 部分 <cpu mode="custom" match="exact"> <model>Kunpeng-920</model> <feature policy="disable" name="asimddp"/> <feature policy="disable" name="asimdfhm"/> <topology sockets="1" cores="1" threads="1"></topology> <numa> <cell id="0" cpus="0" memory="1048576" unit="KiB" discard="yes"></cell> </numa> </cpu> QEMU 进程的 -cpu 参数 虚拟机启动后,QEMU 进程实际命令行中的 CPU 相关参数: ...

January 4, 2026 · 2 min · 414 words · 文叨叨