Наши
Сайдбары
   
IRC-канал
Linuxportal.ru
   
Импорт новостей
 
Вход Быстрая регистрация На главную

Поиск:
 
   БИБЛИОТЕКА
     Другие статьи этого раздела:
 

    Сеть
Другие разделы библиотеки:
   БИБЛИОТЕКА
     последние поступления:
 

Hardware
Перевод Serial-Programming-HOWTO
15.05.2006 | San АНДРЕЕВ
Перевод Linux Power Management Support
03.04.2004 | San АНДРЕЕВ
Варианты решения проблем со смещением геометрии монитора.
10.10.2003 | EsTaF
Multimedia
VideoCD для пингвинов
10.10.2003 | Buddha
Смотрим любимые фильмы с помощью MPlayer
23.07.2003 | Alexey Dmitriev
X-сервер
Включаем Bytecode Interpreter в пакете freetype в некоторых дистрибутивах
05.07.2006 | Alexey Dmitriev
НАСТРОЙКА СЕРВЕРА XDMCP ДЛЯ WINDOWS-КЛИЕНТОВ
09.09.2004 | Kotjara
Type1 и truetype шрифты в LaTeX.
03.05.2004 | geekkoo
Разное
Как самому написать концепцию информационной безопасности
22.03.2007 | Crion
Список рекомендуемой литературы
11.09.2006 | San АНДРЕЕВ
The Multi Router Traffic Grapher
02.06.2004 | Crion
Сеть
"Огненная стена" или строим файрвол на базе iptables
15.03.2005 | Alexey Dmitriev
Защищенная почтовая система
08.09.2004 | Crion
Postfix+Cyrus-SASL
18.12.2003 | geekkoo
Система
Написание драйверов под Linux: рекомендации, типичные ошибки и ловушки.
16.01.2007 | Mr.Nobody
Перевод Linux Daemon HOWTO
21.08.2006 | San АНДРЕЕВ
Усыпляем компьютер
11.01.2006 | San АНДРЕЕВ
   БИБЛИОТЕКА Сеть    
Автор статьи: San АНДРЕЕВ
Дата: 22.07.2003

Подключаемся к Интернет через модем в сотовом телефоне

название статьи: Подключаемся к Интернет через модем в сотовом телефоне
версия: 0.1
ключевые слова для поиска: сотовый телефон модем интернет dial-up pppd chat linux GPRS siemens mt50 nokia 6100 motorola c333 v600
Обновления: 05.11.2004

1. Введение.
Недавно у меня появилась возможность блуждать по Сети при помощи GPRS через одного из операторов мобильной связи стандарта GSM. В моем случае это Билайн. Когда я сам начал настраивать все это дело, то поверхностным поиском по Сети найти что-нибудь толковое на эту тему не удалось, поэтому после того, как разобрался, решил по возможности понятно описать свои действия.

2. Общие соображения.
Я не знаю - можно ли использовать сотовый телефон для диалапа на обычные номера ГТС. Не мне судить об осмысленности такого подключения - ситуации бывают разные. Что же касается технической реализации такого момента - ничего не мешает кодировать данные как речь и передавать как обычно. Но при таком соединении скорость передачи не будет превышать 14400 бит/с (для большинства опеаторов это вообще 9600 бит/с) и будет тарифицироваться как обычный исходящий звонок на городской номер. С другой стороны - мне неизвестно, поддерживает ли модем телефона такую возможность (точно удовостовериться ни в том, ни в обратном пока не получается). Также имеется подозрение, что оператор может запретить маршрутизацию звонков либо такого типа, либо на такие номера ГТС, либо и то, и другое.
То же самое с применением GPRS на мой взгляд невозможно в принципе, потому как в рамках этой технологии звонка как такового не производится и GPRS использует свойства GSM (тайм-слоты в частности).

