libvirt qemu-system-arm,错误:XML错误:没有可用的PCI总线

时间:2017-02-15 03:22:32

标签: arm qemu libvirt

我正在尝试使用libvirt运行使用buildroot创建的linux映像。

如果我直接使用qemu-system-arm,一切都按预期工作:

/usr/bin/qemu-system-arm \
-M versatilepb \
-kernel output/images/zImage \
-dtb output/images/versatile-pb.dtb \
-drive index=0,file=output/images/rootfs.ext2,if=scsi,format=raw \
-append "root=/dev/sda console=ttyAMA0,115200" \
-net nic,model=rtl8139 \
-net user \
-nographic

但是,当我尝试从qemu cmdline创建xml时,它会失败:

$ virsh domxml-from-native qemu-argv qemu.args                                                                     
error: XML error: No PCI buses available

我还尝试手工创建基本XML:

<?xml version='1.0'?>
<domain type='qemu'>
        <name>Linux ARM</name>
        <uuid>ce1326f0-a9a0-11e3-a5e2-0800200c9a66</uuid>
        <memory>131072</memory>
        <currentMemory>131072</currentMemory>
        <vcpu>1</vcpu>
        <os>
                <type machine='versatilepb'>hvm</type>
                <kernel>zImage</kernel>
                <cmdline>root=/dev/sda console=ttyAMA0,115200</cmdline>
                <dtb>versatile-pb.dtb</dtb>
        </os>
        <devices>
                <disk type='file' device='disk'>
                        <source file='rootfs.ext2'/>
                        <target dev="sda" bus="scsi"/>
                </disk>
                <interface type='network'>
                        <source network='default'/>
                </interface>
        </devices>
</domain>

失败并出现同样的错误:

$ virsh create guest-test.xml 
error: Failed to create domain from guest-test.xml
error: XML error: No PCI buses available

我已经尝试使用全新的和最新的libvirt-3.0.0,没有任何成功

我的cmdline / xml需要更改什么?

1 个答案:

答案 0 :(得分:1)

virsh domxml-from-native issue

domxml-from-native命令不起作用的原因是因为执行解析的libvirt中的底层代码期望qemu-system-的后缀为canonical architecture name,{{1} } 不是。在您的情况下,您似乎希望arm映射到arm,这是一个规范的架构名称。您可以通过创建指向系统armv7l的软链接qemu-system-armv7l,然后使用qemu-system-arm

中的软链接位置来实现此目的

代码参考

xml问题

由于多个不相关的原因,您的xml会给您同样的错误。在qemu.args下的type元素中,您需要指定os(或其他一些规范的手臂拱名称)。另请注意,arch="armv7l"kernel引用必须是绝对路径或前缀为dtb。最后,您需要的某些设备需要PCI总线,并且无法使用您要使用的机器。考虑以下替代方案。

.