Logical-Portal — молодежный портал со своей изюминкой, каждый сможет найти что-то интересное и полезное для себя, например наш форум общения с которым вам обязательно нужно ознакомиться.
Подключение "неподдерживаемых" модемов к устройствам с ОС 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.
Разделы:
а) Определение списка файлов устройств модема;
При подключении модема создаются файлы устройств ttyUSB или ttyACM. В эмуляторе терминала набираем команду: ls /dev/ttyUSB* (или ls /dev/ttyACM*). Получаем список:
Если таких файлов устройств в системе не обнаружено, посмотрите выше решение при симптоме б).
Примечание: К шине 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 порт.
Подключение "неподдерживаемых" модемов к устройствам с ОС 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.
Разделы:
а) Определение списка файлов устройств модема;
При подключении модема создаются файлы устройств ttyUSB или ttyACM. В эмуляторе терминала набираем команду: ls /dev/ttyUSB* (или ls /dev/ttyACM*). Получаем список:
Если таких файлов устройств в системе не обнаружено, посмотрите выше решение при симптоме б).
Примечание: К шине 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 порт.