Страница 8 из 11

Re: Установка и настройка USB-модемов

Добавлено: 29 дек 2012, 02:34
Olej
Вот здесь вот НАИБОЛЕЕ ПОДРОБНОЕ РУКОВОДСТВО: настройка и использование модема ZTE MF 192 нашёл очень интересную фразу:
Другой, значительно менее известный, но, в то же время и
значительно более простой способ заключается в том, чтобы дать команду
eject /dev/sr0 для "из'ятия" компакт-диска.
/dev/sr0 - это, естественно, ZeroCD инсталляционный, который появляется после подключения модема, если его не поддерживает usb-modeswitch.
Это очень интересно, и нужно обязательно проверить!

Re: Установка и настройка USB-модемов

Добавлено: 29 дек 2012, 02:59
Olej
Olej писал(а):Логика работы usb_modeswitch совершенно понятна.
Кроме одного вопроса: как? где? взять строку MessageContent для произвольного типа модема?
Или как по тех.описаниям на сайте производителя составить такую строку MessageContent?
Логика работы usb_modeswitch понятна.
Для разборки того, как подключаются модемы, которые в Linux подключаются "легко", возвращаюсь к своему модему AnyDATA ADU-510A.
Изображение

Он стартует как ZeroCD диск 05c6:1000, а потом с помощью usb_modeswitch перегружается как устройство 16d5:6502 :

Код: Выделить всё

bash-4.2$ dmesg 
...
[30943.930077] usb 3-1: new full-speed USB device number 2 using uhci_hcd
[30944.082114] usb 3-1: New USB device found, idVendor=05c6, idProduct=1000
...
[30946.000118] usb 3-1: USB disconnect, device number 2
[30947.320082] usb 3-1: new full-speed USB device number 3 using uhci_hcd
[30947.467139] usb 3-1: New USB device found, idVendor=16d5, idProduct=6502
Файл /etc/usb_modeswitch.d/05c6:1000:uMa=AnyDATA :

Код: Выделить всё

[root@notebook usb_modeswitch.d]# cat 05c6:1000:uMa=AnyDATA
# AnyDATA devices, Bless UC165
TargetVendor=   0x16d5
TargetProduct=  0x6502
MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
Если глянуть файл usb.ids, предписывающий VID:PID всем USB устройствам, то при переключении от ZeroCD к модему меняется даже производитель:

Код: Выделить всё

05c6  Qualcomm, Inc.
...
16d5  AnyDATA Corporation
        6202  CDMA/UMTS/GPRS modem
        6501  CDMA 2000 1xRTT/EV-DO Modem
        6502  CDMA/UMTS/GPRS modem
Единственно непонятной позицией остаётся: как производитель формирует строку, записываюмую, обычно, по end-point=1 USB-устройства:

Код: Выделить всё

MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
И для некоторых моделей меняется ещё и end-point (откуда?) :

Код: Выделить всё

MessageEndPoint = "0x01"
Для показанного модема вот эта end-point конфигурирования #1 (предполагаю что так):

Код: Выделить всё

[root@notebook usb_modeswitch.d]# lsusb -d 16d5:6502 -v
Bus 003 Device 003: ID 16d5:6502 AnyDATA Corporation CDMA/UMTS/GPRS modem
...
  idVendor           0x16d5 AnyDATA Corporation
  idProduct          0x6502 CDMA/UMTS/GPRS modem
...
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0010  1x 16 bytes
        bInterval             128
...
P.S. Вот вам на всякий случай полный листинг event-ов для udev при подключении этого модема - это исчерпывающая информация для анализа и понимания.

Re: Установка и настройка USB-модемов

Добавлено: 29 дек 2012, 03:00
dmitriev
Чтобы CD eject, его сперва нужно umount!

Re: Установка и настройка USB-модемов

Добавлено: 29 дек 2012, 03:04
Olej
dmitriev писал(а):Чтобы CD eject, его сперва нужно umount!
Я пока процитировал то, что прочитал.
Но если ZeroCD (т.е. то первичное USB-устройство) можно снять таким простым способом (рекомендовали для одного типа, но может и для всех?), то это - общее решение отключения ZeroCD.

Re: Установка и настройка USB-модемов

Добавлено: 29 дек 2012, 03:20
dmitriev
Очевидное решение - отмонтировать мешающий виртуальный сидюк я разумеется пробовал когда впервые столкнулся с проблемой, еще до написания той статьи.

Re: Установка и настройка USB-модемов

Добавлено: 29 дек 2012, 03:24
Olej
dmitriev писал(а):Очевидное решение - отмонтировать мешающий виртуальный сидюк я разумеется пробовал когда впервые столкнулся с проблемой, еще до написания той статьи.
Если это работает, то это окажется универсальным решением для всех типов USB-модемов!

Re: Установка и настройка USB-модемов

Добавлено: 29 дек 2012, 03:25
dmitriev
Увы! Это не работает. Было бы слишком просто, чтобы никто не допер.

Re: Установка и настройка USB-модемов

Добавлено: 29 дек 2012, 03:33
Olej
dmitriev писал(а):Увы! Это не работает. Было бы слишком просто, чтобы никто не допер.
Но вот здесь вот НАИБОЛЕЕ ПОДРОБНОЕ РУКОВОДСТВО: настройка и использование модема ZTE MF 192 автор пишет? И я не думаю, что он обманывает.

Для проверки такой возможности нужно всего лишь взять модем, который автоматически не подхватывается usb_modeswitch, т.е. из тех, которые как-раз "не устанавливаются". Я в этой теме (на предыдущих страницах) испытывал аж 2 ;-) таких образца, с которыми не смог совладать. Нужно только вспомнить у кого и какой модем я брал :lol:
dmitriev писал(а):Увы! Это не работает. Было бы слишком просто, чтобы никто не допер.
Может и не работать.
Но уж больно заманчиво чтобы не проверить (тщательно!). ;-)

Re: Установка и настройка USB-модемов

Добавлено: 29 дек 2012, 03:38
dmitriev
Для проверки такой возможности нужно всего лишь взять модем, который автоматически не подхватывается usb_modeswitch
...и старинное ядро, не имеющее поддержки всех существующих модемов!

Re: Установка и настройка USB-модемов

Добавлено: 29 дек 2012, 03:45
Olej
dmitriev писал(а):
Для проверки такой возможности нужно всего лишь взять модем, который автоматически не подхватывается usb_modeswitch
...и старинное ядро, не имеющее поддержки всех существующих модемов!
Это 2 очень разные вещи:
1. как многофункциональное USB-устройство (CD+модем) перевести в требуемый режим;
2. как обеспечить поддержку устройства, VID:PID которого не поддерживается модулем ядра той версии, которая используется в дистрибутиве.

Как-раз 2-я вещь мне совершенно понятна, я смогу обеспечить поддержку устройства при любом ядре, и могу этому научить любого, по пунктам и по шагам.
Мне как-раз гораздо менее понятен п.1, его нужно преодолеть.