3. Исходные данные.
Телефон Siemens MT50, интерфейсный (или data) кабель, пакет pppd. Интерфейсный кабель в течение этого процесса я перепаял на десять рядов и поэтому уже не помню, на каком варианте остановился. Скорее всего на нуль-модемном. Точно могу сказать, что используются только линии TxD и RxD и Общий провод.
Для установления соединения и работы в Интернет будем использовать связку pppd и chat. Собственно установление соединения начинается с запуска скрипта ppp-on. По его успешном окончании в системе появится интерфейс ppp0 (если других PPP-интерфейсов в системе нет, иначе просто номер этого будет на единицу больше наибольшего) - об этом можно узнать из вывода команды /sbin/ifconfig.

4. Скрипты.
1) /etc/ppp/ppp-on:

#!/bin/bash
exec /usr/sbin/pppd /dev/ttyS1 57600 lock nocrtscts nocdtrcts noipdefault \
defaultroute 0.0.0.0:0.0.0.0 user beeline connect /etc/ppp/dial

/dev/ttyS1 - телефон подключен через COM2;
57600 - модем в моем телефоне на 56К;
lock - монопольная работа с портом;
nocrtscts, nocdtrcts - не использовать в работе управляющие сигналы порта (у меня ведь используются только две линии);
noipdefault - ипишник мне присвоит провайдер;
defaultroute 0.0.0.0:0.0.0.0 - маршрут по умолчанию тоже;
user beeline - логин, пароль находится в pap-secrets (мой провайдер использует PAP-аутентификацию)
connect /etc/ppp/dial - для установления соединения с провайдером использовать скрипт /etc/ppp/dial.

2) Содержимое /etc/ppp/pap-secrets:
# пользователь сервер пароль
beeline 192.168.17.1 beeline

ИП сервера я узнал у провайдера. Скорее всего он также имеется в настройках профиля WAP в телефоне. Вместо ИП сервера наверное можно поставить и *.

3) /etc/ppp/dial:
#!/bin/bash
exec /usr/sbin/chat -v -f /etc/ppp/connect

Программа chat - это "звонилка", обычно поставляется вместе с pppd и используется для установления низкоуровневого соединения между модемами (aka handshake). Скрипт, управляющий ее работой, называется /etc/ppp/connect. В нем как раз и прописываются команды управления модемом (или AT-команды).

4) Скрипт /etc/ppp/connect:
ABORT BUSY
ABORT 'NO CARRIER'
""
ATZ OK
AT+CGDCONT=1,"IP","internet.beeline.ru" OK
ATDT*99***1#
CONNECT ""

Здесь вроде все понятно. Строку инициализации и номер телефона я узнал у провайдера, набор тоновый.

Теперь надо дать права на выполнение скриптам ppp-on и dial и скомандовать /etc/ppp/ppp-on. Через некоторое время соединение должно установиться и появится интерфейс ppp0, это можно проверить при помощи ifconfig. Если ничего не получилось - смотрите /var/log/messages на предмет ошибок.

5. Послесловие.
Конечно скрипт /etc/ppp/connect довольно прост, но я и не стремился сделать из него ЦУП. Для меня достаточно и этого, для кого нет - у вас широкое поле для деятельности. Все эти скрипты необязательно называть так, как они названы и располагать там, где они расположены. Если вы измените пути и/или названия - не забудьте просто все поправить в соотв. местах.
Ну и о впечатлениях. На данный момент в Омске эта услуга находится в тестовой эксплуатации и может поэтому качество связи оставляет желать много-много лучшего. Примлемое качество связи приходится на утренние часы - примерно с 4х до 8ми утра. Плюсы этого способа выхода в интернет - мобильность (достаточно носить с собой кабель в моем случае), простота оплаты и обслуживания, быстрый дозвон, никогда не бывает занято. Минусы - есть подозрение, что при вводе этой услуги в штатную эксплуатацию качество связи не сильно улучшится в силу ограничений, накладываемых стандартами GSM и GPRS. В любом случае скорее всего для этого вида связи будут характерны неожиданные замирания передачи.

