Перейти к содержимому
Калькуляторы

Максимальное количество USB устройств.

Всем привет. Столкнулся с интересной проблемой. Система Ubuntu 18.04.1 LTS (GNU/Linux 4.15.0-45-generic x86_64). Подключено два USB хаба по 10 портов каждый. В каждый порт хаба воткнут карт ридер (карточки для спутникового доступа). Утилита lsusb определяет все 20 ридеров:

 

#lsusb

Bus 002 Device 002: ID 8087:8000 Intel Corp.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8008 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 027: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 003 Device 026: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 003 Device 024: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 003 Device 022: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 003 Device 017: ID 0409:005a NEC Corp. HighSpeed Hub
Bus 003 Device 013: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 003 Device 009: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 003 Device 021: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 003 Device 018: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 003 Device 014: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 003 Device 011: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 003 Device 006: ID 0409:005a NEC Corp. HighSpeed Hub
Bus 003 Device 003: ID 0409:005a NEC Corp. HighSpeed Hub
Bus 003 Device 025: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 003 Device 023: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 003 Device 019: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 003 Device 015: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 003 Device 010: ID 0409:005a NEC Corp. HighSpeed Hub
Bus 003 Device 007: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 003 Device 005: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 003 Device 020: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 003 Device 016: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 003 Device 012: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 003 Device 008: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 003 Device 004: ID 0409:005a NEC Corp. HighSpeed Hub
Bus 003 Device 002: ID 0409:005a NEC Corp. HighSpeed Hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 

Но в каталоге /dev/ появляется только 19.

 

#ll /dev/ttyUSB*
crw-rw---- 1 root dialout 188,  0 фев  8 09:36 /dev/ttyUSB0
crw-rw---- 1 root dialout 188,  1 фев  8 09:36 /dev/ttyUSB1
crw-rw---- 1 root dialout 188, 10 фев  8 09:36 /dev/ttyUSB10
crw-rw---- 1 root dialout 188, 11 фев  8 09:36 /dev/ttyUSB11
crw-rw---- 1 root dialout 188, 12 фев  8 09:36 /dev/ttyUSB12
crw-rw---- 1 root dialout 188, 13 фев  8 09:36 /dev/ttyUSB13
crw-rw---- 1 root dialout 188, 14 фев  8 09:36 /dev/ttyUSB14
crw-rw---- 1 root dialout 188, 15 фев  8 09:36 /dev/ttyUSB15
crw-rw---- 1 root dialout 188, 16 фев  8 09:36 /dev/ttyUSB16
crw-rw---- 1 root dialout 188, 17 фев  8 09:36 /dev/ttyUSB17
crw-rw---- 1 root dialout 188, 18 фев  8 09:36 /dev/ttyUSB18
crw-rw---- 1 root dialout 188,  2 фев  8 09:36 /dev/ttyUSB2
crw-rw---- 1 root dialout 188,  3 фев  8 09:36 /dev/ttyUSB3
crw-rw---- 1 root dialout 188,  4 фев  8 09:36 /dev/ttyUSB4
crw-rw---- 1 root dialout 188,  5 фев  8 09:36 /dev/ttyUSB5
crw-rw---- 1 root dialout 188,  6 фев  8 09:36 /dev/ttyUSB6
crw-rw---- 1 root dialout 188,  7 фев  8 09:36 /dev/ttyUSB7
crw-rw---- 1 root dialout 188,  8 фев  8 09:36 /dev/ttyUSB8
crw-rw---- 1 root dialout 188,  9 фев  8 09:36 /dev/ttyUSB9
 

Может у кого-то есть идеи, куда девается 20-й ридер? Хабы и ридеры все рабочие, если подключать хабы по отдельности, то опредеяются по 10 штук. Одновременно же, только 19.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я бы посмотрел скрипты и конфиги udev (/etc/udev, /lib/udev и т.п.), скорее всего где-то в них эта константа будет определена.

В USB есть лимит по числу устройств на шине, я не помню, какой он, но значительно больше 20.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

14 минут назад, alibek сказал:

Я бы посмотрел скрипты и конфиги udev (/etc/udev, /lib/udev и т.п.), скорее всего где-то в них эта константа будет определена.

В USB есть лимит по числу устройств на шине, я не помню, какой он, но значительно больше 20.

Вроде всё тривиально...

# /dev/serial/by-path/, /dev/serial/by-id/ for USB devices
KERNEL!="ttyUSB[0-9]*|ttyACM[0-9]*", GOTO="serial_end"

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

