Подключение GPRS в Linux: различия между версиями
Строка 38: | Строка 38: | ||
== Настройка компьютера == |
== Настройка компьютера == |
||
=== Настройка 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. Для эти |
|||
=== Настройка 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:''' <br /> |
|||
В шестой версии винмобайла нет профиля DUN, для таких случаев надо использовать соединение через "Bluetooth NAP Service". <br /> |
|||
'''Для пользователей телефонов на базе Windows Mobile 5 Smartphone:''' <br /> |
|||
Остерегайтесь телефонов, не поддерживающих Dialup Networking по Bluetooth. Например SonyEriccson T280.<br /> |
|||
Стек, встроенный в ОС, не возвращает информации о профилях на запрос 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 |
|||
# /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 (EDGE) === |
=== Настройка соединения GPRS (EDGE) === |
Версия от 23:56, 4 июня 2012
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. Для эти
Настройка соединения 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 килобайт через каждые три минуты соединения.
Другие руководства
При настройке использовался опыт предшественников: http://www.teaparty.net/technotes/blue-gprs.html (на англ.) и http://gentoo.ru/node/517#comment-2185. Подключение с использованием инфракрасного порта описано по-русски в http://www.opennet.ru/base/net/gprs_linux.txt.html. При использовании кабеля, будет отличаться название устройства.