> Внимание!

Новые темы необходимо создавать только в корневом разделе! В дальнейшем они будут обработаны модераторами.



Подключение "неподдерживаемых" модемов к устройствам с ОС Android | Huawei, ZTE, МТС, Мегафон и т.д.



Реп: (84)
Подключение "неподдерживаемых" модемов к устройствам с ОС Android

Пока ещё окончательно всё не забыто, хочу поделиться усвоенной информацией на тему подключения практически любых USB 3G-модемов и некоторых сотовых телефонов в режиме модема к устройствам с системой Android (планшетам, электронным книгам, навигаторам и т.д.) в спецификации имеющие возможность подключения ограниченного числа подобных модемов. На форуме разбросано немало публикаций касающихся этой темы. Но большинство из них решают проблемы только отдельно взятых устройств без подробностей. Что не даёт возможности разобраться с другими устройствами.

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


Исправленная и дополненная инструкция находится по этой ссылке.
Здесь исправлю позже. Пока времени не хватает с BB Code возиться.

Сначала необходимо выделить некоторые моменты по отношению к модему:
1) Далеко не всегда нужно принудительно переводить модем в режим "Только модем" (отключать ZeroCD). Как это "строго-настрого" советуют в большинстве публикаций. И при этом терять в модеме автозагрузку в Windows. А иногда и функцию чтения карт памяти.
2) Рекомендуется проверить работу модема на обычном компьютере с данной SIM-картой и отключить запрос PIN-кода.
3) Следует понимать, что показывает индикатор на вашем модеме.
Примечание: На ZTE обычно: горит красным - модем включен, в сети не зарегистрирован; горит зеленым или синим - модем зарегистрирован в сети оператора мобильной связи; индикатор мигает - модем подключен к сети Интернет.
На Huawei наоборот: мигает - зарегистрирован в сети оператора; просто горит - подключен к сети Интернет. Но могут быть варианты.

4) Все нижеследующие действия выполняются, если при подключении к устройству модем автоматически регистрируется в сети оператора сотовой связи.

По отношению к Android устройству:
1) Необходимо установить эмулятор терминала. Например, Better Terminal Emulator Magic или Android Terminal Emulator.
2) На Android устройстве должны быть получены права пользователя Root. Например, с помощью программы Unlock Root
Примечание: Если после ввода в эмуляторе терминала команды su символ "$" в строке сменился на "#", то права Root уже получены.
3) Для работы с системными файлами нужен файловый менеджер для Root пользователя. Например, Root Explorer или ES File Explorer (в разделе настроек "Root-права" включить Root-эксплорер, доступ к корневой и системным папкам).
4) Список команд, которые можно выполнить в вашем устройстве, можно посмотреть, набрав в терминале: ls /system/bin, ls /system/xbin и ls /sbin. Если в этих списках нет программы busybox, возможно, вам понадобится её установить.
Примечание: Также проверить наличие программы BusyBox, можно введя в эмуляторе терминала команду busybox. Должна появиться краткая справка к этой программе.

По отношению ко всему остальному:
1) Так как Android является Unix-системой, при редактировании файлов на компьютере с ОС Windows необходимо использовать "правильный" текстовый редактор, способный использовать символ перевода строки LF (0Ah). Например, AkelPad или Notepad++. Блокнот не подходит.
2) Сохраняйте копии оригиналов всех файлов, которые будете редактировать!
3) Возможно, при замене или добавлении файлов в Android понадобится изменить права доступа к ним командой "chmod". Например: chmod 777 /etc/3g_dongle.cfg. Или через меню файлового менеджера открыв свойства файла.
4) Ну и как принято говорить: "Всё, что вы делаете, вы делаете на свой страх и риск!"

Примеры приведены при подключении модема ZTE MF100 от Билайн с SIM-картой МТС к электронной книге Wexler.Book T7008 с версией ОС Android 4.0.3 (ICS). >>

Первичное подключение:

1) В Android-устройстве в Настройках отключаем Wi-Fi, включаем "Беспроводные сети (Ещё...) - Мобильная сеть - Передача данных" (Беспроводные сети - WCDMA).
2) Подключаем модем к устройству.

Симптомы.
Определяются после регистрации модема в сети оператора мобильной связи (показывает индикатор на модеме):

а) В Настройках устройства в разделе "Система" пункт "О планшетном ПК - Общая информация" отображается информация о сети и видно, что производится попытка подключения. Но доступ к сети Интернет не появляется.
Лечение:
1) В Настройках пункт "Беспроводные сети (Ещё...) - Мобильная сеть - Точки доступа (APN)". Или выбираем готовую запись, взятую системой из файла /system/etc/apns-conf.xml по идентификаторам MCC/MNC сети оператора, или создаём и сохраняем новую. (Для сохранения настроек в Android 4 нужно нажимать кнопку "Назад" в левом нижнем углу экрана!)
2) Вероятно, системой используется для подключения не тот порт. (При этом часто после неудачной попытки подключения информация о сети пропадает, индикатор на модеме становится красным. Через некоторое время процесс повторяется.) В эмуляторе терминала введите команду su, затем logcat и исследуйте журнал. Ищем строки содержащие pppd и ttyUSB (или ttyACM). Нужный порт определяем в разделе "Определение файлов устройств (порта) в Android через который работает модем". Если значения отличаются, смотрим раздел "Добавление записи в файл 3g_dongle.cfg". Если такого файла в системе нет, можно изменить значение ttyUSB (ttyACM, ttyS...) в файлах запуска pppd (например: /system/etc/init.gprs-pppd, файлы в /system/etc/ppp, /system/etc/ppp/peers или др.).
3) Для поиска причины необходимо исследовать лог "radio". В эмуляторе терминала с правами Root (сначала введя su) введите команду: logcat -b radio.

