LINUX.ORG.RU

Бесплатные идентификаторы USB для открытого аппаратного обеспечения

 , , ,


6

2

Несмотря на то, что в 2013 году консорциум USB-IF отказался выделить диапазон идентификаторов (VendorID) для открытых проектов, энтузиастами была найдена лазейка.

При определении USB-устройств операционные системы использует 16-разрядные идентификаторы VendorID (VID) и ProductID (PID). В частности, невозможно одновременно использовать два устройства с одинаковыми идентификаторами, если им требуются разные драйверы.

Правила получения диапазона строго запрещают передачу идентификаторов продукта в любой форме, а само получение обходится в несколько тысяч долларов (за один диапазон ёмкостью аж в 65535 PID, что приводит к очевидному выводу — большая часть полученных идентификаторов лежит у владельцев мёртвым грузом). Но эти правила не распространяются на диапазоны, выданные в давние времена, ещё до образования USB-IF. Компания InterBiometrics, владеющая именно таким диапазоном (VID 1209), за всё время использовала лишь 6 идентификаторов из 65535. Поэтому она оставила себе «про запас» PID с 0×1000 по 0×1FFF, а остальные (0×2000-0xFFFF) передала проекту pid.codes, благодаря чему, любое открытое аппаратное обеспечение теперь может получить свой уникальный идентификатор.

Процедура описана здесь. Условиями получения являются: распространение под свободной лицензией, наличие публичного репозитория и, естественно, интерфейса USB.

>>> Подробности

anonymous

Проверено: JB ()
Последнее исправление: unfo (всего исправлений: 3)
Ответ на: комментарий от Krieger_Od

Нельзя же. Наш пул начинается с 0×2000.

CYB3R ★★★★★
()
Ответ на: комментарий от anonymous

Если фирма успеет выпустить достаточно девайсов и они будут популярны, то отзыв идентификатора бессмысленен - проблемы будут не только у старого владельца, но и у нового. И у того, кто окажется менее популярен (а это вполне может быть новый владелец), гораздо больше.

KivApple ★★★★★
()
Ответ на: комментарий от Ceiling_QB

Ну а где еще 4095? Все равно ведь не сходится.

Если она использовала только 6 идентификаторов и 4095 зарезервировала.

То есть, 65 529-8190, а не 4095.

Twissel ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Да,не писать.
Лично я увидев такой разъём не задумываясь подключу его к соответствующему гнезду компьютера.
А вообще ведь есть SPI и LAN

torvn77 ★★★★★
()
Последнее исправление: torvn77 (всего исправлений: 2)
Ответ на: комментарий от anonymous

Если узнают - просто отзовут у перепродавшего этот диапазон и продадут его кому-то еще.

Этот кто-то еще будет ну очень «рад». Если тот диапазон уже будет задействован. Все-таки, подозреваю, что тут какая-то копирастия должна быть, иначе полно людей бы уже наплевало на диапазоны. Ну вот выпущу я устройство, ничего ни у кого не покупая и какие проблемы? Когда возникнут, уже новые будут продаваться.

praseodim ★★★★★
()
Ответ на: комментарий от KivApple

И не было бы никаких проблем

Тогда бы они не смогли ими торговать.

Вообще, уже сейчас можно при помощи одного PID тупо расширить адресацию путём дополнительного хэндшейка после первичной инициализации. Но, опять-таки, исчезнет кормушка.

true_admin ★★★★★
()
Последнее исправление: true_admin (всего исправлений: 1)
Ответ на: комментарий от true_admin

Можно то можно. Но нужна стандартизация этого процесса. Взять какой-нибудь VID:PID, запихнуть GUID в какой-нибудь дескрипор и написать драйвер, который будет подбирать из списка драйверов нужный по GUID и подгружать его для каждого устройства. Для Linux хватит простого патча, для винды потребуется драйвер-прокси.

Кто-то должен проделать эту работу и при этом послать лесом всё бухтение USB-IF.

KivApple ★★★★★
()
Последнее исправление: KivApple (всего исправлений: 1)
Ответ на: комментарий от KivApple

Мне кажется, тут основная проблема не в реализации будет, а как отбиться от юристов usb-if. Причём, они могут иски подать в разных странах одновременно. И будет «веселуха» если возникнет сегментация.

true_admin ★★★★★
()
Ответ на: комментарий от praseodim

Я просто подумал, что-то ведь препятствует тому, чтобы передавать кому-то эти идентификаторы. Например, фирма купила их и передала, тут сказано, что запрещено, а каким законом запрещено?

законом не запрещено, USB-IF попросту отберет VID. а вот если наклеить шильдик, то это дело подсудное, потому что USB и его логотип - товарные знаки.

Lincor
()
Ответ на: комментарий от praseodim

иначе полно людей бы уже наплевало на диапазоны

так оно и есть. китаец со своим диапазоном - великая редкость.

Lincor
()
Последнее исправление: Lincor (всего исправлений: 1)

Несмотря на то, что в 2013 году консорциум USB-IF отказался выделить диапазон идентификаторов (VendorID) для открытых проектов, энтузиастами была найдена лазейка.

Иначе говоря, USB-IF соснулей на $285млн.

Mosi
()
Ответ на: комментарий от ncrmnt

А ведь это выход! Публикуется открытый стандарт на определеный vid:pid, предусматривающий разделение устройств по определенному дескриптору. Емкость практически не ограничена. Не знаю как обстоит дело со стандартами в проприетарных системах, но в линуксе такую архитектуру можно имплементировать без проблем. А дальше и остальные подтянутся.

A-234 ★★★★★
()
Последнее исправление: A-234 (всего исправлений: 1)
Ответ на: комментарий от A-234

