Телефония и связь Настраиваем GPRS соединение в Gentoo

Discussion in 'Электроника и Фрикинг' started by Elvis000, 1 Nov 2007.

  1. Elvis000

    Elvis000 Патриот

    Joined:
    23 Apr 2007
    Messages:
    600
    Likes Received:
    339
    Reputations:
    148
    К слову сказать, на этот шаг меня сподвигла акция Beeline, проводимая в городе Калуга, Россия: любому абоненту их компании предоставляется БЕСПЛАТНАЯ (до 15 ноября) возможность воспользоваться услугами GPRS internet'a. Не купиться на это - было трудно :) Прихватив паспорт, я направился прямиком к ним в офис для заключения договора на подключение. Именно на подключение!, т.к. по своей натуре я являюсь абонентом МТС. Хотя через пять минут я разместил свою кандидатуру и в Билайновском сообществе. В качестве тарифа был выбран Би+Тайм и начальный взнос в 5 вечнозеленых (минимально возможный). На следующий день (договора направляются в Москву) я успешно активировал услуги GPRS-internet и GPRS-Wap, набрав указанные в распечатке номера телефонов. Этим же днем был арендован :) у друга COMовский (в плане подключения к COM порту, а не наименование фирмы) шнурок (кабель) и уже вечером я наслаждался халявным GPRS интернетом. Днем позже мною был приобрел USB кабель с "болтающейся" по середине коробочкой и микросхемкой внутри ее. Как позже, при подключении к компьютеру, выяснилось это Prolific PL-2303 USB to serial adaptor driver, для которого требуется отдельный модуль (драйвер в windows транскрипции).

    "Ядрёное" конфигурирование

    Эта процедура потребует от Вас установленных исходных текстов ядра. В большинстве случаев они остаются после установки дистрибутива. 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 соединения, рекомендую обратиться к замечательному ресурсу 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 соединение с интернетом.

    Завершение соединения

    Для этого достаточно выполнить:

    $ 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

    Артем Носов aka ChiP​