в) В Настройках устройства в разделе "Система" пункт "О планшетном ПК - Общая информация" информация о сети не отображается.
Лечение:
1) Вероятно, системой USB-устройство не определяется как модем, не создаются файлы устройств /dev/ttyUSB* или /dev/ttyACM*. Смотрите раздел "Переключение режима модема. Отключение автозагрузки, ZeroCD" и "Особенности подключения отдельных устройств" пункт б).
2) Возможно, в системе нет нужных модулей ядра. Например, при подключении вашего модема или телефона в Unix-системах создаются файлы устройств ttyACM. Тогда для подключения в Android должен существовать и загружаться при запуске командой insmod модуль cdc-acm.ko.

Разделы:
1. Определение файлов устройств (порта) в Android через который работает модем
а) Определение списка файлов устройств модема;

При подключении модема создаются файлы устройств ttyUSB или ttyACM. В эмуляторе терминала набираем команду: ls /dev/ttyUSB* (или ls /dev/ttyACM*). Получаем список:
app_46@android:/ $ export PATH=/data/local/bin:$PATH:.
app_46@android:/ $ ls /dev/ttyUSB*
/dev/ttyUSB0
/dev/ttyUSB1
/dev/ttyUSB2
app_46@android:/ $

Если таких файлов устройств в системе не обнаружено, посмотрите выше решение при симптоме б).

Примечание: К шине USB кроме модема могут быть подключены другие устройства. Тогда вводим команду до подключения модема и после. Определяем, какие файлы устройств (порты) появились.
В зависимости от того, когда подключается модем, до включения устройства или после. Или произошёл какой-то сбой в работе. Номера портов могут изменяться.


б) Из полученного списка в пункте а) нужно выделить порты через которые отправляются в модем AT-команды и происходит соединение с сетью.

1) Для каждого порта в терминале отправляем команду "AT" (смотрите раздел "Отправка в модем AT-команд" пункт а)). Если на экране появился ответ "ОК", запоминаем номер этого порта. И при необходимости выполняем следующий пункт. Иначе, переподключаем модем и отправляем AT-команду в следующий порт.

2) Необходимый для соединения (PPP) порт можно точно определить, производя попытки подключения. Для этого после отправки команды "AT" и получения ответа "OK" для GSM, 3G модемов вводим в терминале:

echo "ATDT*99#" > /dev/ttyUSB0

Примечание: Если ранее, используя этот модем, с этой SIM-картой, вы НЕ подключались к Интернету на компьютере, первой нужно ввести в терминале команду: echo "AT+CGDCONT=1,\"IP\",\"internet.mts.ru\"" > /dev/ttyUSB0. Где internet.mts.ru - точка доступа вашего провайдера (Мегафон - internet, Билайн - internet.beeline.ru или home.beeline.ru). Вместо ttyUSB0 в командах - ваш проверяемый порт. У редких операторов номер дозвона *99# и команда ATDT у некоторых модемов могут отличаться. Для LTE-модемов используется команда ATDT#777.

Если на введенные выше команды модем ответил "ОК" и "CONNECT", это нужный для PPPD порт.

2. Отправка в модем AT-команд
а) В Android
1) Если ещё не известно, определите порт модема, в который будете отправлять AT-команды в разделе "Определение файлов устройств (порта) в Android через который работает модем".
2) Команды отправляются в эмуляторе терминала. Пример, отправить в порт модема ttyUSB0 команду "AT":

cat /dev/ttyUSB0 &
echo AT > /dev/ttyUSB0


Примечание: Команда "cat /dev/ttyUSB0 &" используется, чтобы увидеть на экране ответ модема. После использования её желательно или остановить комбинацией кнопок "Ctrl + C", или командой "killall cat" ("killall -9 cat", "busybox killall cat"), или командой "kill $PPID" (где $PPID - номер, который выводится в терминале справа от числа в квадратных скобках после запуска команды "cat...").
Вместо "
cat /dev/ttyUSB0 &" можно использовать "tr -s "" < /dev/ttyUSB0 &" (или "busybox tr -s "" < /dev/ttyUSB0 &").


После завершения работы с AT-командами необходимо перезагрузить устройство!
б) В Windows
1) Подключаем модем к компьютеру (ноутбуку).
2) Если программное обеспечение модема ещё не установлено, ждём окончания процесса автоматической установки.
3) Обязательно закрываем программу для работы с модемом (проверить в трее)!

