Перейти к содержанию
    

Ищу решение по совмещению RNDIS и VCOM в одном составном USB дивайсе. Водятся ли такие в природе?

На худой конец хотя бы USB mass storage + RNDIS.

Т.е. интересует содержимое дескрипторов и содержимое .inf файла под Windows для такого решения.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Конечно. 5$ и можно начинать.

http://irq5.io/2016/12/22/raspberry-pi-zero-as-multiple-usb-gadgets/

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

18 minutes ago, x893 said:

Конечно. 5$ и можно начинать.

http://irq5.io/2016/12/22/raspberry-pi-zero-as-multiple-usb-gadgets/

 

Там уверенно говорится только о Линуксе и скорее всего в составном дивайсе используется ECM (статья не конкретизирует)
А с Windows автор застрял на том как просто заставить работать RNDIS.
О составном дивайсе с RNDIS даже речи не идет. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 hours ago, x893 said:

Если нажать на ссылки, то можно прочитать

http://www.isticktoit.net/?p=1383

А не могли бы вы просто цитату привести на подтверждение RNDIS+VCOM под Windows, а я бы уж ее нашел как нибудь с Google на пару.
А то полагаться на восторженное "and many more at the same time" как-то стремно.
Боюсь мужик ведет речь об отдельных USB интерфейсах, их же там несколько.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Конкретно Ваша конфигурация (RNDIS + CDC) под виндовс 7 и 10 не поднимается. От порядка устройств в составном дескрипторе не зависит. От HS/FS не зависит.

Изменено пользователем GenaSPB

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 hours ago, GenaSPB said:

Конкретно Ваша конфигурация (RNDIS + CDC) под виндовс 7 и 10 не поднимается. От порядка устройств в составном дескрипторе не зависит. От HS/FS не зависит.

Это личное убеждение или в сети есть где-то какие-то намеки? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 часов назад, GenaSPB сказал:

конфигурация (RNDIS + CDC) под виндовс 7 и 10 не поднимаетс

Я тут конечно не специалист, но есть такая штука, как онлайн касса, так там по усб может и сеть работать и ком-порт, под виндой, видимо как-то можно...

Хотя может там и какой-то "свой" драйвер используют.

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я может ошибаюсь, но BeagleBone как RNDIS и CDC виделся из-под W10. Под рукой нет - проверить не могу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это результат экспериментов. X893, будет возможность снимите дамп с помощью  usblyzer например.

Изменено пользователем GenaSPB

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если речь об онлайн кассе казначей (или как там его) там два cdc.

По ссылке http://www.isticktoit.net/?p=1383 поднимают ecm.

Изменено пользователем GenaSPB

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, GenaSPB сказал:

Если речь об онлайн кассе казначей (или как там его) там два cdc.

Да, возможно. По ходу на втором CDC поднимается программный мост EoU.  

ЗЫ. А в чем там вообще дело, вроде, как композитные устройства не зависят от типа, поднимаются на ура, или там эндпоинтов нехватает??

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет с ендмоинтами был нормально. У меня подозрение что хост всегда к первому интерфейсу начинает обращаться при наличии  rndis. Хотя cdc любом разумном количестве комбинируются. И с аудио и с hid совместно тестировал.

Изменено пользователем GenaSPB

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, GenaSPB said:

Это результат экспериментов. X893, будет возможность снимите дамп с помощью  usblyzer например.

 

Не осталось у меня BB. Был бы - уже давно бы снял и выложил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

20 hours ago, x893 said:

Я может ошибаюсь, но BeagleBone как RNDIS и CDC виделся из-под W10. Под рукой нет - проверить не могу.

Точняк, подключил BBB и действительно он одновременно Mass Storage, CDC и RNDIS.
Драйвера конечно там некие специальные надо ставить, но все равно дескриптор уже ясен.  
Короче , спасибо. 

Выкладываю дескрипторы

Spoiler

[Port2]  :  USB Composite Device


Is Port User Connectable:         yes
Is Port Debug Capable:            no
Companion Port Number:            17
Companion Hub Symbolic Link Name: USB#ROOT_HUB30#4&2123570&1&0#{f18a0e88-c30c-11d0-8815-00a0c906bed8}
Protocols Supported:
 USB 1.1:                         yes
 USB 2.0:                         yes
 USB 3.0:                         no

Device Power State:               PowerDeviceD0

       ---===>Device Information<===---
English product name: "BeagleBoneBlack"

ConnectionStatus:                  
Current Config Value:              0x01  -> Device Bus Speed: High (is not SuperSpeed or higher capable)
Device Address:                    0x12
Open Pipes:                           8

          ===>Device Descriptor<===
