Настройка GPRS в Linux

Материал из Gentoo Linux Wiki

Перейти к: навигация, поиск
Вернуться в раздел руководства

Содержание

[править] Введение

Это руководство поможет настроить мобильный телефон для связи с провайдером через GPRS (на примере beeline). Для того, чтобы настроить мобильный телефон для связи через GPRS, вам понадобится подключить на вашем телефоне услугу GPRS. Обзавестись Mini-USB кабелем. Поправить ручками кое-что в ядре и собрать дополнительные пакеты из набора portage.

[править] Поддерживаемые телефоны

Производитель Модели Статус GPRS Примечание
Motorola C350,C360,C380,C390,V220,V620,V3r,V3i,V3x,V3xx, Работает Работает на всех p2k телефонах motorola

[править] Подготовка

Для наших задач нам понадобится изменить несколько файлов настроек.
Я использовал ядро gentoo-sources-2.4.28-gentoo-r5 из portage,
дозвонщик wvdial оттуда же
и ppp-2.4.3-r1 тоже соответсвенно из portage.

Изменяем файлы:

Открываем /etc/make.conf для редактирования nano -w /etc/make.conf

Добавляем mppe-mppc (Нужно для подключения с шифрованием Microsoft MS-CHAPv2)к вашим USE

Файл: /etc/make.conf

USE="mppe-mppc"

[править] Сборка пакетов

Собираем pppd

emerge /usr/portage/net-dialup/ppp/ppp-2.4.3-r1.ebuild

собираем wvdial

emerge wvdial

редактируем ядро

cd /usr/src/linux && make menuconfig

(подразумевается что linux это символичесская ссылка на исходники ядра)

изменяем

Network Device Support --->

<M>   (PPP point-to-point protocol) support
[ ]   PPP multilink support (EXPEREMRNTAL) (Вы же не хотите объеденять несколько телефонов в один канал)
[M]   PPP filtering
<M>   PPP support for async serial ports
<M>   PPP support for sync tty ports
<M>   PPP Deflate compression
<M>   PPP BSD-Compress compression
<M>   PPP over Ethernet (EXPEREMENTAL)

Примечание - т.к. у меня ядро 2.6.12-gentoo-r6, то выше названные модули я просто включил в ядро, и не возился в дальнейшем с их загрузкой. Пока проблем не было.

ISDN Subsystem --->

<*>   ISDN Support
[*]   Support asynchronus PPP
[*]   PPP filtering for ISDN
[*]   Use VJ-compression with asynchronus PPP

USB supprot --->

[*]   Support for USB
--- USB Host Controller Driver
<*>   ECHI HCD (USB2.0) support (EXPEREMENTAL)

(так как у меня чип материнской платы Intel то)

<*>   UHCI (Intel PIIX4, VIA, ...) support
--- USB Device Class drivers
<M>   USB Modem (CDC ACM) support

Примечание - для ядра 2.6.12-gentoo-r6 нужно установить:

Device Drivers ---> ISDN subsystem --->

ISDN subsystem  --->
[*]     CAPI2.0 Middleware support (Может и не нужно, но с ним работет)

Для C380 в данном разделе остальное у меня отключено.

И по меньшей мере для C380 дополнительно требуется установить:

Device Drivers ---> USB support ---> USB Serial Converter support --->

<*> USB Serial Converter support
[*]   USB Serial Console device support

Конец примечания

Сохраняем конфигурацию ядра и выполняем сборку. После сборки устанавливаем новое ядро
(Процес установки ядра описан во многих источниках так что не буду повторяться)

и перезагружаем машину.

[править] Настройка

После перезагрузки пытаемся загрузить модули

перед всеми манипуляциями проверить есть ли в /dev устройство ttyACM0, иначе скрипт и терминалка не увидят модема (телефона) по крайней мере в Fedore Core 2.0 если с ttyUSB0(1,2,3,4,5) ничего не вышло наберите находясь в /dev "mknod ttyACM0 c 160 0" (спасибо Pooh) и все должно заработать, естественно что модемом после этого будет устройство ttyACM0 (Yuri г. Barnaul)

стандартный модуль PPP modprobe ppp_generic

Модуль для асинхронной передачи modprobe ppp_async

Модуль для нашего телефона modprobe acm

Проверяем загрузились модули lsmod

Вывод должен выглядеть примерно так --->

ppp_async               6848   0  (unused)
ppp_generic            22628   0  [ppp_async]
slhc                    4624   0  [ppp_generic]
acm                    45353   0  [xxxxxxxxxxx] (не помню точно что должно быть)

Производим первичную конфигурацию wvdial

cd /etc && wvdialconf wvdial.conf

открываем для редактирования /etc/wvdial.conf

nano -w wvdial.conf

Файл: /etc/wvdial.conf

и изменяем сделующие строки

Init2 = AT+CGDCONT=1,"IP","internet.beeline.ru"
Phone = *99***1#
Username = beeline
Password = beeline

сохраняем полученный файл. Если значение Init2 уже занато (для C380 в нем дополнительные комманды инициализации), то используйте значение Init3 (Init3 = AT+CGDCONT=1,"IP","internet.beeline.ru").

На некоторых тарифах имя пользователя и пароль пустые, тогда файл для C380 и ядра 2.6.12-r6 будет выглядеть примерно так:

Файл: /etc/wvdial.conf

Modem = /dev/ttyACM0
Baud = 460800
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1,"IP","internet.usi.ru"
ISDN = 0
Modem Type = Analog Modem
Phone = *99***1#
Username = ""
Password = ""

[править] Установка соединения

запускаем wvdial

wvdial

Потираем ручки и юзаем GPRS на Linux

[править] Автоматическая установка соединения

Если вы используете udev, можно настроить автоматическое подключение GPRS при подключении телефона к USB.

Для этого создайте такой вот файл:

Файл: /etc/udev/rules.d/90-gprs-autodial.rules

KERNEL=="ttyACM0", RUN="/usr/bin/wvdial"

(немного некрасиво, но работает на ура)

..а при отключении телефона соединение оборвётся и без наших скриптов..


Примечание: А вообще, на домашних компьтерах можно использовать и графическую звонилку kppp, там и в командной строке набирать ничего не надо, да и удобнее она чем wvdial.

[править] Заключение

Данная статья ни в коем случае не претендует на то что это является правильным и единственным способом подключения GPRS. Вся ответсвенность за действия ложится на ваши плечи. Я описал то что у меня работает. Допускаю что мог в чем то ошибиться так как писал это все на память так что милости прошу ваши коментарии и исправления можно отправлять по email darkman@rusgate.org

Вернуться в раздел руководства
Личные инструменты