GPRS (и EDGE) — технологии передачи данных в сетях сотовой связи стандарта TDMA и GSM. Они могут использоваться для подключения к интернету в местах, где другие способы подключения не доступны (в дороге, на даче).

Статья описывает настройку доступа для компьютера с операционной системой GNU/Linux и мобильного телефона, поддерживающего технологии Bluetooth и EDGE.

Оборудование и программное обеспечение


Использованное оборудование:

  • ноутбук Roverbook Navigator E510L
  • Bluetooth-брелок Supercom EP-9221-R (USB)
  • мобильный телефон Nokia 6021 (с поддержкой GPRS/EDGE и Bluetooth)
  • сотовая сеть оператора Мегафон-Москва

Использованное программное обеспечение:

  • операционная система Debian GNU/Linux (testing/etch), ядро 2.6.12-1-686
  • пакеты и версии: bluez-hcidump (1.28-1), bluez-pin (0.26-1),
    bluez-utils (2.19-1), kernel-patch-2.6-bluez (20050328-1),
    libbluetooth1 (2.24-1), libbluetooth1-dev (2.24-1), ppp (2.4.4b1-1)

С высокой вероятностью всё написанное ниже будет справедливо и для
другого оборудования и для других версий программного обеспечения.

Настройка телефона


Следует убедиться, что услуга передачи данных GPRS/EDGE подключена
для Вашего тарифного плана. После этого настроить в телефоне точку
доступа (APN) для пакетной передачи данных.

В случае контрактного тарифа Мегафон-Москва, услуга скорее всего уже подключена. В телефоне Nokia 6021:

  • Настройки -> Настройки конфигурации -> Стд параметры конфигурации: Персон. конфиг.
  • Настройки -> Настройки конфигурации -> Настройки персональной
    конфиг. -> Варианты -> Добавить нов. -> Точка доступа
  • Настройки точки доступа: пакетные данные, настройка канала: Точка
    доступа пакетных данных: internet.msk, тип аутентификации: обычное, имя
    пользователя: gdata, пароль: gdata
  • Настройки -> Настройки конфигурации -> Предпочтительн. точка доступа: выбрать созданную точку доступа.

В других телефонах может быть немного иначе. Для других операторов
следует использовать другую точку доступа, имя пользователя и пароль
(internet.ltmsk, gdata, gdata для предоплаченных тарифов
Мегафон-Москва, internet.mts.ru, mts, mts для МТС, internet.beeline.ru,
beeline, beeline для Билайн).

Эти настройки можно потом внести и на компьютере, но при таком
подходе эти же настройки точки доступа можно использовать и для
интернет-доступа в телефоне.

В телефоне включить Bluetooth. Для Nokia: Настройки ->
Подключение устройств -> Bluetooth: Включить. При необходимости в
настройках Bluetooth включить режим видимости.

Настройка компьютера


Настройка Bluetooth-соединения

1) Вставить Bluetooth-модуль в USB-разъём, подгрузить необходимые модули ядра:

 # modprobe hci_usb

2) Редактировать файл /etc/bluetooth/hcid.conf. В моем случае я
оставил файл практически без изменений, указав лишь свой pin_helper (об
этом ниже):

 options {
autoinit yes;
security auto;
pairing multi;
pin_helper /usr/local/bin/bluepin.helper
}
device {
name "%h-%d";
class 0x3e0100;
iscan enable; pscan enable;
lm accept;
lp rswitch,hold,sniff,park;
auth enable;
encrypt enable;
}

bluepin.helper должен быть программой, печатающей строку вида
«PIN:0000», где «0000» — пароль доступа к компьютеру по Bluetooth. Для
этих целей подойдет крохотный скрипт:

 #!/bin/bash
echo PIN:0000

Не забудьте вместо нулей вписать нормальный пароль и установить права на исполнение bluepin.helper.

Примечание: в новых версиях bluez-utils механизм ввода пароля
изменён. Теперь пользователь Bluetooth должен использовать отдельную
программу для подтверждения пароля, а общесистемные настройки пароля
стали недействительны. Данное верно как минимум для bluez-utils версии
3.7, а возможно и для более ранних версий. В этом случае рекомендуется
установить bluez-passkey-gnome (иконка Bluetooth появится в системном
лотке после запуска программы bt-applet). В качестве альтернативы можно
использовать программу passkey-agent. При попытке спарить телефон и
компьютер, требуется ввести одинаковые пароли на телефоне и в
появившемся окне ввода пароля.

3) После этого можно запускать службу Bluetooth (в других дистрибутивах Linux это может выглядеть немного иначе):

 # /etc/init.d/bluez-utils start

За ошибками на этом этапе можно следить через /var/log/syslog.

В более поздних версиях bluez-utils служба Bluetooth в Debian перезапускается так:

 # /etc/init.d/bluetooth restart

4) Проверить работу устройства можно, например, так:

 # hciconfig
hci0: Type: USB
BD Address: 00:11:F6:04:FB:BF ACL MTU: 120:20 SCO MTU: 64:0
UP RUNNING PSCAN ISCAN
RX bytes:965327 acl:6408 sco:0 events:2522 errors:0
TX bytes:294442 acl:3841 sco:0 commands:17 errors:0

5) Теперь необходимо найти телефон. Для этого убеждаемся, что Bluetooth на телефоне включен, и активирован режим видимости.

 # hcitool scan
Scanning ...
00:16:BC:CD:64:D2 Nokia 6021

Был обнаружен только что настроенный телефон. Все в порядке. Его «мак-адрес» запоминаем (выделяем-копируем), он еще пригодится.

6) Редактируем файл /etc/bluetooth/rfcomm.conf и вносим туда «мак-адрес» телефона:

 rfcomm0 {
bind yes;
device 00:16:BC:CD:64:D2;
channel 1;
comment "Dial-up networking gateway";
}

Могут быть доступны другие каналы Bluetooth (профили), например,
профили синхронизации или обмена файлами. Однако для доступа в интернет
они не нужны. Список поддерживаемых телефоном профилей можно
просмотреть с помощью

 # sdptool browse <мак-адрес-телефона>

или

 #sdptool records <мак-адрес-телефона>

Для пользователей телефонов на базе Windows Mobile 6:
В шестой версии винмобайла нет профиля DUN, для таких случаев надо использовать соединение через «Bluetooth NAP Service».
Для пользователей телефонов на базе Windows Mobile 5 Smartphone:
Стек, встроенный в ОС, не возвращает информации о профилях на запрос
sdptool browse. Экспериментальным путём было обнаружено, что профиль
«Dial-up networking gateway» находится на пятом канале. В этом случае
запись в /etc/bluetooth/rfcomm.conf выглядит так:

rfcomm0 {
bind yes;
device 00:11:22:33:44:55;
channel 5;
comment "Dial-up networking gateway on WM5 Smartphone";
}

00:11:22:33:44:55 — «мак-адрес» вашего телефона.

7) Остановите и перестартуйте службу Bluetooth (возможно, это и необязательно делать, я не знаю, — прим. автора)

 # /etc/init.d/bluez-utils stop

Настройка соединения GPRS (EDGE)

Эта часть настройки практически неизменна и в случае, если телефон
подключен к компьютеру с помощью кабеля или через инфракрасный порт. В
этом случае будет необходимо заменить имя устройства (/dev/rfcomm0 в
примерах).

Итак, есть настроенное соединение между компьютером и телефоном, в
телефоне настроена точка доступа пакетных данных (GPRS/EDGE). Теперь
можно настроить GPRS/EDGE-доступ, используя мобильный телефон в
качестве модема. «Дозваниваться» будем с помощью программы pppd.

1) В каталоге /etc/ppp/peers/ создаем файл с настройками нового соединения: /etc/ppp/peers/megaedge

/dev/rfcomm0 115200
# отключаем сжатие данных
nobsdcomp
nodeflate
# команда для установки соединения
connect ‘/usr/sbin/chat -v -f /etc/ppp/chat-megaedge’
noauth
# автоматическое получение сетевых настроек
noipdefault
usepeerdns
defaultroute
# необязательно
debug
nodetach

2) Создаем диалоговый файл /etc/ppp/chat-megaedge