bLength:                           0x12
bDescriptorType:                   0x01
bcdUSB:                          0x0200
bDeviceClass:                      0xEF  -> This is a Multi-interface Function Code Device
bDeviceSubClass:                   0x02  -> This is the Common Class Sub Class
bDeviceProtocol:                   0x01  -> This is the Interface Association Descriptor protocol
bMaxPacketSize0:                   0x40 = (64) Bytes
idVendor:                        0x1D6B = The Linux Foundation
idProduct:                       0x0104
bcdDevice:                       0x0308
iManufacturer:                     0x02
     English (United States)  "Circuitco"
iProduct:                          0x03
     English (United States)  "BeagleBoneBlack"
iSerialNumber:                     0x04
     English (United States)  "5A-1813BBBK4305"
bNumConfigurations:                0x01

          ---===>Open Pipes<===---

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x82  -> Direction: IN - EndpointID: 2
bmAttributes:                      0x03  -> Interrupt Transfer Type
wMaxPacketSize:                  0x0008 = 1 transactions per microframe, 0x08 max bytes
bInterval:                         0x09

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x81  -> Direction: IN - EndpointID: 1
bmAttributes:                      0x02  -> Bulk Transfer Type
wMaxPacketSize:                  0x0200 = 0x200 max bytes
bInterval:                         0x00

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x01  -> Direction: OUT - EndpointID: 1
bmAttributes:                      0x02  -> Bulk Transfer Type
wMaxPacketSize:                  0x0200 = 0x200 max bytes
bInterval:                         0x00

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x84  -> Direction: IN - EndpointID: 4
bmAttributes:                      0x03  -> Interrupt Transfer Type
wMaxPacketSize:                  0x000A = 1 transactions per microframe, 0x0A max bytes
bInterval:                         0x09

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x85  -> Direction: IN - EndpointID: 5
bmAttributes:                      0x02  -> Bulk Transfer Type
wMaxPacketSize:                  0x0200 = 0x200 max bytes
bInterval:                         0x00

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x03  -> Direction: OUT - EndpointID: 3
bmAttributes:                      0x02  -> Bulk Transfer Type
wMaxPacketSize:                  0x0200 = 0x200 max bytes
bInterval:                         0x01

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x83  -> Direction: IN - EndpointID: 3
bmAttributes:                      0x02  -> Bulk Transfer Type
wMaxPacketSize:                  0x0200 = 0x200 max bytes
bInterval:                         0x00

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x02  -> Direction: OUT - EndpointID: 2
bmAttributes:                      0x02  -> Bulk Transfer Type
wMaxPacketSize:                  0x0200 = 0x200 max bytes
bInterval:                         0x00

       ---===>Full Configuration Descriptor<===---

          ===>Configuration Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x02
wTotalLength:                    0x00A4  -> Validated
bNumInterfaces:                    0x05
bConfigurationValue:               0x01
iConfiguration:                    0x05
     English (United States)  "Multifunction with RNDIS"
bmAttributes:                      0xC0  -> Self Powered
MaxPower:                          0x01 =   2 mA

          ===>IAD Descriptor<===
bLength:                           0x08
bDescriptorType:                   0x0B
bFirstInterface:                   0x00
bInterfaceCount:                   0x02
bFunctionClass:                    0x02  -> This is Communications (CDC Control) USB Device Interface Class
bFunctionSubClass:                 0x06
bFunctionProtocol:                 0x00
iFunction:                         0x09
     English (United States)  "RNDIS"

          ===>Interface Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x04
bInterfaceNumber:                  0x00
bAlternateSetting:                 0x00
bNumEndpoints:                     0x01
bInterfaceClass:                   0x02  -> This is Communications (CDC Control) USB Device Interface Class
bInterfaceSubClass:                0x02
bInterfaceProtocol:                0xFF
iInterface:                        0x07
     English (United States)  "RNDIS Communications Control"
  -> This is a Communications (CDC Control) USB Device Interface Class

          ===>Descriptor Hex Dump<===
bLength:                           0x05
bDescriptorType:                   0x24
05 24 00 10 01 
  -> This is a Communications (CDC Control) USB Device Interface Class

          ===>Descriptor Hex Dump<===
bLength:                           0x05
bDescriptorType:                   0x24
05 24 01 00 01 
  -> This is a Communications (CDC Control) USB Device Interface Class

          ===>Descriptor Hex Dump<===
bLength:                           0x04
bDescriptorType:                   0x24
04 24 02 00 
  -> This is a Communications (CDC Control) USB Device Interface Class

          ===>Descriptor Hex Dump<===
