Здравствуйте, velkin, Вы писали:
V>по расположению разъёма, но не на USB хабе, а на материнской плате.
Я имел в виду
внутренний хаб платы. Устройства никогда не подключаются непосредственно к контроллеру/хосту — под ним всегда есть хотя бы один хаб. В ноутбуках он, как правило, один, а на десктопных платах их обычно несколько.
ЕМ>>А сколько в системе встроенных USB-хабов?
V>Давай определимся с терминологией.
Если все эти иллюстрации предназначены для меня, то у меня есть подозрение, что в структуре и работе USB я разбираюсь несколько лучше Вас.
Или они просто для того, чтобы попутно оформить реплику в виде очередной статьи?
V>У меня путь ttyUSB#, то есть ttyUSB0, ttyUSB1, ttyUSB2, ttyUSB3 и так далее всё время скакал от устройства к устройству. Это как в Windows был бы COM1, а после перезагрузки стал COM2, а после перевтыкания разъёма опять COM1 или COM3 и так далее.
В Windows так не бывает. Если она однажды присвоила имя устройству, подключенному в конкретный разъем, то после перезагрузки это имя сохранится. А имена эти связаны с так называемыми interface paths, по которым можно обратиться к устройству. В составе interface path всегда есть hardware path, который формируется из идентификаторов шины и самого устройства, и эти пути при перезагрузке меняться не должны. Поэтому я и удивился, когда юзер пожаловался, что у него каждый раз получается другой путь. Правда, я сильно подозреваю, что он что-то напутал — например, перетыкал устройства, перепутал пути и т.п.
V>Смысл в том, что ttyUSB# воткнутого устройства всё время меняется, но путь разъёма на материнской плате не меняется, это ATTRS{devpath}.
А вот мой юзер утверждает, что у него наоборот: имена устройств сохраняются, а location information, состоящая из номеров хаба и разъема, меняется при каждой перезагрузке.
V>надо конкретно сесть за твой код и твои устройства.
При чем здесь
мои код и устройства? Надо понять, какие атрибуты физического адреса устройства, определяемые виндой, воспроизводятся при ее перезагрузке.