суббота, 9 июня 2007 г.

Nokia E50 (EDGE, GPRS /BeeLine/) + Bluetooth + Kubuntu

Итак, прикручивем к компу с Кубунтой и USB Bluetooth модулем интернет через мобилу:

После этого с помощью любого текстового редактора редактируем файл /etc/bluetooth/hcid.conf , например:
# sudo kate /etc/bluetooth/hcid.conf



Меняем в этом файле в разделе:
# Default link mode
# none - no specific policy
# accept - always accept incoming connections
# master - become master on incoming connections,
# deny role switch on outgoing connections
lm accept;

последнюю строку на
lm accept, master;

(это необходимо для того, чтобы наше устройство становилось главным при Bluetooth-соединении).

Даем команду обращения к USB-Bluetooth адаптеру компьютера и получаем вывод наподобие следующего:
# hciconfig -a
hci0: Type: USB
BD Address: 00:0A:94:02:22:1E ACL MTU: 384:8 SCO MTU: 64:8
UP RUNNING AUTH ENCRYPT
RX bytes:478 acl:0 sco:0 events:34 errors:0
TX bytes:380 acl:0 sco:0 commands:26 errors:0
Features: 0xff 0xff 0x8f 0xfe 0x9b 0xf9 0x00 0x80
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH HOLD SNIFF PARK
Link mode: SLAVE ACCEPT
Name: 'dellhost'
Class: 0x100100
Service Classes:
Device Class: Computer, Uncategorized
HCI Ver: 1.1 (0x1) HCI Rev: 0x7a6 LMP Ver: 1.1 (0x1) LMP Subver: 0x7a6
Manufacturer: Cambridge Silicon Radio (10)

Здесь:

BD Address: 00:0A:94:02:22:1E - уникальный адрес Bluetooth-устройства, которое имеется в нашем компьютере,

UP RUNNING AUTH ENCRYPT - служба работает, включено шифрование.

Включаем Bluetooth службу на телефоне (обычно где-то Bluetooth -> Включить). На телефоне появляется значок Bluetooth.

Сканируем на наличие вблизи компьютера доступных Bluetooth-устройств:
# hcitool scan

При этом обнаруживается наш телефон:
# hcitool scan
Scanning ...
00:0F:DE:82:22:87 E50

Здесь

00:0F:DE:82:22:87 - BD-адрес телефона, который будет активно нами использоваться, его нужно запомнить,

E50 - имя телефона, которое прописано в настройках Bluetooth телефона.


Узнаем теперь, какие службы предоставляет телефон через Bluetooth:
# sdptool browse 00:0F:DE:82:22:87

Если эта команда не заработает, запускаем сначала соответствующий демон sdpd, а потом - команду:
# sdpd
# sdptool browse 00:0F:DE:82:22:87

Получаем вывод очень подробной информации о модуле Bluetooth телефона, что-то наподобие нижеприведенного:
Browsing 00:0F:DE:82:22:87 ...
Service Name: Dial-up Networking
Service RecHandle: 0x10000
Service Class ID List:
"Dialup Networking" (0x1103)
"Generic Networking" (0x1201)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
Profile Descriptor List:
"Dialup Networking" (0x1103)
Version: 0x0100

Service Name: HS Voice Gateway
Service RecHandle: 0x10002
Service Class ID List:
"Headset Audio Gateway" (0x1112)
"Generic Audio" (0x1203)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 4
Profile Descriptor List:
"Headset" (0x1108)
Version: 0x0100

Service Name: Serial Port
Service RecHandle: 0x10003
Service Class ID List:
"Serial Port" (0x1101)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 2

Service Name: Serial Port 2
Service RecHandle: 0x10004
Service Class ID List:
"Serial Port" (0x1101)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 3

Service Name: OBEX Object Push
Service RecHandle: 0x10005
Service Class ID List:
"OBEX Object Push" (0x1105)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 6
"OBEX" (0x0008)
Profile Descriptor List:
"OBEX Object Push" (0x1105)
Version: 0x0100

Service Name: OBEX IrMC Sync Server
Service RecHandle: 0x10006
Service Class ID List:
"IrMC Sync" (0x1104)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 8
"OBEX" (0x0008)
Profile Descriptor List:
"IrMC Sync" (0x1104)
Version: 0x0100

Service Name: OBEX Basic Imaging
Service RecHandle: 0x1000a
Service Class ID List:
"Imaging Responder" (0x111b)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 9
"OBEX" (0x0008)
Profile Descriptor List:
"Imaging" (0x111a)
Version: 0x0100

Service Name: OBEX File Transfer
Service RecHandle: 0x1000d
Service Class ID List:
"OBEX File Transfer" (0x1106)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 7
"OBEX" (0x0008)
Profile Descriptor List:
"OBEX File Transfer" (0x1106)
Version: 0x0100

Service Name: HF Voice Gateway
Service RecHandle: 0x1000e
Service Class ID List:
"Handfree Audio Gateway" (0x111f)
"Generic Audio" (0x1203)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 5
Profile Descriptor List:
"Handsfree" (0x111e)
Version: 0x0101

Service Name: OBEX SyncML Client
Service RecHandle: 0x10018
Service Class ID List:
"Error: This is UUID-128" (0x00000002-0000-1000-8000-0002ee000002)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 15
"OBEX" (0x0008)

Service Description: S700 series
Service RecHandle: 0x1001b
Service Class ID List:
"PnP Information" (0x1200)