Далее можно использовать любую Telnet-программу. Например Hyper Terminal имеющийся в Windows XP (Все программы - Стандартные - Связь). Для Windows Vista, Windows 7 нужно загрузить программу отдельно. Выполняем следующее:

4) Нажимаем на клавиатуре кнопки "Windows" + "Pause/Break" или другим способом открываем Панель управления, раздел "Система". Запускаем Диспетчер устройств. В разделе "Модемы" через контекстное меню или двойной клик мышкой открываем окно свойств вашего модема. На вкладке "Модем" смотрим номер порта COM.
Прикрепленное изображение

5) Запускаем Hyper Terminal. Название подключения вводим любое. Выбираем порт, определённый в предыдущем пункте. В окне свойств порта можно изменить такие параметры: Скорость - 115200; Управление потоком - Нет.

6) Вводим команду: AT. Ждём ответ: OK.
Примечание: Если вводимые символы не отображаются. Вслепую введите команду ATE1 и нажмите Enter. Или в меню "Файл" выбираем "Свойства" (или правая иконка на панели инструментов). В окне свойств на вкладке "Параметры" нажимаем кнопку "Параметры ASCII". В окне параметров ставим галочку "Отображать введенные символы на экране".
Прикрепленное изображение

7) Далее вводим нужные вам AT-команды, смотрим ответы.

3. Переключение режима модема. Отключение автозагрузки, ZeroCD
Примечание: Большинство USB 3G-модемов являются составными USB-устройствами. Помимо функции модема выполняют функцию устройства для чтения карт памяти. Кроме того испольуется технология ZeroCD, суть которой заключается в том, что при первом подключении к компьютеру новое USB-устройство подключает виртуальный CD-ROM (флэш-память), на котором находятся необходимые драйверы для Windows, но редко для других ОС. После установки драйвер переключает USB-устройство в режим модема.

Проверить в каком режиме находится модем, можно после подключения модема к устройству и определения его системой. В эмуляторе терминала с правами Root (сначала введите su) введите команду: dmesg. И внизу списка ищите подобные строки (для 3G-модемов содержащие "GSM modem"):
<6>[ 71.366413] option 2-1:1.0: GSM modem (1-port) converter detected
<6>[ 71.379932] usb 2-1: GSM modem (1-port) converter now attached to ttyUSB0
<6>[ 71.394260] option 2-1:1.1: GSM modem (1-port) converter detected
<6>[ 71.402965] usb 2-1: GSM modem (1-port) converter now attached to ttyUSB1
<6>[ 71.413425] option 2-1:1.3: GSM modem (1-port) converter detected
<6>[ 71.422902] usb 2-1: GSM modem (1-port) converter now attached to ttyUSB2

Если строки найдены, модем в нужном режиме и ничего переключать не нужно. Иначе, идем дальше.

а) Автоматическое переключение;
Раньше UNIX-системы не могли работать с такими устройствами. Но, спасибо Josua Dietze и программе usb_modeswitch, это больше не является проблемой.

1) Чтобы проверить имеется ли эта программа в системе вашего устройства, наберите в эмуляторе терминала команду: usb_modeswitch. Если появилась краткая справка к этой программе - всё отлично. Если нет, можете установить usb_modeswitch по рекомендациям на сайте программы. Или обращаемся к пункту "Принудительное переключение".

2) Проследить работу usb_modeswitch, переключение режимов модема, можно с помощью программы /system/bin/u3gmonitor. В терминале введите команду: u3gmonitor. И после этого подключите модем к устройству. В случае успешного переключения режима модема, появляются подобные строки:
app_52@android:/ $ export PATH=/data/local/bin:$PATH
app_52@android:/ $ u3gmonitor

Reading config file: /system/etc/usb_modeswitch.d/19d2_2000

* usb_modeswitch: handle USB devices with multiple modes
* Version 1.2.0 © Josua Dietze 2011
* Based on libusb0 (0.1.12 and above)

! PLEASE REPORT NEW CONFIGURATIONS !

DefaultVendor= 0x19d2
DefaultProduct= 0x2000
TargetVendor= 0x19d2
TargetProduct= not set
TargetClass= not set
TargetProductList="0001,0002,0015,0016,0017,0031,0037,0052,0055,0063,0064,0066,0091,0108,0117,
0128,2002"

DetachStorageOnly=0
HuaweiMode=0
SierraMode=0
SonyMode=0
QisdaMode=0
GCTMode=0
KobilMode=0
SequansMode=0
MobileActionMode=0
CiscoMode=0
MessageEndpoint= not set
MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
MessageContent3="55534243123456702000000080000c85010101180101010101000000000000"
NeedResponse=1
ResponseEndpoint= not set

InquireDevice disabled
Success check enabled, max. wait time 20 seconds
System integration mode disabled


usb_set_debug: Setting debugging level to 15 (on)
usb_os_find_busses: Found 005
usb_os_find_busses: Found 004
usb_os_find_busses: Found 003
usb_os_find_busses: Found 002
usb_os_find_busses: Found 001
usb_os_find_devices: Couldn't open /dev/bus/usb/005/001
usb_os_find_devices: Couldn't open /dev/bus/usb/004/002
usb_os_find_devices: Couldn't open /dev/bus/usb/004/001
usb_os_find_devices: Couldn't open /dev/bus/usb/003/001
usb_os_find_devices: Couldn't open /dev/bus/usb/002/002
usb_os_find_devices: Couldn't open /dev/bus/usb/002/001
usb_os_find_devices: Couldn't open /dev/bus/usb/001/001
Looking for target devices ...
No devices in target mode or class found
Looking for default devices ...
No devices in default mode found. Nothing to do. Bye.

/system/etc/usb_modeswitch.d/19d2_0031 does not exist.

В этом примере видно, что при переключении режима модем изменил свои идентификаторы VID_PID с 19d2_2000 на 19d2_0031.

Но так как при проверке ранее не отобразились строки с "GSM modem", вероятнее всего необходимый для переключения файл конфигурации отсутствует. И у вас отобразится всего одна строка. Например:
app_52@android:/ $ export PATH=/data/local/bin:$PATH
app_52@android:/ $ u3gmonitor
/system/etc/usb_modeswitch.d/19d2_2000 does not exist.

19d2_2000 - это идентификаторы производителя VID = 19d2 и продукта PID = 2000 модема в режиме виртуального CD-ROM или флэш-памяти.

3) Если в системе отсутствует программа u3gmonitor, определяем идентификаторы VID и PID в терминале командой lsusb (или busybox lsusb). Выполнив её до подключения модема и после.
app_52@android:/ $ export PATH=/data/local/bin:$PATH
app_52@android:/ $ busybox lsusb
Bus 001 Device 001: ID 1d6b:0001
Bus 002 Device 001: ID 1d6b:0002
Bus 003 Device 001: ID 1d6b:0001
Bus 004 Device 001: ID 1d6b:0002
Bus 005 Device 001: ID 1d6b:0001
Bus 004 Device 002: ID 0bda:8176
app_52@android:/ $ busybox lsusb
Bus 001 Device 001: ID 1d6b:0001
Bus 002 Device 001: ID 1d6b:0002
Bus 003 Device 001: ID 1d6b:0001
Bus 004 Device 001: ID 1d6b:0002
Bus 005 Device 001: ID 1d6b:0001
Bus 004 Device 002: ID 0bda:8176
Bus 002 Device 003: ID 19d2:2000
app_52@android:/ $

Появилось устройство "Bus 002 Device 003: ID 19d2:2000". Это и есть модем в данном случае находящийся в режиме виртуального CD-ROM. 19d2:2000 - соответственно VID и PID модема.

Примечание: При отсутствии в системе программы u3gmonitor, проследить работу usb_modeswitch можно посмотрев журнал. Введите с правами Root в эмуляторе терминала команду logcat.

4) Теперь необходимо узнать идентификаторы модема после переключения из режима "Виртуальный CD-ROM" в режим "Модем". Это можно сделать на "большом" компьютере (ноутбуке) с установленными драйверами необходимыми для работы данного модема.

В ОС Windows. Нажимаем на клавиатуре кнопки "Windows" + "Pause/Break" или другим способом открываем Панель управления, раздел "Система". Запускаем Диспетчер устройств. В разделе "Модемы" через контекстное меню или двойной клик мышкой открываем окно свойств вашего модема. На вкладке "Сведения" в выпадающем списке выбираем свойство "ИД оборудования". И смотрим необходимые идентификаторы VID и PID.
Прикрепленное изображение

5) Далее необходимо создать файл конфигурации с именем 19d2_2000 (у вас имя будет другое, соответствует идентификатору модема в режиме виртуального CD-ROM или флэш-памяти). Но, лучше скопировать похожий файл из /system/etc/usb_modeswitch.d (или /etc/usb_modeswitch.d), переименовать и изменить содержимое "правильным" текстовым редактором.
Примечание: В некоторых устройствах данный файл находится в каталоге /etc/ppp/setup/ и имеет имя подобное E3131.setup. Где "E3131" - название вашего модема (Huawei E3131). Или же может использоваться файл конфигурации /etc/usb_modeswitch.conf.

Файл конфигурации имеет такое содержание (возможны варианты, подробности о параметрах здесь):
########################################################
# ZTE MF100 (Beeline RU)

DefaultVendor= 0x19d2
DefaultProduct=0x2000

TargetVendor= 0x19d2
TargetProduct= 0x0031

MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"

NeedResponse=1

CheckSuccess=20

Значения DefaultVendor и DefaultProduct изменяем в соответствии с VID и PID модема в режиме виртуального CD-ROM полученными в пунктах 2) или 3). Значения TargetVendor и TargetProduct изменяем в соответствии с VID и PID модема полученными в пункте 4). Определить MessageContent - шестнадцатеричный код команды, которой переключается режим модема (обычно это команда "извлечь диск") достаточно сложно. Поэтому ищем в этом файле или других источниках конфигурацию с такими же значениями Default/Target Vendor/Product. Или подбираем от аналогичных модемов.

