Что такое и как увеличить максимальное количество USB-устройств?

Мне интересно, какое максимальное количество USB-устройств может управлять ядром Linux? Это зависит от корневого концентратора или чего-то еще?

Есть ли способ увеличить это максимальное число?

Мне нужно это сделать, потому что я столкнулся с проблемами при попытке записать на большое количество USB-накопителей. Для этого у меня есть настройка следующим образом:

Существует 1 компьютер под управлением Ubuntu Linux, с 3 (активными) концентраторами, подключенными к 3 портам USB этого аппарата. Все три HUB – это 7 портов HUB. К 6 из этих 7 портов добавлено больше HUB. Это дает мне 3 * 6 = 18 HUB во втором слое. Каждый из этих HUB также является активным 7-портовым HUB. К каждому порту этих концентраторов второго уровня прилагается USB-накопитель. В общей сложности у меня есть 126 USB Sticks, подключенных к компьютеру.

У меня есть скрипт, который ищет все USB-устройства (через листинг / dev / disk / by-path /). Затем каждое из USB-устройств сначала разбивается на разделы, записывается на использование cp, а затем делается загрузочным с использованием syslinux. Это НЕ выполняется параллельно!

Проблема: я получаю только 105 USB-устройств, использующих

ls -la /dev/disk/by-path | grep usb | grep -v part | wc -l 

Светодиоды палочек в 3 ряда (одна строка соответствует одному HUB во втором слое) тоже выключены.

Как я могу заставить все эти палки работать? (Или, возможно, даже больше?)

  • USB-носитель для Chromium OS
  • Почему «dd» не работает для создания загрузочного USB?
  • Установка USB-устройства в Linux
  • Сеть iPod Touch без Wi-Fi
  • Как создать загрузочную ОС Windows с ОС Mac OS X
  • Почему Windows 7 запрашивает дополнительные драйверы при установке с USB 3.0?
  • One Solution collect form web for “Что такое и как увеличить максимальное количество USB-устройств?”

    Это стандартно, как описано здесь: https://en.wikipedia.org/wiki/USB_device#System_design

    У вас не может быть более 127 устройств (включая концентратор), подключенных к одному контроллеру хоста.

    Теперь: хост-контроллер + 3 ступицы (1-й уровень) +18 ступиц (2-й уровень) = 22 устройства, которые НЕ появляются как дисковые устройства.

    127 минус эти 22 устройства USB = 105 устройств, которые могут управляться ядром как диски.

    127 – жесткий предел USB-протокола (см. Здесь: http://www.beyondlogic.org/usbnutshell/usb3.shtml#USBProtocols ), поскольку поле адреса ADDR имеет длину 7 бит.

    Поэтому по программному обеспечению нет возможности его увеличить. Возможно, вы можете попробовать больше, чем интерфейс контроллера хоста, или изменить топологию, уменьшив количество концентраторов (тем самым увеличив количество дисков, видимых системой).

    Давайте будем гением компьютера.