Re[4]: Как надежно различать два одинаковых USB-устройства в Window
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 09.01.25 21:31
Оценка:
Здравствуйте, 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>надо конкретно сесть за твой код и твои устройства.


При чем здесь мои код и устройства? Надо понять, какие атрибуты физического адреса устройства, определяемые виндой, воспроизводятся при ее перезагрузке.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.