6) Помещаем созданный файл в директорию /etc/usb_modeswitch.d (/system/etc/usb_modeswitch.d) или /etc/ppp/setup в зависимости от вашего устройства.
б) Принудительное переключение;
1) Переключить режим модема можно отправив в порт модема соответствующую AT-команду. Нужную для вашей модели модема команду узнайте у производителя. Примеры:
Модемы | В "Только модем" | В обычный режим
-------------------|--------------------------|----------------------------------
HUAWEI | AT^U2DIAG=0 | AT^U2DIAG=255 (268 для E1750)
-------------------|--------------------------|----------------------------------
HUAWEI E367, E392, | AT^SETPORT="A1,A2;1,2,3" | AT^SETPORT="A1,A2;1,2,3,7,A1,A2"
E352, E353, E171 | | AT^SETPORT="A1,A2;1,16,3,2,A1,A2"
-------------------|--------------------------|----------------------------------
ZTE | AT+ZCDRUN=8 | AT+ZCDRUN=9
-------------------|--------------------------|----------------------------------
ZTE MF192, MF652 | AT%USBMODEM=0 | AT%USBMODEM=1
(процессор ICERA) | |

Примечание: Команда AT+ZCDRUN=8 в модемах ZTE удаляет флаг AUTORUN.FLG (или CD_STARTUP_FLAG) в файловой системе модема. Это же можно сделать в Windows программой QPST с EFSExplorer. Или с помощью плагина EFS (Embedded file system) для Total Commander.

Если в системе Android USB-устройство не определяется как модем. То и не создаются соответствующие файлы устройств, и АТ-команду отправить невозможно. Поэтому режим переключаем на "большом" компьютере.

Для Windows cмотрите раздел "Отправка в модем AT-команд" пункт б). Вводим соответствующую вашему модему AT-команду для переключения в режим "Только модем".
Прикрепленное изображение

2) Для переключения режима модема можно использовать готовые приложения. Например, программу 3G Modem Mode Switcher (ссылка 1, ссылка 2).
Подключите модем к компьютеру. Если программное обеспечение модема ещё не установлено, ждём окончания процесса автоматической установки. Обязательно закройте программу для работы с модемом. Запустите 3gsw.exe. Нажмите кнопку требуемого режима ("Только модем"). Удачи!

4. Добавление записи в файл 3g_dongle.cfg
Файл 3g_dongle.cfg используется модулями слоя RIL (Radio Interface Layer) системы. С помощью него можно указать, через какие порты будет происходить взаимодействие с вашей моделью модема, устанавливаться соединение, какой номер дозвона использовать. Если в вашей системе этого файла нет, добавлять его самостоятельно нет никакого смысла.

а) Запись добавляемая в конец файла /etc/3g_dongle.cfg (/system/etc/3g_dongle.cfg) имеет такую структуру:
[MF100]
dongle_name=MF100
production_name=MF100
vendor_name=zte
network_type=GSM_MODE
pid_vid_origin=0x19d22000
bcdDevice_origin=0x0
pid_vid_now=0x19d20031
bcdDevice_now=0x0
at_port=1
ppp_port=2

Определим значения параметров. Значения не должны содержать символы пробела, табуляции, комментария (#).

1) Значение параметра production_name узнаем, отправив в модем AT-команду: AT+CGMM. Как это сделать смотрим в разделе "Отправка в модем AT-команд";
2) Заголовок в квадратных скобках и параметр dongle_name можно заполнить тем же значением, что и production_name;
3) Значение vendor_name - название производителя модема одним словом (huawei, zte, ASB, ation...);
4) Значение network_type для сотовой сети GSM и 3G заполняем GSM_MODE. Другие возможные параметры: CDMA_MODE, TD_MODE;
5) pid_vid_now соответствует написанным слитно: приставка "0x", значение VID, затем PID модема в режиме "Только модем". (Смотрите раздел "Переключение режима модема. Отключение автозагрузки, ZeroCD");
6) pid_vid_origin - аналогично предыдущему пункту, но в обычном режиме модема (можно заполнить тем же значением, что и pid_vid_now или "0x0");
7) Значения bcdDevice_origin и bcdDevice_now можно заполнить просто "0x0";
Примечание: bcdDevice соответствуют значениям версии USB модема. Для USB 2.0 bcdDevice - 0x0200, для USB 1.1 - 0x0110.
8) Значения номеров портов at_port и ppp_port определяем в разделе "Определение файлов устройств (порта) в Android через который работает модем". Возможно, экспериментально подбираем, какой из номеров портов, отозвавшийся на AT-команду, соответствует at_port, какой ppp_port. Перезагрузив устройство, делать попытки подключения к сети Интернет.
Примечание: В модеме ZTE MF100 только один порт ttyUSB2 дал ответ на отправленную AT-команду. Он соответствует значению ppp_port=2. Значение at_port подбирал экспериментально из оставшихся номеров портов 0 и 1 (файлов устройств ttyUSB0 и ttyUSB1).
Если в разделе "Подключение к сети Интернет сторонними средствами" удалось установить соединение, то значение ppp_port соответствует номеру интерфейса ttyUSB в файле conf-pppd.


