LINUX.ORG.RU
ФорумAdmin

Проблема с пробросом PCI в KVM.


0

2

Всем привет, обитатели ЛОРа. Решил я приготовить KVM с проброшенной видеокартой и частью USB-девайсов, готовил по этому и этому рецептам с некоторыми дополнениями, специфичными для конкретного железа. Т.к. нВидии не пробрасываются, а удостовериться в работе проброса было нужно, я попробовал пробросить другие девайсы, прежде чем вкручивать радик. Тут и выявилась проблема: Если девайс не является единственным на шине, то он не пробрасывается. Пример такого девайса:

07:07.0 FireWire (IEEE 1394): VIA Technologies, Inc. VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (rev c0)
(Если в PCI слот поместить тв-тюнер, то он будет значиться как 07:05.0 и так же не будет пробрасываться)

На примере:

# rmmod kvm_amd kvm
# modprobe kvm allow_unsafe_assigned_interrupts=1
# modprobe kvm_amd
# modprobe pci_stub
# lspci -n | grep 07.07.0
07:07.0 0c00: 1106:3044 (rev c0)
# echo "1106 3044" > /sys/bus/pci/drivers/pci-stub/new_id 
# echo 0000:07:07.0 > /sys/bus/pci/devices/0000:07:07.0/driver/unbind
# echo 0000:07:07.0 > /sys/bus/pci/drivers/pci-stub/bind
# qemu-kvm -m 1024 -boot c -hda disk.img -net none -device pci-assign,host=07:07.0
PCI region 0 at address 0xfe100000 has size 0x800, which is not a multiple of 4K. You might experience some performance hit due to that.
Failed to assign device "(null)" : Device or resource busy
*** The driver 'pci-stub' is occupying your device 0000:07:07.0.
***
*** You can try the following commands to free it:
***
*** $ echo "1106 3044" > /sys/bus/pci/drivers/pci-stub/new_id
*** $ echo "0000:07:07.0" > /sys/bus/pci/drivers/pci-stub/unbind
*** $ echo "0000:07:07.0" > /sys/bus/pci/drivers/pci-stub/bind
*** $ echo "1106 3044" > /sys/bus/pci/drivers/pci-stub/remove_id
***
qemu-kvm: -device pci-assign,host=07:07.0: Device 'pci-assign' could not be initialized
В это время в dmesg появляются 4 строчки:
[ 2105.116406] kvm: Nested Virtualization enabled
[ 2105.116409] kvm: Nested Paging enabled
[ 2277.957440] pci-stub 0000:07:07.0: claimed by stub
[ 2332.894863] pci-stub 0000:07:07.0: claimed by stub

Железки: Мать - ASUS SABERTOOTH 990FX, CPU - AMD FX-8120.
Ядро: 3.7.10
Параметры запуска ядра в GRUB'e:

iommu=pt iommu=1 amd_iommu=fullflush
AMD-Vi и IOMMU:
# dmesg | grep -e AMD-Vi -e IOMMU
[    2.489248] AMD-Vi: Found IOMMU at 0000:00:00.2 cap 0x40
[    2.571258] AMD-Vi: Initialized for Passthrough Mode
QEMU: QEMU emulator version 1.2.2 (qemu-kvm-1.2.0)
Флаги, с которыми QEMU был собран:
aio alsa caps curl jpeg ncurses opengl png sdl seccomp threads uuid vhost-net vnc
В чём может быть проблема и есть ли тут какое-то решение?



Последнее исправление: TheX (всего исправлений: 1)

Решилась как-то проблема?

У меня так же не пробрасывается, но сообщение выдает
assigned_dev_register_regions: Error: Couldn't mmap 0x00!

:(

MaksVal
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.