Так уже было с vusb (софтовый стек для avr). Там обязательно string дескриптор - web url того, кто сделал девайс и по нему и продакт дескриптору делается матчинг. В линуксах это 100 лет как работает. Проблема в том, что в _windows_ на пару vid/pid может работать одновременно один драйвер. Если драйвер - libusb - проблем нет. Если мимикрируем под существующий класс - фейл.

ncrmnt ★★★★★
()
Ответ на: комментарий от mittorn

Вендоюзеры тоже хорошо платят за OpenHardware.

ncrmnt ★★★★★
()

А какие вообще сейчас есть альтернативы USB, не подверженные данной проблеме?

cvs-255 ★★★★★
()
Ответ на: комментарий от true_admin

А что бы ты сделал если бы твои идентификаторы юзала другая контора?

Интересно, как эти идентификаторы им принадлежат

cvs-255 ★★★★★
()
Ответ на: комментарий от cvs-255

Это нормально. Нехрен этому делу в ядре делать в 99% случаев.

ncrmnt ★★★★★
()
Ответ на: комментарий от true_admin

Емнип там сколько-то баксов единожды за VID, и отдельно членские взносы, которые что-то дают сферическое, в вакууме.

ncrmnt ★★★★★
()
Ответ на: комментарий от cvs-255

И какое же обвинение тебя ждет?

Хм, я не смог ничего внятного ни придумать, ни нагуглить.

true_admin ★★★★★
()

Я что-то не понимаю - за самовольное использование чужого идентификатора штрафуют на миллион и конфискуют орудия преступления? Ну будут устройства клоны, но шанс для пользователя с ними столкнуться невелик, просто надо научиться писать нормальные дрова, как в винде - на оптических дисках поставляемых с устройствами.

Napilnik ★★★★★
()
Ответ на: комментарий от Kosyak

Чтобы получить свой VID производителю нужно принести бабки (~5 килобаксов) консорциуму USB-IF.

А почему нельзя в open source проекте просто пропатчить USB драйвер ядра и вписать туда что угодно наплевав на проприетарных торговцев воздуха?

mongo
()

При определении USB-устройств операционные системы использует 16-разрядные идентификаторы

Зажопились на UUID.

anonymous
()
Ответ на: комментарий от ncrmnt

Ну если решать проблему централизованно, то можно написать специальный драйвер-прокси. Он бы садился на определённый VID-PID, запрашивал специальным запросом GUID устройства, искал по своему списку нужный драйвер и перенаправлял все запросы к нему. То есть такое расширение USB-стека винды. Не вижу причин почему это не возможно. Разве что драйвера девайсов придётся писать немного иначе (регистрироваться не в штатном виндовом стеке USB, а в драйвере-прокси).

Или даже радикальный вариант. Перехватывать устройства с ЛЮБЫМ VID-PID. Если в дескрипторах есть GUID, то забиваем на VID-PID и ищем драйвер по-своему, а затем проксируем в него все запросы, иначе возвращаем управление системе.

KivApple ★★★★★
()
Последнее исправление: KivApple (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

Лишь бы не нахватали напрасно кучу ID-шников, а чтобы это было грамотно и экономно распределено!

Где-то я уже это слышал... А, подождите! Это же коммунизм!

Wizard_ ★★★★★
()
Ответ на: комментарий от Twissel

Не вижу проблем в тексте новости. На их странице с выданными PID-ами точно так же видно, что номера выданных начинаются с 0x2000.

Wizard_ ★★★★★
()
Ответ на: комментарий от ncrmnt

Тоесть проблема в том что в выньде конкретный vid:pid должен принадлежать конкретному классу? Тоесть я не могу подключить мышу на которую запустится драйвер-диспетчер подгружающий ее драйвер а потом веб камеру. Я правильно понял?

A-234 ★★★★★
()

Можно сделать неофициальное исключение - устройства, которые используют эти идентификаторы, могут слать дополнительные идентификационные строки, чтобы уж точно можно было их идентифицировать и не бояться конфликтов железяк.

Quasar ★★★★★
()
Ответ на: комментарий от Kosyak

А бабло в карман как пихать тогда этому USB-IF?

Quasar ★★★★★
()

Сегодня бесплатные, завтра нет, послезавтра «твой» PID отдадут другому, и фиг докажешь что ты не виноват

TEX ★★★
()
Ответ на: комментарий от ncrmnt

Работает только если есть свой драйвер (или через libusb), а не какой нить стандартный класс типа UVC, HID, CDC и иже с ними.

h4tr3d ★★★★★
()
Ответ на: комментарий от ncrmnt

Нужно только зафорсить для девайса драйвер WinUSB. Можно делать при помощи Zadig или автоматически при помощи libwdi (zadig семпл к ней). В Win8/8.1 появилась возможность хитрым способом девайсу сказать винде, что он WinUSB совместимый и винда сама заасайнит драйвер к нему. К ограничениям: libusb на винде не умеет isochronous трансферингю. На маке и linux никаких телодвижений. На линухе, скорее всего, потребуется корректная настройка прав доступа, но от root будет работать всегда, можно разрулить при помощи udev, предоставляя правила вместе с программой. На маке вообще ничего делать не нужно.

h4tr3d ★★★★★
()
Ответ на: комментарий от Kosyak

Так и это и так имеется :) посмотри как классы устройств реализованы. У тебя дескрипторы могут быть охрененно большими, у тебя одно устройство может видеться как несколько независимых (композитное устройство, пример: вебкамера с микрофоном - UVC+UAC).

h4tr3d ★★★★★
()
Ответ на: комментарий от vasaka

Не имеешь только право ставить их лого и писать USB-compatible.

h4tr3d ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.