Способи подключеніянеподдержіваемих 3g-модемів
У заключній статті з циклу про підключення USB 3G-модемів ми поговоримо про остаточну налаштування підключення, про використання сторонніх коштів для підключення до інтернету та інших тонкощах.
У попередній статті ми зупинилися на тому, як перемкнути режим модему з ZeroCD, тобто віртуального CD-ROM, на, власне, модем. Тепер поговоримо про додавання записів в файл 3g_dongle.cfg. який розташовується по шляху /system/etc/3g_dobgle.cfg. Даний файл конфігурації має наступну структуру:
Отже, параметр production_name можна дізнатися, надіславши через термінал AT команду AT + CGMM. Про те, як відправляти AT-команди, ми розбиралися раніше. Тема файлу конфігурації, який вказаний в квадратних дужках, а також параметр dongle_name можна продублювати з параметра production_name.
Параметр vendor_name - це назва компанії-виробника модему, одним словом (наприклад ZTE, huawei, ASB і так далі).
Параметр network_type стільникових мереж GSM і 3G вказуємо GSM_MODE. Можливі також такі варіанти: CDMA_MODE, TD_MODE.
pid_vid_now - це параметр, який дорівнює написаним разом VID і PID в режимі підключення «тільки модем», з приставкою перед ними «0х».
bcdDevice_origin і bcdDevice_now - можна залишити значення даних параметрів, рівне «0x0». Примітка: значення параметра bcdDevice відповідає версії USB, по якій підключається 3G-модем, тобто для USB 2.0 bcdDevice дорівнює 0x0200, для USB 1.1 він дорівнює 0x0110.
Параметри at_port і ppp_port - це порти, через які працює модем. Дані порти ми раніше визначили. Експериментально можна підібрати, який з портів, які відгукнулися на введену в терміналі АТ-команду, відповідає at_port. а який - ppp_port. Після перезавантаження робимо спробу підключення до Інтернету. Примітка. У деяких модемах (наприклад, в ZTE MF100) тільки один з портів (ttyUSB2) відповів на відправлену в термінал АТ-команду. Цей порт відповідає значенню ppp_port = 2. Тоді значення для параметра at_port доводитися підбирати з решти номерів портів 1 і 0 (тобто, ttyUSB1 і ttyUSB0). Якщо вдалося підключитися до Інтернету сторонніми засобами (про що ми поговоримо трохи нижче) .то значення параметра ppp_port дорівнює номеру інтерфейсу ttyUSB, вказаною у файлі conf-pppd.
Не забуваємо перевірити розділ [DIAL_NUMBER] у файлі 3g_dongle.cfg. Для більшості GSM і 3G-модемів повинна бути вказана рядок: wcdma = ATDT * 99 #
Для деяких провайдерів мобільного інтернету потрібно інший номер дозвону (рідко) або наступний рядок:
Після внесення змін до файл 3g_dongle.cfg обов'язково потрібно перезавантажити пристрій для коректної роботи.
Тепер поговоримо про підключення до мережі Інтернет за допомогою сторонніх коштів. Для цього будемо використовувати демон протоколу PPP / system / bin / pppd і програму, яка буде взаємодіяти з самим модемом / system / bin / chat. Створимо такі файли:
Необхідні файли завантажуємо в наступному архіві:
Параметри демона pppd (вміст conf-pppd):
connect «/ system / bin / chat -f / etc / ppp / peers / conf-chat»
Значення ttyUSB ми вже визначили раніше, коли дізналися номер порту в Android, через який модем взаємодіє з нашим пристроєм. Можна експериментальним шляхом підібрати відповідний параметр. Параметри user і password - це ім'я користувача та пароль (для прикладу, у оператора МТС обидва параметри - «mts». У Білайн - «beeline»). Даний файл поміщаємо в директорію / etc / ppp / peers. Папки peers може не існувати - тоді створюємо її. Важливо - в цілому, даних параметрів буває досить для установки постійного стабільного з'єднання, але можуть бути нюанси. Тому розберемося з файлом conf-chat. Це рядки сценарію chat. Вміст файлу має наступний вигляд:
ABORT `+ CME ERROR:`
В даному скрипті «internet.beeline.ru» відповідає оператору Білайн. Для МТС цей параметр буде дорівнює «internet.mts.ru», а для Мегафон, відповідно, просто «internet». Як ми вже говорили, для деяких операторів або окремих моделей модемів може відрізнятися номер дозвону і, відповідно, команда ATDT.
pppd call conf-pppd
setprop net.dns1 8.8.8.8
setprop net.dns2 8.8.4.4
Якщо при виклику pppd використовується такий параметр, як usepeerdns, то можна прибрати рядки з «setprop net.dns1» і «setprop net.dns2». Запускати підключення даними скриптом краще, коли модем вже успішно зареєструвався в мережі, тобто індикатор горить зеленим або синім, в залежності від моделі.
Можна також підійти творчо до створення скрипта підключення, і вписати туди, наприклад, наступне:
for i in 1 2 3 4 5 6 7 8 9 10; do
echo "Starting pppd»
pppd call conf-pppd
ping -c 2 google.com exit 0 || exit 1
Відповідно, ttyUSB0 можна поміняти на будь-який інший порт, який стабільно створюється системою, а «ifconfig ppp0» можна, в свою чергу, замінити на «ip a s ppp0». Рядок з «ping», при бажанні, можна прибрати зовсім.
Скрипт inet-OFF.sh. як неважко здогадатися, відповідає за розрив з'єднання. Він має такий вигляд:
busybox killall pppd
Команда, природно, залежить від виконуються в системі команд, тобто може бути просто «killall pppd», а може бути «pkill pppd» та інші. Більш радикальне рішення, ніж виконання даного скрипта - банальне висмикування модему з USB-роз'єму.
Для запуску скриптів по включенню і відключення з'єднання можна використовувати додаток GScript, тоді поміщаємо файли зі скриптами в директорію / sdcard / gscript. Після установки і запуску програми, додаємо скрипти в меню, не забуваємо ставити галку біля «Needs SU?». Після можна додати ярлик на робочий стіл Android для швидкого запуску.
У різних системах, на різних пристроях і з різними модемами зазвичай використовуються одні й ті ж програми і скрипти. Однак, вони можуть бути розташовані в різних місцях.
Наприклад, може бути ситуація, коли при підключенні передбачено використання системою тільки файлів пристроїв / dev / ttyUSB. А для вашого модему створюються не / dev / ttyUSB, а / dev / ttyACM (така ситуація складається, наприклад, з 3G-модемом ZTE MF192). Тоді виходом є створення символьних посилань. Додаємо в початок скрипта запуску підключення такі рядки (номери портів правимо на потрібні):
ln -s / dev / ttyACM0 / dev / ttyUSB0
ln -s / dev / ttyACM1 / dev / ttyUSB1
Іноді можуть не створюватися файли пристроїв / dev / ttyUSB. Тоді вводимо в емуляторі терміналу такі команди:
echo "12d1 1506»> / sys / bus / usb-serial / drivers / option1 / new_id
Знову ж, замість «12d1 1506» VID і PID підключеного модему.
З яким ім'ям потрібно зберігати файл залежить від підключеного модему і самого Android-девайса. Це може бути просто «11modem» або ж інша назва.
У тому випадку, якщо скрипти не переключає режим модему за допомогою usb_modeswitch, то потрібно використовувати команди:
usb_modeswitch -v 12d1 -p 14fe -V 12d1 -P 1506
Де параметри «-v» і «-V» відповідають за значення VID модему до і після перемикання режиму з ZeroCD на «Тільки модем», а «-p» і «-P», відповідно, визначають значення PID.
У модемах, випущених компанією, Huawei можна змінити порядок портів (ttyUSB), використовуючи АТ-команду «AT ^ SETPORT».
Поточний стан портів перевіряється командою «AT ^ SETPORT»
Найчастіше необхідно використовувати наступну команду:
Або, іноді, таку:
Після зміни порядку портів можна перепідключити 3G-модем і знову перевірити стану за допомогою команди «AT ^ SETPORT?».
Ось, загалом-то, і все. Сподіваємося, цей цикл статей допоміг вам підключити ваш 3G-модем до планшета або будь-якого іншого Android-девайсу, і ви вже радієте Інтернетом в будь-якому місці, без прив'язки до вільних і безкоштовним точок доступу Wi-Fi.


