Почему внешний USB-концентратор отображается под другими номерами шины / порта USB, чем другие устройства, подключенные к тому же порту?
Я работаю над настройкой системы, в которой я хочу, чтобы определенные устройства всегда назывались одинаково, когда они подключены к определенным портам. Первоначально я установил файл правил udev с устройствами, подключенными непосредственно к компьютеру. Итак, у меня были такие правила:
ACTION=="add", KERNEL=="<namePattern>", KERNELS=="7-3", SYMLINK+="<newName>"
где 7-3
указал конкретный порт USB на карте PCI в компьютере (я выяснил номера для каждого порта, используя dmesg
или же udevadm info -q path -n <deviceName>
).
Однако теперь мне нужно подключить устройства к USB-концентратору, чтобы они были дальше от компьютера. Когда я подключаю USB-концентратор к тому же порту, он отображается под номером 4-5
вместо 7-3
, что меня смущает. Таким образом, устройства, подключенные к концентратору, попадают под номера, такие как 4-5.2
вместо 7-3.2
как я и ожидал.
Насколько я понимаю, первая цифра перед тире указывает, к какой шине USB подключено устройство, а строка цифр после тире указывает номер порта для каждого последующего концентратора, к которому подключено устройство. Поэтому для меня не имеет смысла, почему эти цифры внезапно изменятся на 4-5
когда я подключаю концентратор, когда они всегда были 7-3
для всего остального я подключен к этому порту. Я ожидал бы, что более ранние числа останутся прежними, но с дополнительным номером порта, прикрепленным к концу, чтобы указать, что это проходит через другой концентратор USB.
Учитывая, что первый хаб пронумерован 4-5
, нумерация действительно соответствует моим ожиданиям, когда я подключаю второй концентратор. Я получаю устройства с номерами, такими как 4-5.2.x
или же 4-5.3.x
в зависимости от того, к какому порту на первом концентраторе я подключаю второй. Итак 4-5
часть остается прежней, в то время как номера портов на первом и втором концентраторах привязаны.
Мне интересно, почему первый хаб появляется с номером 4-5
вместо 7-3
как и все остальное подключен к этому порту? Видимо, мне не хватает понимания того, как работает нумерация в разных ситуациях.
Обновление: я немного поигрался с системой, и оказалось, что странное перенумерация происходит только тогда, когда я подключаю USB-концентратор к одному из портов на PCI-карте. Когда я подключаю его к портам на материнской плате (или на передней панели компьютера, который в любом случае просто переходит к mobo), он сохраняет те же цифры, что и ожидал. Я до сих пор не понимаю, почему это происходит даже с картой PCI, но, по крайней мере, перенумерация выглядит последовательной. Таким образом, я все еще могу установить правила, которые будут работать. Если у кого-то есть какая-то хорошая интуиция в том, что происходит, мне все равно интересно понять, что происходит.