[SOLVED] KVM и PCI-Passthrough
RulezRacer 3 января, 2013 - 19:59
Не работает проброс PCI устройств в виртуальную машину. Не пойму где проблема.
Конфигурация:
материнская плата Supermicro X9SRE-3F,
процессор Xeon E5-2620
в биосе VT-d включено.
Ядро версии 3.6.11
Qemu версии 1.1.2
конфиг ядра:
linuxserver # gunzip -c /proc/config.gz | grep -e VIRTIO -e IOMMU CONFIG_GART_IOMMU=y CONFIG_CALGARY_IOMMU=y CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y CONFIG_IOMMU_HELPER=y CONFIG_VFIO_IOMMU_TYPE1=y # CONFIG_VIRTIO_PCI is not set # CONFIG_VIRTIO_BALLOON is not set # CONFIG_VIRTIO_MMIO is not set CONFIG_IOMMU_API=y CONFIG_IOMMU_SUPPORT=y CONFIG_AMD_IOMMU=y CONFIG_AMD_IOMMU_STATS=y CONFIG_INTEL_IOMMU=y CONFIG_INTEL_IOMMU_DEFAULT_ON=y CONFIG_INTEL_IOMMU_FLOPPY_WA=y CONFIG_IOMMU_DEBUG=y CONFIG_IOMMU_STRESS=y
dmesg
linuxserver # dmesg | grep -e IOMM -e DMAR IOMMU 0 0xfbffc000: using Queued invalidation IOMMU: Setting RMRR: IOMMU: Setting identity map for device 0000:00:1d.0 [0x7dffc000 - 0x7e008fff] IOMMU: Setting identity map for device 0000:00:1a.0 [0x7dffc000 - 0x7e008fff] IOMMU: Prepare 0-16MiB unity mapping for LPC IOMMU: Setting identity map for device 0000:00:1f.0 [0x0 - 0xffffff]
Bind устройства для pci-stub:
echo "8086 1d2d" > /sys/bus/pci/drivers/pci-stub/new_id echo 0000:00:1a.0 > /sys/bus/pci/devices/0000\:00\:1a.0/driver/unbind echo 0000:00:1a.0 > /sys/bus/pci/drivers/pci-stub/bind echo "8086 1d2d" > /sys/bus/pci/drivers/pci-stub/remove_id
Запуск виртуальной машины:
linuxserver # qemu-system-x86_64 -name "VM1",process="VM1" -M pc -cpu core2duo -m 1024 -smp 4,cores=4,sockets=1 -enable-kvm -balloon none -boot c -hda ./hdd1.bin -daemonize -device pci-assign,host=00:1a.0,id=hostpci0
Получаю сообщение
PCI region 0 at address 0xfbd23000 has size 0x400, which is not a multiple of 4K. You might experience some performance hit due to that. Failed to assign irq for "hostpci0": Invalid argument Perhaps you are assigning a device that shares an IRQ with another device? qemu-system-x86_64: -device pci-assign,host=00:1a.0,id=hostpci0: Device 'pci-assign' could not be initialized
Обновил ядро до 3.7.10-r1 и Qemu до версии 1.2.2-r3, всё заработало.
при старте виртуальной машины получаю только сообщение вида:
PCI region 0 at address 0xfbc23000 has size 0x400, which is not a multiple of 4K. You might experience some performance hit due to that.
Но на реальную работу влияния не оказывает.
»
- Для комментирования войдите или зарегистрируйтесь