б) Проверьте в файле 3g_dongle.cfg раздел [DIAL_NUMBER]. Для GSM, 3G модемов должна быть строка: wcdma=ATDT*99#. Для некоторых операторов сотовой связи иногда требуется "wcdma=ATDT*99***1" или другой номер дозвона.

После изменения файла 3g_dongle.cfg нужно перезагрузить ваше устройство!

5. Подключение к сети Интернет сторонними средствами
Если не удаётся подключиться к Интернету стандартными средствами вашего устройства, можно попробовать установить соединение, например с помощью программы Josua Dietze PPP Widget. Или создать собственные скрипты для подключения на примере описанном ниже.
Сразу стоит заметить, что в стандартных средствах взаимодействие с модемом происходит через слой RIL (Radio Interface Layer): демон rild, библиотеки libril.so, lib<companyname>-ril.so. Где <companyname> - название производителя планшета. Или libreference-ril.so. А при подключении сторонними средствами RIL не используется, поэтому программы Google Play Маркет, Skype и некоторые другие работать не будут.

Для установки соединения используем демон протокола PPP /system/bin/pppd и программу для взаимодействия с модемом /system/bin/chat. Создадим четыре файла:

/etc/ppp/peers/conf-pppd
/etc/ppp/peers/conf-chat
/sdcard/gscript/inet-ON.sh
/sdcard/gscript/inet-OFF.sh

Все файлы в архиве.

а) Параметры демона pppd. Содержимое файла conf-pppd:
ttyUSB2
460800
defaultroute
noauth
noipdefault
user "mts"
password "mts"
connect "/system/bin/chat -f /etc/ppp/peers/conf-chat"

1) Параметр ttyUSB2 узнаём в разделе "Определение файлов устройств (порта) в Android через который работает модем". Возможно, придётся экспериментальным путём подобрать подходящий;
2) Параметры user "mts" и password "mts" соответствуют оператору сотовой связи МТС. Имя пользователя и пароль для доступа в Интернет согласно инструкции вашего оператора. Для Билайн user и password будет "beeline", для Мегафон - "gdata". Также строки с этими параметрами можно удалить вообще. Операторы сотовой связи и так без проблем "узнают" своих абонентов;
3) Поместите файл в каталог /etc/ppp/peers. При отсутствии папку peers нужно создать.

Примечание: Обычно этих параметров достаточно для установки стабильного соединения. При необходимости измените или дополните набор согласно руководству pppd(8).
Информацию о параметрах сценария, автоматизирующего взаимодействие с модемом chat можно посмотреть в руководстве chat(8).


б) Строки сценария chat. Содержимое файла conf-chat:
TIMEOUT 3
ABORT 'BUSY'
ABORT 'ERROR'
ABORT '+CME ERROR:'
TIMEOUT 3
'' 'AT'
OK 'ATZ'
OK 'AT+CGDCONT=1,"IP","internet.mts.ru"'
OK 'ATDT*99#'
CONNECT ''

Здесь "internet.mts.ru" соответствует оператору сотовой связи МТС. Для Мегафон просто "internet". Для Билайн - "internet.beeline.ru". Или для "Билайн Интернет Дома" - "home.beeline.ru". Для редких операторов и модемов номер дозвона "*99#" и команда "ATDT" могут отличаться.

в) Скрипт запуска соединения. Содержимое файла inet-ON.sh:
#!/system/bin/sh
pppd call conf-pppd
sleep 5
setprop net.dns1 8.8.8.8
setprop net.dns2 8.8.4.4

Примечание: Если при вызове pppd используется параметр usepeerdns, строки с "setprop net.dns..." не нужны.

Запускать подключение лучше, когда модем зарегистрирован в сети оператора мобильной связи. (Индикатор на модеме зеленый или синий)!

При желании, можно подойти к запуску соединения творчески и усложнить скрипт:
#!/system/bin/sh

echo "Waiting ttyUSB1"
for i in 1 2 3 4 5 6 7 8 9 10; do
if [ -c /dev/ttyUSB1 ]; then
echo "Starting pppd"
pppd call conf-pppd
echo "Connecting..."
for i in 1 2 3 4 5 6 7 8 9 10; do
if ifconfig ppp0 2>/dev/null; then
setprop net.dns1 8.8.8.8
setprop net.dns2 8.8.4.4
echo "DNS servers: 8.8.8.8, 8.8.4.4"
break 2
else
sleep 3
fi
done
break
else
sleep 3
fi
done

sleep 5
ping -c 2 google.com && exit 0 || exit 1

Здесь ttyUSB1 можно заменить на другой, стабильно создающийся системой. "ifconfig ppp0" можно заменить на "ip a s ppp0". Строку с "ping" можно убрать.

г) Скрипт разрыва соединения. Содержимое файла inet-OFF.sh:
#!/system/bin/sh

busybox killall pppd

Здесь команда зависит от программ имеющихся в вашей системе. Может быть просто "killall pppd" или "pkill pppd" и другие.
Примечание: А можно просто выдернуть модем из USB. )))

д) Для запуска скриптов подключения и отключения можно использовать программу GScript. Поместите файлы скриптов в папку /sdcard/gscript. Установите и запустите GScript. Добавьте скрипты в меню программы. При добавлении необходимо установить галочку "Needs SU?". При желании, в виджетах Android можно добавить ярлыки на рабочий стол для запуска скриптов.

6. Особенности подключения отдельных устройств
В разных системах для создания подключения обычно используются одни и те же приложения: usb_modeswitch, pppd, chat. Но разные скрипты, расположенные в разных местах.

а) Возможно, при подключении предусмотрено использование только файлов устройств /dev/ttyUSB. А для вашего модема создаются /dev/ttyACM (например ZTE MF192). Можно создать символьные ссылки. Добавить в начало скрипта запуска подключения подобные строки:

ln -s /dev/ttyACM0 /dev/ttyUSB0
ln -s /dev/ttyACM1 /dev/ttyUSB1


б) Иногда если не создаются файлы устройств /dev/ttyUSB, нужно ввести в эмуляторе терминала команды:

su
echo "19d2 2000" > /sys/bus/usb-serial/drivers/option1/new_id


Здесь 19d2 необходимо заменить на VID вашего модема, 2000 - на PID.

Эти команды нужно вводить после каждого включения (перезагрузки) устройства. Для автоматизации, можно, например, добавить эту строку в конец скрипта /system/bin/preinstall.sh. Или в другой, имеющийся в вашей системе и запускающийся при загрузке системы или подключении модема. Например: /system/etc/usb_modeswitch.sh. Как вариант, ищите в вашей системе папку "/system/etc/init.d/" и создавайте файл с подобным содержанием:

#!/system/bin/sh
echo "12d1 1506" > /sys/bus/usb-serial/drivers/option1/new_id


Где вместо "12d1 1506" ваши VID, PID.
А вот с каким именем этот файл сохранять, зависит от вашего устройства. Может быть "11modem" или другим.

в) Если скрипты у вас автоматически не переключают режим модема используя usb_modeswitch, используйте команды:

su
usb_modeswitch -W -I -c /etc/usb_modeswitch.d/19d2_2000


Где 19d2_2000 соответствующий вашему модему файл. Смотрите раздел "Переключение режима модема. Отключение автозагрузки, ZeroCD" пункт а).

Или командой:
su
usb_modeswitch –v 12d1 –p 14fe –V 12d1 –P 1506


Где параметры "-v" и "-V" определяют VID модема до и после переключения режима, "-p" и "-P" определяют PID.

Решённые проблемы подключения
Это копия моей публикации в блоге lexaleon.blogspot.com


Сообщение отредактировал Будь здоров! - 25.02.13, 12:38



Реп: (0)
Здравствуйте. Подключил модем Билайн zte-mf823D к планшету explay surfer 7.02 через Ethernet. Значек появляется и горит зеленым, пишет что connect. Но в браузере страницы не открваютя и приложения тоже. Подскажите кто сможет куда копать? Всем спасибо.



Реп: (-12)
Чувак рассказывает про то что можно подключить к планшету :https://www.youtube.com/watch?v=7fEAH6mQHa0



Реп: (2)
Модератеры, пардон. Не туда написал.
Удалите пост :blush:

Сообщение отредактировал AJLMA3uk - 03.09.15, 21:18



Реп: (0)
Планшет Ainol Novo 7 Crystal 2 не могу подключить Huawei e173 кто подскажет???



Реп: (19)
Так и не понял про подключение Йоты. Что делать если нет никакого Use Ethernet в настройках? Лампочка на модеме загорается, но у телефона никакой реакуции. Аппарат LG G2

Я подружил планшет со свистком yota программой Ethernet droid (нужен рут) . Станица статуса 10.0.0.1 .



Реп: (3)
power1975, а опишите процесс подробнее. Я что-то ни как не добьюсь подключения. Получил root с помощью Kingo Android Root. Дал права Ethernet droid. На свистке диод горит синим постоянно, а инет не подключает.
Также пробовал рррВиджет. Он вообще пишет, что нет рут-а, хотя в KingoSU он разрешен. Буду признателен за помощь.



Реп: (19)
Аипишники он мне раздал автоматом нажал в программе кнопку enable , загорелось зеленым и всё . На странице status.yota.ru появилась статистика , если на статистику не заходит по адресу, вбей в адресную строку 10.0.0.1 либо поменять в программе DNS на 10.0.0.1 .Также посмотрите какие IP он вобще раздал .



Реп: (3)
* power1974,Благодарю, но зеленая кнопка то не загорается. Про АйПи-шники я и сам знаю. Не могу добиться подключения. Что-то тут другое. Видимо не определяется он как модем и все тут.



