черный список xhci_hcd

Мне нужен к passtrough контроллер USB 3.0 для VM под qemu.

Мой lspci-nnk:

...
02:00.0 USB controller [0c03]: Renesas Technology Corp. uPD720201 USB 3.0 Host Controller [1912:0014] (rev 03)
    Kernel driver in use: xhci_hcd
03:00.0 USB controller [0c03]: VIA Technologies, Inc. VL805 USB 3.0 Host Controller [1106:3483] (rev 01)
    Subsystem: Gigabyte Technology Co., Ltd VL805 USB 3.0 Host Controller [1458:5007]
    Kernel driver in use: xhci_hcd
...

Тот, который я хочу к passtrough, является uPD720201, это одиноко в своей группе IOMMU.

Мой vfio.conf:

options vfio-pci ids=1002:68f9,1002:aa68,1912:0014 disable_vga=1
#Note : the 1002:68f9 and 1002:aa68 are the gpu card, which is correctly pass trough

Но теперь проблема, кажется, xhci_hcd переопределения драйвера vfio драйвер, потому что это, кажется, правильно загружается при начальной загрузке:

$ dmesg | grep "vfio"
[    4.475492] vfio: unknown parameter 'vfio_iommu_type1' ignored
[    4.476319] vfio: unknown parameter 'vfio_virqfd' ignored
[    4.477177] vfio: unknown parameter 'vfio_pci' ignored
[    4.478023] vfio: unknown parameter 'ids' ignored
[   21.546903] vfio-pci 0000:05:00.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=none
[   21.568068] vfio_pci: add [1002:68f9[ffff:ffff]] class 0x000000/00000000
[   21.588151] vfio_pci: add [1002:aa68[ffff:ffff]] class 0x000000/00000000
[   21.588824] vfio_pci: add [1912:0014[ffff:ffff]] class 0x000000/00000000
[   27.296307] vfio-pci 0000:05:00.0: vgaarb: changed VGA decodes: olddecodes=none,decodes=none:owns=none

Я уже пытаюсь поместить в черный список xhci_hcd в blacklist.conf и личинке:

/etc/modprobe.d/blacklist.conf
...
blacklist xhci_hcd
...

/etc/default/grub
...
GRUB_CMDLINE_LINUX_DEFAULT="amd_iommu=on iommu=pt kvm_amd.npt=1 modprobe.blacklist=xhci_hcd"
...

Я имею, конечно, делают обновление-initramfs-u и обновление-grub2 после тех модификаций. Во всех случаях это не имеет никакого эффекта, у меня всегда есть "Используемый драйвер ядра: xhci_hcd" единственный способ, которым я нашел для отключения xhci_hcd, должен развязать мою карту:

$ echo '0000:02:00.0' | tee /sys/bus/pci/devices/0000:02:00.0/driver/unbind

но я не знаю, как выполнить его при начальной загрузке (вероятно, прежде vfio присвоение).

Таким образом, если Вы знаете решение отключить xhci_hcd (или другой метод) для получения его работа, я благодарю Вас усовершенствованием :)

0
задан 25 December 2019 в 20:14

2 ответа

Наконец я сделал выбор полностью перекомпилировать ядро ​​из исходных кодов kernel.org и сделать xhci_hcd загруженным, а не встроенным модулем. Теперь я могу отключить xhci_hcd с помощью:

modprobe -r xhci_pci
modprobe -r xhci_hcd

, за которым следует:

modprobe vfio
modprobe vfio_pci

Теперь я могу подключить контроллер к виртуальной машине и получить:

lspci -nnk
...
02:00.0 USB controller [0c03]: Renesas Technology Corp. uPD720201 USB 3.0 Host Controller [1912:0014] (rev 03)
    Kernel driver in use: vfio-pci
    Kernel modules: xhci_pci
03:00.0 USB controller [0c03]: VIA Technologies, Inc. VL805 USB 3.0 Host Controller [1106:3483] (rev 01)
    Subsystem: Gigabyte Technology Co., Ltd VL805 USB 3.0 Host Controller [1458:5007]
    Kernel modules: xhci_pci
...

Но, к сожалению, мой встроенный контроллер USB 3.0 (VL805) отключен, поэтому я просто сделать:

...
modprobe xhci_pci
modprobe xhci_hcd
...

Итак, теперь оба контроллера работают на хороших машинах, но это было немного сложно

Примечание: все конфигурации в grub и blacklist.conf бесполезны.

0
ответ дан 29 December 2019 в 01:45

Вы можете поднять меню ботинка ЛИЧИНКИ и отредактировать параметры командной строки, подобные тому, что @matsuzaki сделал в этот пост ?

Если так, тогда Вы можете быть в состоянии добавить черный список, modprobe.blacklist=xhci_hcd, в в качестве параметра.

Согласно этот пост Вы можете хотеть попробовать F1, чтобы поднять меню ботинка: askubuntu.com/questions/1014626/how-to-access-grub-menu

0
ответ дан 26 December 2019 в 22:28

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

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