Модем Solomon S3GM-690

Материал из Lblss.ru
Перейти к: навигация, поиск

Содержание

Приобретение

После окончательной и бесповоротной поломки моего E220 встал вопрос о приобретении нового девайса. Как оказалось, выбор не залоченных под опсоса устройств в Самаре оказался весьма скудным. По крайней мере, в середине мая 2010 года удалось найти всего пару моделей, среди которых оказался Solomon S3GM-690. Несмотря на несколько пессимистичный отзыв на Яндекс-маркете, девайс был приобретён в магазине ДНС в ТЦ "Фрегат" за не слишком скромную сумму в 2850 рублей со странноватой гарантией в 6 месяцев.

Да, на сайте производителя этой модели найти не удалось.

Кмплект поставки

Ни одной буквы на русском не оказалось ни снаружи упаковочной коробки, ни внутри, включая скудную мануалку на двух сторонах листочка формата A5. Более того, однозначно идентифицировать модель устройства (а коробка а мануалке упоминают ещё и модель S3GM-646) удалось только сдвинув крышку, предоставляющую доступ для установки SIM и флеш карт. Ага, о возможности использования MicroSD карт предупреждает только не слишком заметная надпись на коробке. Где то на просторах инета попадалась инфа о поддержке карт до 16ГБ (не достоверно).

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

На виртуальном CDROM обнаружилось ПО под Windows (софтинка на аглицком, при установке требуется ребутнуть комп) и Mac OS X (не юзал). Под Linux, ясен пень, ничего.

Индикация

Имеется один многоцветный индикатор. В прилагаемой бумажной мануалке о нём ничего (и ещё много о чём) не сказано, а в общем всё почти просто:

  • Красный мигающий - поиск сети
  • Розовый мигающий - найдена сеть 2G
  • Розовый горит - установлено соединение 2G
  • Зелёный мигающий - найдена сеть 3G
  • Зелёный горит - установлено соединение 3G
  • Синий горит - установлено соединение 3G

Вот не совсем понятно различие между синим и зелёным. Опишу как есть. Когда "Мегафон" предоставляет доступ без ограничения скорости или с ограничением скорости 64кб/с - индикатор зелёный. При ограничении скорости до 32кб/с - индикатор синий. А уж как это будет "по научному", не знаю.

Использование модема в ALT Linux

Имеем ALT Linux 5.1 с ядром 2.6.32-std-pae-alt11 (из сизифа), остальное обновлено до бранча по состоянию на середину мая 2010 года. При включении девайс определяется как виртуальный CDROM, но не как модем. Глядим в /var/log/messages и видим ID производителя продукта:

New USB device found, idVendor=1c9e, idProduct=f000

Никаких упоминаний об ttyUSB нет. В ходе экспериментов было опробовано несколько способов переключения в режим модема. Все они требуют использования usb_modeswitch.

Переключение в режим модема

На момент написания этой статьи (май 2010) было актуально. В сизифе есть более новая версия usb_modeswitch с необходимыми изменениями, так что этот материал скорее носит справочный характер.

Ручками

Используется usb_modeswitch из бранча (или из 5.1 - он одинаковый), версии 1.0.2-alt1.

Способ 1

Выполняем команду

$ sudo /usr/sbin/usb_modeswitch -v 0x1c9e -p 0xf000 -M 55534243123456788000000080000606f50402527000000000000000000000 -m 01
[немного поскипано]
 Found default devices (1)
Accessing device 019 on bus 005 ...
Using endpoints 0x01 (out) and 0x81 (in)
Inquiring device details; driver will be detached ...
Looking for active driver ...
 OK, driver found ("dummy")
 OK, driver "dummy" detached
Received inquiry data (detailed identification)
-------------------------
  Vendor String: USBModem
 Product String: Disk
Revision String: 2.31
-------------------------
Device description data (identification)
-------------------------
Manufacturer: USB Modem
     Product: USB Modem
  Serial No.: 351274002003339
-------------------------
Setting up communication with interface 0 ...
Trying to send the message to endpoint 0x01 ...
 OK, message successfully sent
Способ 2

В общем то, то же самое. Но для упрощения команды переключения добавляем в конфиг /etc/usb_modeswitch.conf такую секцию (остальное нужно оставить закомментированым или удалить)