bLength:                           0x05
bDescriptorType:                   0x24
05 24 06 00 01 

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x82  -> Direction: IN - EndpointID: 2
bmAttributes:                      0x03  -> Interrupt Transfer Type
wMaxPacketSize:                  0x0008 = 1 transactions per microframe, 0x08 max bytes
bInterval:                         0x09

          ===>Interface Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x04
bInterfaceNumber:                  0x01
bAlternateSetting:                 0x00
bNumEndpoints:                     0x02
bInterfaceClass:                   0x0A  -> This is a CDC Data USB Device Interface Class
bInterfaceSubClass:                0x00
bInterfaceProtocol:                0x00
iInterface:                        0x08
     English (United States)  "RNDIS Ethernet Data"

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x81  -> Direction: IN - EndpointID: 1
bmAttributes:                      0x02  -> Bulk Transfer Type
wMaxPacketSize:                  0x0200 = 0x200 max bytes
bInterval:                         0x00

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x01  -> Direction: OUT - EndpointID: 1
bmAttributes:                      0x02  -> Bulk Transfer Type
wMaxPacketSize:                  0x0200 = 0x200 max bytes
bInterval:                         0x00

          ===>IAD Descriptor<===
bLength:                           0x08
bDescriptorType:                   0x0B
bFirstInterface:                   0x02
bInterfaceCount:                   0x02
bFunctionClass:                    0x02  -> This is Communications (CDC Control) USB Device Interface Class
bFunctionSubClass:                 0x02
bFunctionProtocol:                 0x01
iFunction:                         0x0C
     English (United States)  "CDC Serial"

          ===>Interface Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x04
bInterfaceNumber:                  0x02
bAlternateSetting:                 0x00
bNumEndpoints:                     0x01
bInterfaceClass:                   0x02  -> This is Communications (CDC Control) USB Device Interface Class
bInterfaceSubClass:                0x02
bInterfaceProtocol:                0x01
iInterface:                        0x0A
     English (United States)  "CDC Abstract Control Model (ACM)"
  -> This is a Communications (CDC Control) USB Device Interface Class

          ===>Descriptor Hex Dump<===
bLength:                           0x05
bDescriptorType:                   0x24
05 24 00 10 01 
  -> This is a Communications (CDC Control) USB Device Interface Class

          ===>Descriptor Hex Dump<===
bLength:                           0x05
bDescriptorType:                   0x24
05 24 01 00 03 
  -> This is a Communications (CDC Control) USB Device Interface Class

          ===>Descriptor Hex Dump<===
bLength:                           0x04
bDescriptorType:                   0x24
04 24 02 02 
  -> This is a Communications (CDC Control) USB Device Interface Class

          ===>Descriptor Hex Dump<===
bLength:                           0x05
bDescriptorType:                   0x24
05 24 06 02 03 

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x84  -> Direction: IN - EndpointID: 4
bmAttributes:                      0x03  -> Interrupt Transfer Type
wMaxPacketSize:                  0x000A = 1 transactions per microframe, 0x0A max bytes
bInterval:                         0x09

          ===>Interface Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x04
bInterfaceNumber:                  0x03
bAlternateSetting:                 0x00
bNumEndpoints:                     0x02
bInterfaceClass:                   0x0A  -> This is a CDC Data USB Device Interface Class
bInterfaceSubClass:                0x00
bInterfaceProtocol:                0x00
iInterface:                        0x0B
     English (United States)  "CDC ACM Data"

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x83  -> Direction: IN - EndpointID: 3
bmAttributes:                      0x02  -> Bulk Transfer Type
wMaxPacketSize:                  0x0200 = 0x200 max bytes
bInterval:                         0x00

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x02  -> Direction: OUT - EndpointID: 2
bmAttributes:                      0x02  -> Bulk Transfer Type
wMaxPacketSize:                  0x0200 = 0x200 max bytes
bInterval:                         0x00

          ===>Interface Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x04
bInterfaceNumber:                  0x04
bAlternateSetting:                 0x00
bNumEndpoints:                     0x02
bInterfaceClass:                   0x08  -> This is a Mass Storage USB Device Interface Class
bInterfaceSubClass:                0x06
bInterfaceProtocol:                0x50
iInterface:                        0x01
     English (United States)  "Mass Storage"

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x85  -> Direction: IN - EndpointID: 5
bmAttributes:                      0x02  -> Bulk Transfer Type
wMaxPacketSize:                  0x0200 = 0x200 max bytes
bInterval:                         0x00

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x03  -> Direction: OUT - EndpointID: 3
bmAttributes:                      0x02  -> Bulk Transfer Type
wMaxPacketSize:                  0x0200 = 0x200 max bytes
bInterval:                         0x01

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...