6. Примечания.
Недавно приобрел новый аппарат Motorola C333, у которого интерфейс организован по шине USB. Поиски в Сети снова ничего особенно не дали - везде предлагали какой-то непонятный патч к ядру, который только и делал, что в файле acm.c повышал на единицу значение одной переменной. Мне он не помог.
Однако я не терял надежды и ждал ядра 2.4.23 - как оказалось не зря. Достаточно было собрать его с поддержкой USB-модема (USB-support -> USB Modem (CDC ACM) support) модулем и мой модем в телефоне "увиделся" как /dev/ttyACM0 и именно это устройство надо "подсовывать" pppd вместо /dev/ttyS1 (в моем случае). Файл устройства можно создать и самостоятельно при помощи команды mknod:
# mknod /dev/ttyACM0 c 166 0
Если вы планируете подключать к компьютеру больше одного модема, то просто увеличивайте минор (0 в этом примере) на 1 для каждого нового устройства, всего устройств может быть 255. Проблема здесь может быть в следующем - устройства по файлам /dev/ttyACMx распределяются по очередности подключения к компьютеру, какой-либо привязки между файлом и устройством в общем случае нет. Для телефона Motorola V600 и соединения через USB-кабель исправлять ничего не потребовалось - сказанное в этом пункте работает как есть. То же самое и в случае ядер 2.6.х (только опция про USB Modem в конфиге ядра переехала).

7. Дополнение.
Что касается использования мобильного телефона Nokia 6100. При использовании комуникационного кабеля MA-8620E (USB Data Cable for Nokia 7210, 6610, 7250, 5100, 6800, 7250i, 3100, 6220 - данный кабель представляет собой конвертор USB-to-Serial на читсете PL2303), необходима поддрежка USB Serial Converter suport. В ядре, по меньшей мере, должны быть включены следующие опции. Надеюсь у вас USB и так работает. Работоспособность проверялась на ядре 2.4.22.
CONFIG_USB_SERIAL=m # USB Serial Converter Support
CONFIG_USB_SERIAL_GENERIC=y # USB Generic Serial Driver 
CONFIG_USB_SERIAL_PL2303=m # USB Prolific Sigle Port Serial Driver
Примечание: Prolific PL2303 Driver
Этот драйвер поддерживает устройства, которые построенны на  Prolific PL2303 
чипсете. Он включает в себя ряд конверторов USB-портов в последовательные COM-порты 
и USB GPS устройства.Также поддерживает работу с устройствами Aten (the UC-232) и IO-Data.
После подключения кабеля cмотрим поднялись ли драйверы:
#lsmod
pl2303                 11864   1
usbserial              18876   0  [pl2303]
uhci                   24496   0  (unused)
usbcore                58400   1  [pl2303 usbserial hid usbmouse uhci]
Проверяем есть ли у нас устройства:
#ls -l /dev/ttyUS*
crw-r-----    1 root     uucp     188,   0 2004-04-12 12:29 /dev/ttyUSB0
crw-rw----    1 root     uucp     188,   1 2001-03-26 01:04 /dev/ttyUSB1
Если таковых нет создаем:
#mknod /dev/ttyUSB0 c 188 0
#mknod /dev/ttyUSB1 c 188 1
Создаем /etc/ppp/GPRS
ABORT "BUZY"
ABORT "NO CARRIER"
"" "AT"
"OK" "AT&FV1&D2&S0&C1&C1S0=0+CVHU=1"
"OK" 'AT+CGDCONT=1, "IP", "internet.mts.ru"'
"OK" "ATS7=60+CBST=,,1;+DS=1,0;&K3"
"OK" "ATD*99#"
TIMEOUT 30
CONNECT
Создаем /etc/ppp/options
debug
/dev/ttyUSB0
connect '/usr/sbin/chat -v -f /etc/ppp/GPRS'
local
ipcp-accept-local
ipcp-accept-remote
-pap
noipdefault
defaultroute

8. Некоторые ссылки по теме.
Про GSM, GPRS и много чего еще:





9. Автор.
San АНДРЕЕВ
9.1. Дополнение
Andrew E. Kuznetsoff aka Разгильдяй на обкуренной кошке

Обоснованные исправления и дополнения вэлкам.



Все статьи раздела "Сеть"

©"Linuxportal.Ru". Материалы сайта можно
использовать свободно при условии
сохранения этой свободы при дальнейшем
распространении, если явно не указано иное

Дизайн и программирование:

Поставьте
нашу кнопку:
Получить код кнопки
Linux Portal.ru ::: Линукс Портал.ру
Наш партнер: