Ключевые слова:gprs, mobile, ppp, linux, usb, (найти похожие документы)
From: Артем Носов aka ChiP <[email protected]>
Newsgroups: http://www.linuxshop.ru/unix4all/
Date: Mon, 9 Dec 2003 14:31:37 +0000 (UTC)
Subject: Настраиваем GPRS соединение в Gentoo Linux
Оригинал: http://www.linuxshop.ru/unix4all/?cid=&id=382
Настраиваем GPRS соединение в Дженту
Артем Носов aka ChiP <[email protected]>
К слову сказать, на этот шаг меня сподвигла акция Beeline, проводимая
в городе Калуга, Россия: любому абоненту их компании предоставляется
БЕСПЛАТНАЯ (до 15 ноября) возможность воспользоваться услугами GPRS
internet'a. Не купиться на это - было трудно :) Прихватив паспорт, я
направился прямиком к ним в офис для заключения договора на
подключение. Именно на подключение!, т.к. по своей натуре я являюсь
абонентом МТС. Хотя через пять минут я разместил свою кандидатуру и в
Билайновском сообществе. В качестве тарифа был выбран Би+Тайм и
начальный взнос в 5 вечнозеленых (минимально возможный). На следующий
день (договора направляются в Москву) я успешно активировал услуги
GPRS-internet и GPRS-Wap, набрав указанные в распечатке номера
телефонов. Этим же днем был арендован :) у друга COMовский (в плане
подключения к COM порту, а не наименование фирмы) шнурок (кабель) и
уже вечером я наслаждался халявным GPRS интернетом. Днем позже мною
был приобрел USB кабель с "болтающейся" по середине коробочкой и
микросхемкой внутри ее. Как позже, при подключении к компьютеру,
выяснилось это Prolific PL-2303 USB to serial adaptor driver, для
которого требуется отдельный модуль (драйвер в windows транскрипции).
Кратко остановлюсь на содержании самой статьи. Как можно понять из
названия заметки, акцент будет сделан на дистрибутиве gentoo (Дженту),
но многое из сказанно (сколько вы раз встречали эту фразу ? :) будет
справедливо и для других дистрибутивов, в том числе и FreeBSD. На этом
вводная часть, как мне кажется, подходит к концу и наступает самая
захватывающая часть описываемого процесса:
"Ядрёное" конфигурирование
Эта процедура потребует от Вас установленных исходных текстов ядра. В
большинстве случаев они остаются после установки дистрибутива. Eсли же
по какой-то причине вы их удалали, выберете любое Вам понравившееся
ядро из :
ls -d /usr/portage/sys-kernel/*-sources
и установите его командой:
emerge sys-kernel/<NAME>-sources
, где <NAME> - выбранное Вами имя. От себя осмелюсь порекомендовать
xfs-sources или gentoo-sources, поклонникам же т.н. pure sources
идеально подойдут vanilla-sources.
Да и вот еще что, этот этап в Вашем случае может оказаться вовсе
необязательным. Например, у Вас присутсвуют все ниже перечисленные
"обязательные" компоненты в виде модулей. Мне потребовалась пересборка
из-за отсутствия модуля для USB to RS-232 Adaptor'a, располагающегося
на USB-кабеле. Итак, следующие опции подлежат обязательному включению
(в качестве модуля или "монолитом"):
В секции Networking options->
TCP/IP networking
В секции Network device->
PPP (point-to-point protocol) support
Для моего USB кабеля также потребовались нижеперечисленные опции:
В секции USB support->
Support for USB
В секции USB Serial Converter support->
USB Serial Converter support
USB Generic Serial Driver
USB Prolific 2303 Single Port Serial Driver
На пересборке ядра останавливаться не буду, т.к. для пользователей
gentoo это уже пройденный этап и они с легкостью могут освежить его в
памяти, воспользовавшиcь документацией по установке Дженту.
Пользователям других дистрибутивов могу порекомендовать KERNEL-HOWTO,
а также заметки доступные в N-ых количествах почти на всех сайтах,
посвященных линуксу.
Настройка GPRS-соединения
Перед тем как приступить непосредственно к настройке необходимо
установить пакет net-dialup/ppp:
emerge net-dialup/ppp
Не возбраняется воспользоваться уже собранным бинарным пакетом, для
этого необходимо указать emerge ключ --usepkg (-k):
emerge -k net-dialup/ppp
Установка позади. На этапе конфигурирования основным средством будет
выступать "любимый" редактор. Для меня эту роль послушно исполняет
vim, но каждый вправе выбрать любой другой. Если же Ваш выбор еще не
"устаканился", можете воспользоваться nano, идущим в базовой поставке
Дженты (только, пожалуйста, не забываете при редактировании добавлять
ключ -w - для отключение переноса длинных строк).
Итак, создадим файл /etc/ppp/peers/beeline следующего содержания:
/dev/usb/tts/0 57600 noauth defaultroute usepeerdns updetach persist
noipdefault lock connect '/usr/sbin/chat -v -f /etc/ppp/chat/beeline'
novjccomp nopcomp noaccomp noipdefault nodeflate novj nobsdcomp
Для COM-кабеля потребуется заменить /dev/usb/tts/0 на :
/dev/tts/0 - при подключении телефонного кабеля к COM1
/dev/tts/1 - для COM2
Немного поясню назначение опций:
defaultroute - установить маршрутом "по умолчанию"
noipdefault - не использовать IP адресс, назначенный для данного hostname
persist - восстанавливать соединение при разрыве (помните, мы платим только
за трафик)
updetach - `возвратить управление` процессу, вызвавшему pppd, при успешно
установленном соединение
usepeerdns - получить DNS адресса от сервера (потребуется при настройке pdnsd)
Еще одним файлом необходимым для корректного функционирования
предложенной схемы является /etc/ppp/chat/beeline. Создадим его,
"вложив" в него:
TIMEOUT 45
ABORT BUSY
ABORT "NO CARRIER"
ABORT ERROR
"" 'ATE1'
OK AT+CGDCONT=1,"IP","internet.beeline.ru"
OK ATD*99***1#
CONNECT c
"internet.beeline.ru", скорее всего, потребуется измеменить в
соответсвии с вашими реалиями, например, на "internet.mts.ru".
Единственное, что здесь могу порекомендовать, обратиться к
документации, полученной Вами от Оператора Сотовой Связи. Также может
подвергнуться изменению строка ATD*99***1#, которая характерна для
телефонов компании Siemens. Насколько я знаю, для телефонов Nokia
используется в данном случае 99#. Владельцам телефонов других компаний
стоит обратиться в представительство Вашего Сотового Оператора.
Все! На этом вся настройка связанная с GPRS соединением завершена.
Вплотную мы приблизились к испытательной стадии. Для этого наберем в
консоли :
pppd call beeline
Думаю не стоит напоминать, что выполнять эту команду необходимо из под
root (в общем случае). В следующей заметке я приведу несколько
способов, позволяющих выполнять ее и "рядовому" пользователю. Итак,
если все прошло успешно через несколько секунд на экране должны
появиться строчки, приблизительно, следующего содержания:
feel root # pppd call beeline
Serial connection established.
Using interface ppp0
Connect: ppp0 <--> /dev/usb/tts/0
local IP address 172.19.234.117
remote IP address 192.168.254.254
primary DNS address 217.118.66.243
secondary DNS address 217.118.66.244
feel root #
Если по каким-то причинам соединение не устанавливается, попробуйте к
строчке запуска добавить опции debug и nodetach, т.е:
pppd debug nodetach call beeline
и на основании полученной информации, попытаться найти ошибку. Одной
из возможных причин может быть т.н. неполноценный кабель. Для более
детального ознакомления по вопросам выбора кабеля, а также многим
другим аспектам установки GPRS соединения, рекомендую обратиться к
замечательному ресурсу [59]http://forum.siemens-club.ru. Если же
соединение успешно установилось, но на попытку обращения к любому
ресурсу по его IP адрессу (помните DNS сервера еще не прописаны)
выдается no route to host, попробуйте воспользоваться командой:
route add default gw 192.168.254.254
, где 192.168.254.254 - remote IP address - и его необходимо заменить
на адресс, "полученный" Вами от pppd. Для того чтобы не вводить эту
строчку при каждом соединении, достаточно довавить ее в
/etc/ppp/ip-up. Если же ничего из вышесказанного не помогло, то,
вероятно, Ваш случай требует более пристального изучения :).
Для некоторых завершающим этапом станет добавление primary и secondary
адресов DNS сервера в файл /etc/resolv.conf, т.е. для рассматриваемого
случая он примет вид:
nameserver 217.118.66.243
nameserver 217.118.66.244
Тем самым они получат полностью рабочее GPRS соединение с интернетом.
Я же пойду дальше и в следующей заметке опишу процедуру настройки
кеширующего DNS сервера pdnsd. Что позволит сохранить 2-4% трафика,
который как ранее упоминалось оплачивается помегабайтно, расходуемого
на "пустые" dns запросы. А также возвращусь к ранее упомянутому
способу запуска демона pppd обычным пользователем. На последок добавлю
лишь немаловажный факт:
Завершение соединения
Для этого достаточно выполнить :
killall pppd
либо
pkill pppd
или более эстетичный способ :
kill `cat /var/run/ppp0.pid`
Документация:
man 8 chat
man 8 pppd
man 5 resolv.conf
man 8 route
man 1 emerge
man 1 kill
http://forum.siemens-club.ruhttp://www.easyconnect.linuxuser.hu/ - GRPS Easy Connect (GUI утилита для
настройки GPRS соединения)
Потратитл ночь и полдня на бесплодные попытки заставить работать pppd с билайн. В конце концов
pppd -chap -pap noccp noipdefault receive-all debug -ac -pc -vj logfile /var/log/ppp.lg call beeline сработало. Долго ж я не мог дойти до "receive-all"...