Вопрос к опытным людям.
Имеется: цифровая радиостанция стандарта MotoTRBO
с интерфейсом USB.
Есть драйвер под Windows XP, при установке которого образуется
сетевой интерфейс, подключенный к сети. IP адрес выдается
автоматически,но всегда один и тот же. Можно его задать и руками.
К примеру, IP адрес 192.168.10.11, основной шлюз 192.168.10.10
(заносится в радиостанцию вручную спец. программой)
Драйвера под Linux нет.
В документации на радиостанцию указано, что используется RNDIS.
Под Windows драйвер именно такой.
Но lsusb -v
выдает:
====================================
Bus 001 Device 003: ID 0cad:1021 Motorola CGISS
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 2 Communications
bDeviceSubClass 2 Abstract (modem)
bDeviceProtocol 0 None
bMaxPacketSize0 8
idVendor 0x0cad Motorola CGISS
idProduct 0x1021
bcdDevice 1.00
iManufacturer 1 Motorola Corporation
iProduct 2 Motorola LTD Device
iSerial 3 038THQ3788
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 67
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 4mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 2 Communications
bInterfaceSubClass 2 Abstract (modem)
bInterfaceProtocol 1 AT-commands (v.25ter)
iInterface 0
CDC Header:
bcdCDC 1.10
CDC Call Management:
bmCapabilities 0x00
bDataInterface 0
CDC ACM:
bmCapabilities 0x00
CDC Union:
bMasterInterface 0
bSlaveInterface 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Device Status: 0x0001
=============
Непонятно.
Поле bInterfaceProtocol = 1 : AT-commands (v.25ter)
(для RNDIS оно должно быть равно 0xff.)
linux( Fedora 14) соответственно использует драйвер cdc_acm,
появляется устройство /dev/ttyACM0
Но никакого модема там нет!
Если открыть устройство терминалом, ответы на AT-команды отсутствуют.
Хорошо, верим документации, ищем в драйверах RNDIS.
В дистрибутиве есть 2 упоминания RNDIS:
в ветке /drivers/usb/gadget/
и
/drivers/net/usb - rndis_host.
Для rndis_host нужно загрузить cdc_ether. Он не «видит» устройства
по причине несоответствия bInterfaceProtocol.
Эксперимент:
Патчим cdc_ether, чтобы устройство 0cad:1021 распознавалось, как
поддерживающее RNDIS.
Понятно, что никакой гарантии работы нет.
Устанавливаем:
rmmod cdc_acm
modprobe usbnet
insmod cdc_ether.ko - тут появляется сетевой интерфейс usb0
insmod rndis_host.ko
Конфигурим:
ifconfig usb0 192.168.10.11 netmask 255.255.255.0 up
Ну и собственно на этом всё.
----
ping 192.168.10.10 -I usb0
Warning: cannot bind to specified iface, falling back: Операция не позволяется
---
Куда копать?
В железе, USB, низкоуровневых драйверах разбираюсь, как работает
usbnet и rndis host понимаю плохо.

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Huawei E352 (2012)
- Форум Не видится USB устройство с высоким потреблением энергии, как заставить видеть. (2023)
- Форум Помогите подобрать модуль ядра для железки (2015)
- Форум Bluetooth не соединяется ни с одним устройством (2019)
- Форум исчезает HP Scanejet G2410 (2015)
- Форум Как подбирать драйвера (2016)
- Форум Сканер в Дебиан зависает после пользования Simple-scan (Простое сканирование) (2016)
- Форум Кто-нить встречал такой USB-flash??? (2006)
- Форум Странности работы с /dev/hidraw (2021)
- Форум Запуск спец. ПО (win) под Wine (2020)