Как вставить карту PCI Express (PCIe) USB 3.0 в виртуальную машину?

Я пытаюсь передать через PCI Express (PCIe) карту USB 3.0 на виртуальную машину. Тем не менее, XHCI_HCD компилируется в ядро ​​и, таким образом, захватывает устройство перед VFIO.

Если я отсоединяю устройство от XHCI_HCD, устройство не работает в Windows.

Я попытался скомпилировать собственное Ядро, используя конфигурацию Ubuntu, изменив только xhci на модуль, однако это вылетает при запуске.

Посоветуйте, пожалуйста, как подключить физическое USB-устройство к виртуальной машине Windows. Обратите внимание, я пробовал с XEN, который работал нормально, но затем у NVIDIA GPU есть «код 43», который я не смог найти.

0
задан 3 September 2019 в 11:14

2 ответа

обычно libvirt будет делать отсоединение правильно при запуске гостя из-за managed атрибут, используемый в определение hostdev . Но если Вы хотите/нуждаетесь отладить эту фазу отсоединения от хоста, можно определить libvirt название устройства через

  $ virsh nodedev-list --tree

, После того как Вы знаете, что можно отсоединить его от хоста и обязать его с vfio быть готов к передаче, здесь пример:

$ virsh nodedev-detach pci_0005_01_00_0 --driver vfio

все еще необходимо следовать за другими ограничениями включения IOMMU/DMAR правильно и иметь переданное будущим образом устройство в его собственной группе IOMMU (или передать все устройства группы).

можно добавить hostdev к гостевому определению и если Вы не уверены, что добавить там, что можно использовать virsh nodedev-dumpxml для получения необходимых идентификаторов.

0
ответ дан 23 October 2019 в 03:30

Я имел к в конце, перекомпилировали ядро, также должен был скомпилировать тупик PCI в таблицу ядра xhci_hcd из ядра

И сделать дополнительные шаги для получения хорошего маленького Initrd.img на 43 м вместо 450 м

0
ответ дан 23 October 2019 в 03:30

Другие вопросы по тегам:

Похожие вопросы: