QEMU:CPU 拓扑与最大 vcpu 数量不匹配

QEMU:CPU 拓扑与最大 vcpu 数量不匹配

问题:

为与 virt-manager 一起使用而创建的虚拟机定义失败。错误消息:

“错误:无法从 macOS.xml 定义域
错误:不支持的配置:CPU 拓扑与最大 vcpu 数量不匹配”

背景:

硬件信息:
CPU:Intel Core i5 9400F
RAM:32 GB DDR4
GPU1(主机):AMD Radeon R9 270X
GPU2(Windows 直通):GTX 1050
GPU3(计划使用 macOS 直通):GT 710

软件信息:
主机:Ubuntu 20.04
QEMU 版本:4.2.0
macOS 客户机版本:10.15 Catalina

我按照此指南操作了我的 Windows VM: https://mathiashueber.com/pci-passthrough-ubuntu-2004-virtual-machine/
效果很好。

然后我按照此指南操作了我的 macOS VM: https://passthroughpo.st/new-and-improved-mac-os-tutorial-part-1-the-basics/

安装和所有操作都顺利,但我在“增加 CPU/内存”部分卡住了。要将所有 CPU 核心传递给客户系统,您必须定义线程、核心、芯片和插槽数量。对于我的 9400F 来说,这应该相对容易,因为它是一个消费平台,具有 1 个插槽、1 个芯片、6 个核心和每个核心 1 个线程。

因此,qemu-system-x86_64 的正确参数应该如下(省略其他参数):

-snp cpus=6,cores=6,threads=1,sockets=1 

我还使用 lscpu 验证了这些值。

如果我使用这些设置启动我的虚拟机,在 Clover 中选择正确的启动设备后它会卡住。

通过这些设置,它可以正确启动所有 6 个核心:

-snp cpus=6

现在,使用 virt-mananger 时,您必须在那里导入(或“定义”)虚拟机。这需要一个包含(除其他外)拓扑信息的 XML 文件。

对于我的 CPU 来说,这应该是这样的:

<cpu>
    <topology cores='6' sockets='1' threads='1'/>
</cpu>

我的 CPU 拓扑结构是否有任何错误?我可以尝试哪些进一步的步骤来使其正常工作?

我认为问题在于 basic.sh 中第一个 -snp 选项不起作用,因为那是(或应该是)CPU 的 tpoplogy 的正确表示。

我将尝试重新安装 macOS,但我不太确定它是否能起作用。

答案1

通过为 qemu 可执行文件创建以下参数解决了该问题:

smp 6,cores=1,sockets=6,threads=1

并在 XML 文件中使用此拓扑:

<topology cores='1' sockets='6' threads='1'/>

这真是太奇怪了,我不知道它为什么会起作用,但它确实起作用了。我在 virt-manager 中启动了 macOS VM,不会改变这一点,希望它能运行。

感谢奥斯汀,你的赞扬让我朝着正确的方向前进,只是尝试一些东西。

相关内容