Назад | Перейти на главную страницу

Как мне получить карту расширения PCIe с 4-мя контроллерами USB3, работающими под Xen?

Это не вопрос про пропуск PCI под гипервизором Xen.

У меня есть карта расширения PCIe с 4 отдельными контроллерами USB3, которая работает с несколькими разными ядрами Linux, но не при запуске тех же ядер Linux под гипервизором Xen. Карта имеет несколько мостов PCIe до подключения к контроллерам USB3, что может иметь значение.

Я тестировал настолько чисто, насколько это возможно, используя initramfs, который загружает только некоторые модули и монтирует / proc /, / sys / и / dev / перед тем, как перетащить меня в оболочку.

Работает под Linux:

Из оболочки initramfs, пока загружены драйверы xhci_pci и xhci_hcd, карта расширения работает нормально, протестировано путем подключения клавиатуры к одному из портов карты, чтобы увидеть, могу ли я ввести текст в консоль. Я также протестировал подключение запоминающего устройства USB к одному из портов на дополнительной карте, а затем запустил lsusb чтобы узнать, есть ли устройство в списке.

Итак, карта не сломана, и порты не сломаны, и устройства, используемые для тестирования портов, не сломаны.

Работает под Xen:

Используя те же ядра Linux, которые работают без Xen, с теми же загруженными модулями, карта не работай.


Выход lspci -vt идентична в обоих случаях выше.

Выход lspci -v идентично, за одним исключением:

Работает lspci -v:

00:00.0 Host bridge: Intel Corporation 8th Gen Core Processor Host
Bridge/DRAM Registers (rev 07)
    DeviceName: Onboard - Other
    Subsystem: Gigabyte Technology Co., Ltd Device 5000
    Flags: bus master, fast devsel, latency 0
    Capabilities: [e0] Vendor Specific Information: Len=10 <?>
    Kernel driver in use: skl_uncore

Нерабочий lspci -v в выводе отсутствует следующая строка:

    Kernel driver in use: skl_uncore

Однако модуль skl_uncore не компилируется как модуль, а скомпилирован в ядро, поэтому строка «Используемый драйвер ядра» отсутствует, по крайней мере, не из-за того, что модуль не загружается.

Топология шины PCI:

-[0000:00]-+-00.0  Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers
           +-01.0-[01-06]----00.0-[02-06]--+-01.0-[03]----00.0  Renesas Technology Corp. uPD720202 USB 3.0 Host Controller
           |                               +-02.0-[04]----00.0  Renesas Technology Corp. uPD720202 USB 3.0 Host Controller
           |                               +-03.0-[05]----00.0  Renesas Technology Corp. uPD720202 USB 3.0 Host Controller
           |                               \-04.0-[06]----00.0  Renesas Technology Corp. uPD720202 USB 3.0 Host Controller
... snip ...

Проверенные гипервизоры Xen:

Ядра Linux протестированы:

VT-d включен.

Из информации xl:

release                : 5.5.6-1-default
version                : #1 SMP Mon Feb 24 09:02:31 UTC 2020 (4a830b1)
machine                : x86_64
...
hw_caps                : bfebfbff:77faf3ff:2c100800:00000121:0000000f:009c6fbf:00000000:00000100
virt_caps              : pv hvm hvm_directio pv_directio
...
xen_version            : 4.13.0_08-1
xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64 
...
xen_commandline        : dom0-iommu=strict=1 iommu=required,quarantine,verbose,debug reboot=no,power dom0_mem=min:6144M,max:6144M vga=ask

(Точная карта расширения PCIe - это https://www.startech.com/Cards-Adapters/USB-3.0/Cards/PCI-Express-USB-3-Card-4-Dedicated-Channels-4-Port~PEXUSB3S44V)