Реп: (19)
Да в том то и дело что он в системе как виртуальная сетевуха должен быть а ни как модем. WIFI отключен?



Реп: (2)
Люди добрые можно подцепить модем от MTC huawei E171на планшет KREZ TL801W4 ?



Реп: (7)
Как подключить 4G модем к планшету на базе Андройд4,2?

Сообщение отредактировал nikitf28 - 26.09.15, 10:58



Реп: (3)
power1974 @ 22.09.2015, 22:03 *
Да в том то и дело что он в системе как виртуальная сетевуха должен быть а ни как модем. WIFI отключен?

Конечно же отключен.



Реп: (0)
Digma iDnD7
ОС и прошивка: Андроид4.0.4 ,СборкаALPS.ICS2.MP.V1.9 Здравствуйте. хочу подключить 3G модем ZTE MF180 к планшету . Сделал всё как описано в предыдущих темах по подключению . Поставил 3G в режим модема , получил root права, установил PPPwidget. появилась запись драйвера не найдены. Нашёл на форуме сайт с драйверами . но для моего устройства там не оказалось,какой ставить подскажите?



Реп: (2)
После некоторых плясок удалось подружить Huawei E3372h с HDMI-стиком iconBIT Toucan G4 (чипсет rk3188 / Android 4.4.2)

Прошился Hilink-прошивкой с режимом hostless-модема (HC)
E3372hUpdate_22.200.03.00.1134_M_HC_ADB_TLN_02 - брал отсюда.

В таком режиме модем не требует переключения композиции и сразу определяется как сетевая карта (CDC).
В моей сборке Android есть поддержка внешних сетевых карт (USB Ethernet), так что система всё подхватила сама. Если функционала для работы с ethernet нет, возможно понадобится использовать сторонние приложения (Ethernet / Ethernet Droid / ...).

P.S. Сначала пытался настроить модем со stick-прошивкой и PPP, следуя руководству в шапке темы: удалось вручную поднять PPP, завести подключение. Пинг шёл, но DNS не работал. Указание net.dns1, net.dns2, net.ppp0.dns1, net.ppp0.dns2 никак не помогло.

Благодарю * Brahner за наводку! ;-)

Сообщение отредактировал John_Gorely - 29.10.15, 01:14



Реп: (1)
ребят,все что в шапке написано и очень занимательно. правда!!!
но все я не могу немного разобраться. что написано я почти все понимаю и усвоил принцип но, фишка в следующем
у меня модем hyawei e1550 планшет prestigio pmp 3970b все прекрасно работало. модем подключался и сеть определялась без проблем. но последнее время прикол такой, модем моргает красным,когда начинает определяться симка-синим моргает и всё... моргает синим и ничего не происходит. в настройках точка доступа отсутствует.в безопасности блокировки сим нет. в чем может причина? на другом устройстве все работает,кабель норм,модем тоже.гнездо входа в порядке. остается грешить только на драйвера. перепрошивка не помогла



Реп: (0)
ребят может кто подскажет ситуация такая -магнитола китайская на анроид 4 4 кит кат интернет работал год нормально через юсб модем тоже китайский вчера маг-ла выдала ошибку такого содержания-ограничения доступа изменены и не работал нет вставил в планшет тоже не работал подумал симка -поменял симку на теле2 теперь при включении магнитолы сеть показывает а 3г нет и не работает интернет, на симке все подключено и с планшета все пашет подскажите как решить проблему?



Реп: (1)
Ребят подскажите.
Купил модем МТС 827F(он же Huawei E3372s). на win xp модем определился, соединение установилось и инет есть. С помощью проги Hyper Terminal хотел перевести модем в режм "только модем". При вводе команды АТ отвечает ОК, дальше при вводе AT^U2DIAG=0 пишет ERROR. Пробовал программу 3gsw, при попытке перевести в режим "только модем" пишет что модем не обнаружен.... как быть дальше? нужно ли разлочить было его перед попытками перевести?
заранее спасиб за ответы



Реп: (543)
DiMa-s @ 09.12.2015, 10:35 *
Huawei E3372s

В шапке темы E3372s подробно расписано про команды в режиме Stick/Hilink.



Реп: (2)
* Brahner, а есть ли возможность принудительно отключить встроенную сетевуху и воткнуть модем?

У меня при одновременном подключении модема и USB-ethernet адаптера железка всегда первым подхватывает устройство USB-ethernet.

Без USB-ethernet модем нормально инициализируется.

Сообщение отредактировал John_Gorely - 10.12.15, 00:13



Реп: (543)
John_Gorely @ 10.12.2015, 00:13 *
принудительно отключить встроенную сетевуху

ip link set порт down

?
John_Gorely @ 10.12.2015, 00:13 *
У меня при одновременном подключении модема и USB-ethernet адаптера железка всегда первым подхватывает устройство USB-ethernet.

Вообще одновременно работают или только одно устройство?

Сообщение отредактировал Brahner - 12.12.15, 00:06


Полная версия   Текстовая версия

Помощь   Правила

Сейчас: 29.03.24, 18:51