Если у меня подключен только один или два модуля, все выглядит нормально. Подключив третий модуль, я получаю логи dmesg:
Код: Выделить всё
[63460.856556] usb 1-3.3.2: Not enough bandwidth for new device state.
[63460.856574] usb 1-3.3.2: can't set config #1, error -28
Код: Выделить всё
Endpoint Descriptor:
646- bLength 7
647- bDescriptorType 5
648- bEndpointAddress 0x01 EP 1 OUT
649- bmAttributes 3
650: Transfer Type Interrupt
651- Synch Type None
652- Usage Type Data
653- wMaxPacketSize 0x0400 1x 1024 bytes
654- bInterval 1
655- Endpoint Descriptor:
656- bLength 7
657- bDescriptorType 5
658- bEndpointAddress 0x81 EP 1 IN
659- bmAttributes 3
660: Transfer Type Interrupt
661- Synch Type None
662- Usage Type Data
663- wMaxPacketSize 0x0400 1x 1024 bytes
664- bInterval 1
Я считаю, что Linux и/или Сам хост-контроллер устанавливает ограничение в 80% от доступных 480 Мбит/с или 384 Мбит/с. Я подозреваю, что именно поэтому два модуля работают (260 Мбит/с < 384 Мбит/с), а три нет (390 Мбит/с > 384 Мбит/с).
Поскольку я хочу использовать их только в режиме монитора и на самом деле мне не нужна большая полоса пропускания передачи, мне интересно, смогу ли я как-то манипулировать вещами в своих интересах. Возможно, какие-то правила udev меняют эти дескрипторы или что-то в этом роде? Вступят ли они в силу до того, как будут оценены ограничения пропускной способности? Или мне нужно будет разобраться с прошивкой/драйверами этих модулей, чтобы иметь возможность изменить эти дескрипторы до того, как будут наложены ограничения пропускной способности?
Подробнее здесь: https://stackoverflow.com/questions/790 ... -04-server
Мобильная версия