TIMEOUT 5
ECHO ON
ABORT ‘\nBUSY\r’
ABORT ‘\nERROR\r’
ABORT ‘\nNO ANSWER\r’
ABORT ‘\nNO CARRIER\r’
ABORT ‘\nNO DIALTONE\r’
ABORT ‘\nRINGING\r\n\r\nRINGING\r’
» \rAT
TIMEOUT 12
OK ATE1
OK ‘AT+cgdcont=1,»IP»,»internet»‘
OK ATD*99#

Примечание: Если вы видите ‘serial line is looped back’, то в конце чат-скрипта не хватает строчки: CONNECT »

Это настройки для Мегафон-Москва. Для других сотовых операторов
строку «internet» нужно будет изменить (например, на «internet.mts.ru»
или «internet.beeline.ru»). Возможно, некоторые модели сотовых
телефонов потребуют изменить номер дозвона: вместо «*99#» попробуйте
тогда «*99***1#».

в данном случае имеет значение числовой идентификатор
профиля, его можно найти в свойствах профиля соединения телефона, если
у вас один профиль, то его номер будет «1» иначе там может быть другое
числовое значение

3) Устанавливаем соединение:

# pppd call megaedge
AT
OK
ATE1
OK
AT+cgdcont=1,»IP»,»internet»
OK
Serial connection established.
using channel 2
Using interface ppp0
Connect: ppp0 <—> /dev/rfcomm0
… (много всего опускаю)
local IP address 10.206.131.173
remote IP address 10.6.6.6
primary DNS address 10.22.10.20
secondary DNS address 10.22.10.21
Script /etc/ppp/ip-up started (pid 6203)
Script /etc/ppp/ip-up finished (pid 6203), status = 0x0

Соединение установлено, на телефоне Nokia в левом верхнем углу
экрана загорается буква «G» в рамочке. Если в терминале нажать ^C или
дать команду «killall pppd» — соединение будет разорвано.

Если при дозвоне появляется сообщение об отсутствии /dev/rfcomm0 можно воспользоваться командой

#rfcomm bind 0 00:16:BC:CD:64:D2 1

в вашем случае ip 00:16:BC:CD:64:D2 может быть другим см.выше

4) Посмотреть параметры соединения (и количество переданных данных) можно так:

# ifconfig ppp0
ppp0 Link encap:Point-to-Point Protocol
inet addr:10.206.131.173 P-t-P:10.6.6.6 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:1495 errors:1 dropped:0 overruns:0 frame:0
TX packets:1467 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:981144 (958.1 KiB) TX bytes:339713 (331.7 KiB)

Количество переданных за время подключения данных указано в
последней строчке. Следует однако учитывать, что сотовые операторы при
подсчете GPRS/EDGE трафика используют свои методики подсчета. Так,
Мегафон-Москва округляет объём переданных данных в большую сторону с
точностью до 8 килобайт через каждые три минуты соединения.

# /etc/init.d/bluez-utils start

8) Теперь необходимо провести первое «сопряжение» устройств. Это можно сделать так:

 # echo ATZ > /dev/rfcomm0

или так:

 #rfcomm connect 0 00:11:22:33:44:55 1

где 0 — номер устройства rfcomm, 1 — номер канала

и ввести пароль (выдаваемый bluepin.helper) на телефоне. После этого
на телефоне в списке сопряжённых устройста для устройства-компьютера
установить опцию «Автоподключение без подтверждения», тогда телефон
больше не будет спрашивать пароля при каждом соединении.

Примечание: после перезагрузки системы при сопряжении может
возникнуть ошибка invalid exchange, при этом телефон даже не пингуется,
это вызвано тем что не может выполниться скрипт выводящий пин, у меня
это было из-за того что не стояли права на его выполнение, лечится

 # chmod +x /usr/local/bin/bluepin.helper

Если эта ошибка возникает с самого начала, то возможно вы не правильно указали путь к скрипту в hcid.conf

На этом настройка Bluetooth-соединения закончена.


  • Подключение GPRS-internet к Linux. (На примере USB-IrDA dongle и Nokia 6310i)

Комментарии закрыты.

Карта сайта: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34