lsusb | grep Futur
Bus 001 Device 028: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 001 Device 027: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 001 Device 026: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 001 Device 025: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 001 Device 024: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 001 Device 023: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 001 Device 022: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 001 Device 021: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 001 Device 020: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 001 Device 019: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 001 Device 018: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 001 Device 017: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 001 Device 016: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 001 Device 015: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 001 Device 014: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 001 Device 013: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 001 Device 012: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 001 Device 011: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 001 Device 008: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 001 Device 007: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
lsusb | grep Futur | wc -l
20
ls -l /dev/ttyUSB???
lrwxrwxrwx 1 root root 7 Jan 18 10:58 /dev/ttyUSB111 -> ttyUSB3
lrwxrwxrwx 1 root root 7 Jan 18 10:58 /dev/ttyUSB112 -> ttyUSB2
lrwxrwxrwx 1 root root 8 Jan 18 10:58 /dev/ttyUSB113 -> ttyUSB12
lrwxrwxrwx 1 root root 8 Jan 18 10:58 /dev/ttyUSB114 -> ttyUSB15
lrwxrwxrwx 1 root root 8 Jan 18 10:58 /dev/ttyUSB115 -> ttyUSB14
lrwxrwxrwx 1 root root 8 Jan 18 10:58 /dev/ttyUSB116 -> ttyUSB13
lrwxrwxrwx 1 root root 8 Jan 18 10:58 /dev/ttyUSB117 -> ttyUSB19
lrwxrwxrwx 1 root root 8 Jan 18 10:58 /dev/ttyUSB118 -> ttyUSB18
lrwxrwxrwx 1 root root 8 Jan 18 10:58 /dev/ttyUSB119 -> ttyUSB17
lrwxrwxrwx 1 root root 8 Jan 18 10:58 /dev/ttyUSB120 -> ttyUSB16
lrwxrwxrwx 1 root root 7 Jan 18 10:58 /dev/ttyUSB121 -> ttyUSB1
lrwxrwxrwx 1 root root 7 Jan 18 10:58 /dev/ttyUSB122 -> ttyUSB0
lrwxrwxrwx 1 root root 7 Jan 18 10:58 /dev/ttyUSB123 -> ttyUSB4
lrwxrwxrwx 1 root root 7 Jan 18 10:58 /dev/ttyUSB124 -> ttyUSB7
lrwxrwxrwx 1 root root 7 Jan 18 10:58 /dev/ttyUSB125 -> ttyUSB6
lrwxrwxrwx 1 root root 7 Jan 18 10:58 /dev/ttyUSB126 -> ttyUSB5
lrwxrwxrwx 1 root root 8 Jan 18 10:58 /dev/ttyUSB127 -> ttyUSB11
lrwxrwxrwx 1 root root 8 Jan 18 10:58 /dev/ttyUSB128 -> ttyUSB10
lrwxrwxrwx 1 root root 7 Jan 18 10:58 /dev/ttyUSB129 -> ttyUSB9
lrwxrwxrwx 1 root root 7 Jan 18 10:58 /dev/ttyUSB130 -> ttyUSB8
ls -l /dev/ttyUSB???  | wc -l
20

uname -a
Linux iptv2 2.6.32-5-686 #1 SMP Sun Dec 21 11:09:34 UTC 2014 i686 GNU/Linux

 

 

Я бы тоже смотрел в сторону удава.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Дело в том, что udevadm не видит более никаких девайсов. Подключаю ещё один хаб с 10 картами, удев их не детектит....

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо всем за помощь. Решение оказалось довольно простым. Из-за кривой поддержки USB3.0 в linux ядро на отрез отказывалось определять устройства (даже клавиатуру не видело, если 19 устройств уже присутствовали в системе). Решение - отключить поддержку xhci в bios. Источник - https://superuser.com/questions/731751/not-enough-host-controller-resources-for-new-device-state и там есть ссылки внутри ещё. Всем хорошего настроения)))

Цитата:

 

Not enough host controller resources for new device state.

can't set config #1, error -12

Faced with the same errors. XHCI (usb 3.0) in linux kernel is limited to 32 devices. It looks like a bug. But maybe this is a Bill Gates way "640 kilobytes enough for everyone". In any case, it's a pain.

1) The easiest way to fix it: disable XHCI (usb 3.0) support in motherboard BIOS if possible. 2) The hard way to fix it: disable XHCI linux module. modprobe -r xhci-hcd But in most cases it does not work. You must recompile the kernel to disable XHCI and enable OHCI (usb 1.1) and EHXI (usb 2.0).

Изменено пользователем Sashok1985

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Можно глянуть сырцы модуля xhci-hcd, возможно там захардкорено.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.