# Solomon S3GM-690 HSPA USB Modem. Use /dev/ttyUSB2 for connecting.
DefaultVendor=  0x1c9e
DefaultProduct= 0xf000
TargetVendor=   0x1c9e
TargetProduct=  0x9603
MessageEndpoint=0x01
MessageContent="55534243123456788000000080000606f50402527000000000000000000000"

Теперь можно просто сказать:

$ sudo /usr/sbin/usb_modeswitch

Вывод будет аналогичным предыдущему способу. После этого через некоторое время (10...20 секунд) появляются устройства /dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2.

  • Странность: однажды появились устройства с 1 по 3 - почему то не с нулевого, хотя, оно было не занято. В другой раз появились устройства 0, 1 и 3. Предполагаю, проблема этого бардака кроется в занятости или блокировке устройства от предыдущего использования, хотя, вроде бы не с чего. После перезагрузки компа или простого перетыкания модема всё встаёт на свои места. Проверить наличие устройств довольно просто:
$ ls /dev/ttyU*
/dev/ttyUSB0  /dev/ttyUSB1  /dev/ttyUSB2

Из этих трёх устройств непосредственно модемом является /dev/ttyUSB2. Туда можно отсылать AT-команды, список которых поместил на отдельную странику. Но при подключенном инете этого почему то (блокировка?) сделать не удаётся, хотя, при отключенном нет проблем.

Автоматически

Однако, ручками не хочется :-) Попытки прикрутить правило к udev ничего хорошего не принесли - эта хрень (usb_modeswitch из бранча) стала вываливаться с ошибкой:

usbfs: process 11496 (usb_modeswitch) did not claim interface 0 before use

Просто обновил usb_modeswitch до версии 1.1.0-alt1 из сизифа (ага, при этом ручками исправленный конфиг благополучно отправился в /dev/null), где всё что нужно уже есть. В результате получаем нужные устройства /dev/ttyUSB* без лишних телодвижений сразу после подключения модема. Оказалось, что в новой версии пакета необходимые правила уже внесены в конфиг. Да и сам конфиг из громоздкого файла распался на кучку мелких с понятными названиями в виде ID вендора и продукта. Полагаю, в следующем релизе ALT Linux уже не придётся ничего доустанавливать и модем будет правильно определяться при установке OS "из коробки".

Эх... Как бы ещё научить чтоб при загрузке компьютера усё это само срабатывало? Без перетыкания модема в USB-порту. Видимо, к моменту начальной работы udev модем ещё не готов к приёму команды переключения. UPD: А всё просто, проблема исчезла осенью, после обновления ядра из Сизифа.

Как подключить инет

Собственно, мое существующее автоматическое подключение осталось прежним, только подправил строчку с именем устройства /dev/ttyUSB2. Однако, при загрузке компа пока (май 2010) не стартует (причину см выше). UPD: с осени 2010 этой проблемы нет.

Ручками через wvdial

Конфиги

Кучка конфигов для wvdial и pppd:

$ cat /etc/ppp/options
noipdefault
noauth
crtscts
replacedefaultroute
nopredictor1
mtu 576
mru 576
#EOF

$ cat /etc/ppp/peers/wvdial
noauth
name wvdial
#EOF

$ sudo cat /etc/wvdial.conf
[Dialer Defaults]
Phone = *99***1#
Username = *
Password = *
New PPPD = yes

[Dialer megafon]
Init1 = ATZ
Init2 = ATE1
Init3 = AT+CGDCONT=1,"IP","internet","",0,0
Modem Type = USB Modem
Modem = /dev/ttyUSB2
Baud = 921600
Stupid Mode = 1
Dial Command = ATD
#EOF

Коннект и дисконнект

Для подключения:

$ sudo wvdial megafon &

Отключение:

$ sudo killall wvdial

Инфа о ходе подключения/отключения вываливается в консоль. Конечно, при подключении не обязательно уводить процесс в бекграунд. Тогда отключиться можно просто по Ctrl+C. Но так консоль будет занята, да и инет отключится если консоль закрыть принудительно.

При помощи kppp

А вот тут постиг облом. По крайней мере, с версиями kppp и pppd из бранча по состоянию на май 2010. После не тестировал за ненадобностью. Вроде и параметры все правильно выставил - не коннектится.

Персональные инструменты