Проблема с 4-кратным USB-контроллером Карты PCIE, похоже, неправильно установлены.
Ситуация: Мы хотим использовать камеры USB Vision с платами USB-адаптеров, обеспечивая максимально возможную пропускную способность.Итак, мы попробовали два разных типа карт: ASMedia xy и Renesas uPD720202, где на рынке доминирует ASMedia, и было очень трудно достать несколько карт Renesas.
Проблема: карта ASMedia Card частично работает. USB-устройства, такие как внешние SSD-накопители, можно использовать (с высокой скоростью передачи), но при использовании камеры они останавливаются после нескольких кадров с некоторой ошибкой DMA. Камера использует режим BULK. Гугление в течение нескольких часов показывает, что у чипа ASMedia, кажется, есть какие-то ошибки прошивки или что-то в этом роде, поэтому мы отказались от идеи использовать эту карту. ASMedia работала на не тестированном ПК в сочетании с камерой).
Попробовав карту с чипами Renesas, она отлично работает на ПК ThinkCentre, но не на целевом оборудовании, сервере Supermicro. Оба используют одну и ту же ОС (Ubuntu 18.04, ядро 5.4.0-97-generic). Сервер имеет гораздо больше оперативной памяти, графических процессоров и т. д.
Вот ссылка на ThinkCentre, где это работает: https://linux-hardware.org/?probe=c945332cad
Вот ссылка на сервер (не работает): https://linux-hardware.org/?probe=f0c1c16098
Мы пробовали много всего (из случайных запросов Google, где были решены проблемы с картой renesas), например, отключение автоприостановки, обновления ядра, разные версии Ubuntu и т. д. Ничего не помогло, поэтому я сравнил dmesg обеих систем.
Единственная реальная разница, которую я мог заметить, - это недостающая строка во время инициализации (?) карты. Пожалуйста, не обращайте внимания на тот факт, что ThinkCentre показывает 4x контроллер uPD720202, а сервер только 3x. Мой коллега говорит, что он показывал 4x в каждом прогоне, но, к сожалению, теперь у меня есть только 3x журнал.
Вот разница, которую я мог заметить:
В ThinkCentre dmesg есть такой блок:
[0.268577] pci_bus 0000:03: ресурс 0 [io 0x2000-0x2fff]
[0.268578] pci_bus 0000:03: ресурс 1 [mem 0xdf300000-0xdf3fffff]
[0.268578] pci_bus 0000:03: ресурс 2 [mem 0xd0000000-0xd01fffff 64bit pref]
[0.268579] pci_bus 0000:04: ресурс 0 [io 0x3000-0x3fff]
[0.268580] pci_bus 0000:04: ресурс 1 [mem 0xdf200000-0xdf2fffff]
[0.268580] pci_bus 0000:04: ресурс 2 [mem 0xd0200000-0xd03fffff 64-битная предустановка]
[0.268581] pci_bus 0000:05: ресурс 0 [io 0x4000-0x4fff]
[0.268582] pci_bus 0000:05: ресурс 1 [mem 0xdf100000-0xdf1fffff]
[0.268582] pci_bus 0000:05: ресурс 2 [mem 0xd0400000-0xd05fffff 64-битная приставка]
[0.268583] pci_bus 0000:06: ресурс 0 [io 0x5000-0x5fff]
[0.268584] pci_bus 0000:06: ресурс 1 [mem 0xdf000000-0xdf0fffff]
[0.268584] pci_bus 0000:06: ресурс 2 [mem 0xd0600000-0xd07fffff 64-битная предустановка]
а на сервере вижу этот блок:
[10.247535] pci_bus 0000:83: ресурс 1 [mem 0xd3600000-0xd36fffff]
[10.247538] pci_bus 0000:83: ресурс 2 [mem 0x390000000000-0x3900001fffff 64bit pref]
[10.247540] pci_bus 0000:84: ресурс 1 [mem 0xd3500000-0xd35fffff]
[10.247542] pci_bus 0000:84: ресурс 2 [mem 0x390000200000-0x3900003fffff 64bit pref]
[10.247545] pci_bus 0000:85: ресурс 1 [mem 0xd3400000-0xd34fffff]
[10.247547] pci_bus 0000:85: ресурс 2 [mem 0x390000400000-0x3900005fffff 64bit pref]
[10.247550] pci_bus 0000:86: ресурс 1 [mem 0xd3300000-0xd33fffff]
[10.247552] pci_bus 0000:86: ресурс 2 [mem 0x390000600000-0x3900007fffff 64-битная приставка]
Вы можете видеть, что для каждого из ресурсов есть строка io, которая отсутствует в dmesg сервера.
Для чего эта строка? Каковы вероятные причины отсутствия этих строк? Как отлаживать? Это даже правильный намек на решение проблемы?
Кстати: камеры отлично работают на любом из внутренних/родных USB-контроллеров этого сервера.
Спасибо за любую помощь/идею.
Это дубликат поста: