Настройка подключения к Internet через bluetooth в Mandriva Linux.

Исходные данные

bluetooth-адаптер orient-b303

Привлёк внимание тем, что на упаковке был нарисован tux(верный признак того, что устройство не заточено исключительно под windows), и кучей дисков с мультимедиа-контентом впридачу. :-)

Мобильный телефон nokia-3250

Аппарат с поддержкой bluetooth и gprs

Оператор сотовой связи МТС.

+ не самый дешевый для использования gprs, хоть и внутрикорпоративный тариф стандарт

Дистрибутив mandriva 2006.

Уже довольно старенький, но прекрасно себя зарекомендовавший дистрибутив, который я не скоро решусь поменять на какой-то другой (прецеденты обратного перехода уже были)1)

Установка и настройка ПО для сопряжения телефона и компьютера.

Установка пакетов

Для сопряжения компьютера и телефона через bluetooth-адаптер нам понадобятся все пакеты, начинающиеся на bluez. Их и установим

root#urpmi -a bluez-((для Debian надо через apt-get поставить все пакеты, начинающиеся на //bluez-//))

Запустим службу bluetooth

root#/etc/init.d/bluetooth restart

Определение адреса телефона и номера канала.

Включим у телефона поддержку bluetooth и дадим (если еще не дали) ему имя nokia-3250.

Определимся с адресом телефона.

bash$ hcitool scan

scanning ...

        00:19:4f:e3:73:b6       nokia-3250

Проверим, есть ли у телефона поддержка dial-up networking, и на каком канале

[r-asian@localhost ~]$ sdptool browse 00:19:4f:e3:73:b6

browsing 00:19:4f:e3:73:b6 ...

Далее вываливается списов всех служб, которые поддерживает телефон. Из всего многообразия нас интересует вот эта:

service name: dial-up networking

service rechandle: 0x10002

service class id list:

  "dialup networking" (0x1103)

protocol descriptor list:

  "l2cap" (0x0100)

  "rfcomm" (0x0003)

    channel: 2

language base attr list:

  code_iso639: 0x454e

  encoding:    0x6a

  base_offset: 0x100

profile descriptor list:

  "dialup networking" (0x1103)

    version: 0x0100

То, что нас интересует висит на 2-м канале.

Создание генератора pin-кода

Генератор pin-кода это просто скрипт, который генерирует последовательность вида PIN:{пароль}, например такой

#!/bin/bash

echo "PIN:1234";

Сохраним его в файле /usr/local/bin/bluepin.helper и не забудем дать ему права на исполнение

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

Настройка демона hcid

Его настройка производится правкой файла /etc/bluetooth/hcid.conf.

options {

         autoinit yes;

         security auto;

         pairing multi;

         pin_helper /usr/local/bin/bluepin.helper;

 }

 device {

         name "11:11:11:11:11:11";

         class 0x3e0100;

         iscan enable; pscan enable;

         lm accept;

         lp rswitch,hold,sniff,park;

         auth enable;

         encrypt enable;

 }

Настройка сопряжения.

Его настройка производится правкой файла /etc/bluetooth/rfcomm.conf. В нём мы прописываем к какому файлу устройства в /dev будет соответствовать gprs- модем. В нащем случае определим его как /dev/rfcomm0

rfcomm0 {

         bind yes;

         # Адрес телефона

         device 00:19:4f:e3:73:b6;

         # Номер канала на котором поддерживается dial-up networking

         channel 2;

         comment "dial-up networking gateway";

}

Проба модема.

Перезапустим демон hcid

root#/etc/init.d/bluetooth restart

Проверим наличие файла-устройства /dev/rfcomm0

$ ls /dev|grep rfcom

rfcomm0

Пошлём на телефон команду инициализации, выведя её в файл /dev/rfcomm0

$ echo "atz">/dev/rfcomm0

Телефон ожил и спросил разрешения принять запрос от «11:11:11:11:11:11»? Ну и чудесно.

Настройка подключения к провайдеру.

Для дозвона могут быть использованы самые разные программы-звонилки. Например kppp, или можно попробовать настроить pppd вручную. Лично мне нравится textbfwvdial. В поставку моего дистрибутива он входит.

#urpmi wvdial

Расмотрим настройку подключения к провайдеру на примере МТС, для других операторов сотовой связи необходимую информацию по номеру телефона, имени пользователя и паролю можно найти на их сайтах.

Создадим файл настройки /etc/wvdial.conf.mts следующего содержания

[DIALER DEFAULTS]
; Устройство модема
modem = /dev/rfcomm0
; Скорость передачи
baud = 115200
; Инициализация модема
init = ATZ
; Вторая строка инициализации, берётся на сайте опреатора
init2 = AT+CGDCONT=1,"IP","internet.mts.ru"
; Тип модема
modem type = analog modem
; Тоновый набор номера
dial command = ATDT
; Номер телефона
phone = *99#
; Логин и пароль
username = mts
password = mts

Дозвон и соединение.

Запустим, дозвон, указав, из какого файла брать параметры

$wvdial --config /etc/wvdial.conf.mts

Если всё в порядке, то видим следующее:

--> wvdial: internet dialer version 1.54.0
--> initializing modem.
--> sending: atz
atz
ok
--> sending: at+cgdcont="1","ip","internet.mts.ru"
at+cgdcont="1","ip","internet.mts.ru"
ok
--> modem initialized.
--> sending: atdt*99#
--> waiting for carrier.
atdt*99#
connect
~[7f]}#@!}!} } }2}#}$@#}!}$}%\}"}&} }*} } g}%~
--> carrier detected.  waiting for prompt.
~[7f]}#@!}!} } }2}#}$@#}!}$}%\}"}&} }*} } g}%~
--> ppp negotiation detected.
--> starting pppd at wed nov 21 21:47:42 2007
--> pid of pppd: 5807
--> using interface ppp0
--> pppd: connect: ppp0 <--> /dev/rfcomm0
--> pppd: pap authentication succeeded
--> local  ip address 172.28.164.233
--> remote ip address 10.6.6.6
--> primary   dns address 195.209.229.37
--> secondary dns address 10.84.125.2

Ну, в общем-то и всё.

Резюме.

  1. устанавливаем пакеты для работы с bluetooth;
  2. определяем адрес телефона и номер канала, по которому поддерживается dial-up networking;
  3. создаём генератор pin-кода;
  4. настроим демон hcid;
  5. настроим сопряжение;
  6. проверим работу модема;
  7. установим ПО для дозвона до провайдера;
  8. настроим соединение с провайдером;
  9. дозваниваемся.

Добавить комментарий