Service Name: Mouse & Keyboard
Service Description: S700
Service Provider: Sony Ericsson
Service RecHandle: 0x1001c
Service Class ID List:
"Human Interface Device" (0x1124)
Protocol Descriptor List:
"L2CAP" (0x0100)
PSM: 17
"HIDP" (0x0011)
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Human Interface Device" (0x1124)
Version: 0x0100

Для выхода в интернет будем использовать службу Dial-up Networking.В листинге она указана первой, причем подключена она на канале 1 (Channel: 1) и обеспечивает доступ через радио-com порт ("RFCOMM" (0x0003))

Cоздадим /dev/rfcomm0 для постоянной работы с нашим телефоном (имеющим адрес 00:0F:DE:82:22:87) по каналу 1 (которому соответствует служба Dial-up Networking):
# rfcomm bind rfcomm0 00:0F:DE:82:22:87 1

(Если бы нужно было создать устройство только для однократного соединения с телефоном, то надо было бы дать команду:
# rfcomm connect rfcomm0 00:0F:DE:82:22:87 1

). Проверяем, правильно ли работает канал:
# rfcomm show *
rfcomm0: 00:0F:DE:82:22:87 channel 1 clean

Далее необходимо отредактировать файл /etc/bluetooth/rfcomm.conf - для того, чтобы каждый раз при запуске Bluetooth происходила автоматическая привязка к Bluetooth порту нашего мобильного телефона (т.е. к rfcomm0). В данном файле в разделе
rfcomm0 {
# Automatically bind the device at startup
bind no;

последнюю строку меняем на
bind yes;

Указываем также в этом файле BD-адрес нашего телефона и номер канала соединения, меняя соответствующие строки в разделах:
# Bluetooth address of the device
device 00:0F:DE:82:22:87;

# RFCOMM channel for the connection
channel 1;

Далее необходимо сделать так, чтобы служба Bluetooth запускалась при каждом запуске системы. Проще всего это сделать в

KDE меню -> Настройка системы > Advanced -> Системные службы (Runlevel)...

Системные службы (Уровень выполнения): службы.

Выбираем "Режим администратора"

В "Режиме администратора" выделяем bluetooth

Внизу, в разделе "Служба будет запущена в следующих уровнях", выбираем: 3 и 5 (а также 2, если Вы когда-либо работаете на этом уровне).

Завершить
Часть 2. Настройка соединения с интернетом через мобильный телефон посредством GPRS

Теперь настраиваем GPRS соединение с интернетом через Bluetooth. Это можно сделать различными способами - для каждого из них устройство /dev/rfcomm0 будет фигурировать как модем. Ниже приведено описание подключения в графической среде KDE 3.5.1 с использованием утилиты kppp. Подключение другим способом (например, через KInternet) будет во многом аналогичным.

KDE меню -> Интернет -> Телефонное соединение (kppp)
Настроить... Параметры kppp:

Соединения...
Создать...

Ручная настройка:

Имя соединения: Beeline-GPRS [вводим желаемое имя]

Номер телефона: Добавить: *99#

Авторизация: PAP/CHAP

Сохранить пароль: да

Тип Callback, нет

Модемы...
Создать...

Устройство

Имя модема: E50-bt [вводим желаемое имя для модема]

Устройство модема: /dev/rfcomm0

Управление потоком: Программное (XON/XOFF)

Окончание строки: CR

Скорость соединения: 115200

Использовать lock-файл: да

Тайм-аут модема: 120 с

Модем

Дождаться сигнала в линии перед набором номера: нет

Ожидание при занятой линии: 0 с

Громкость динамика модема: среднее [значения не имеет]

Команды модема... Редактирование команд модема...

Строка инициализации 1:
AT+CGDCONT=1, "IP", "internet.beeline.ru"


Строка инициализации 2: [пусто]

Опросить модем...
Результаты опроса модема:
ATI: Nokia
ATI1: CXC125935
ATI2:
ATI3: Nokia E50 Bluetooth Modem
ATI4:
ATI5: Configuration Settings on Channel 0 &C: 1 &D: 0 *EIAC: 1,1,"Beeline WAP GPRS" *EIAC: 2,1,"Beeline MMS GPRS" *EIAC: 3,1,"Beeline gprs-internet" *ELIN: 1 +CBST: 0,0,1 +CDIP: 0,2 +CGACT: 1, 0 +CGACT: 2, 0 +CGACT: 3, 0 +CGATT: 0 +CGDCONT: 1,"IP","intern...
ATI6:
ATI7:
ATI8: Modem Configuration Profile Product Type Terminal Adapter Interfaces Bluetooth, IrDA, RS-232 Options OBEX, PPP, RLP, V42bis

Разное

Тайм-аут pppd: 60 с

Встроить в панель при соединении: да

Автодозвон при разъдинении: да

Автодозвон при NO CARRIER: нет

Показывать время в строке заголовка: да

Разъединиться при остановке X-сервера: да

Выход при разъединении: нет

Свернуть окно при соединении: да


Теперь в главном окне kppp выбираем:

Соединение с: Beeline-GPRS

Имя пользователя:beeline [можно указать любое другое, значения не имеет]

Пароль:beeline [можно указать любой, значения не имеет]

Показать окно журнала: да


Подключиться...

Если все было сделано правильно, происходит подключение (справа внизу появится значок kppp). Можно работать в интернете.

Примечание. При составлении была использована статья: Андрей Бешков. Bluetooth + Linux, или Синий зуб на службе cистемного администратора // Системный администратор, 2004, 10.


Дальше...