我在基于 Intel 的机器上的 Ubuntu 11.10 上运行 KVM,带有 G33 芯片组和 Q6600 处理器(支持 VT-d)。
当我想将我的 PCI 电视卡添加到虚拟机时遇到了问题。
我收到此错误“未找到 IOMMU。无法分配设备“hostdev0””。
有人能指导我如何正确设置,以便我的 PCI 电视卡能够传递到虚拟机吗?
我已将其添加到我的配置文件中:
<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
<address bus='0x03' slot='0x00' function='0x00'/>
</source>
</hostdev>
这是设备信息:
<device>
<name>pci_0000_03_00_0</name>
<parent>pci_0000_00_1c_1</parent>
<driver>
<name>cx23885</name>
</driver>
<capability type='pci'>
<domain>0</domain>
<bus>3</bus>
<slot>0</slot>
<function>0</function>
<product id='0x8852'>CX23885 PCI Video and Audio Decoder</product>
<vendor id='0x14f1'>Conexant Systems, Inc.</vendor>
</capability>
</device>
感谢您的帮助 ;-)
答案1
英特尔把这搞得一团糟,因为 Vt-d 功能实际上可以存在于芯片组上。
http://www.intel.com/assets/pdf/prodbrief/317312.pdf
Q33 没有这个功能,但 Q35 有。VT-D 支持的位置取决于内存控制器的位置。对于你的 CPU,它不是 芯片上,因此您有机会通过芯片组升级添加 Vt-d。然而,像 Nehalam 这样的芯片具有集成内存控制器,因此所有与内存相关的功能都锁定在 CPU 中。
http://www.intel.com/Assets/PDF/datasheet/316966.pdf
1.3.12 Intel® Virtualization Technology for Directed I/O (Intel® VT-d) (Intel® 82Q35 GMCH Only) Intel® Virtualization Technology for Directed I/O comprises technology components to support virtualization of platforms based on Intel architecture microprocessors. This document describes the chipset hardware components supporting I/O virtualization that are in the (G)MCH. Intel® VT-d is only supported by the Intel® Q35 Express chipset.
也许您可以在 Q35 上找到优惠,但我猜从长远来看,使用片上内存控制器升级主板和芯片会更具成本效益。