Настройка Bluetooth : мобильный телефон

Материал из Википедии - свободной энциклопедии.

Содержание

Часть первая

Настройка bluetooth-адаптера

Устанавливаем пакет bluez-utils

root# apt-get install bluez-utils

Правим его конфиги

root# cat /etc/bluetooth/hcid.conf
options {
        autoinit yes;
        security auto;
        pairing multi;
       }
device {
        name "LLlyPuK.ua";
        class 0x3e0100;
        iscan enable; pscan enable;
        lm accept;
        lp rswitch,hold,sniff,park;
}

Рестартуем bluetooth

root# /etc/init.d/bluez-utils restart
Сединяем телефон с компьютером

В телефоне смотрим имя телефона в настройках bluetooth, также ставим его на обнаружение.

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

root:~# hcitool scan
Scanning ...
        00:16:75:B4:FE:86       LLlyPuK.ua

Этот адрес (00:16:75:B4:FE:86) теперь будет часто фигурировать в настройках и командах.

Определение доступных сервисов на телефоне

root:~# sdptool browse 00:16:75:B4:FE:86
Browsing 00:16:75:B4:FE:86 ...

Service Name: Dial-up networking Gateway
Service Description: Dial-up networking Gateway
Service Provider: Moto-Symbian
Service RecHandle: 0x10001
Service Class ID List:
  "Dialup Networking" (0x1103)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 1
Language Base Attr List:
  code_ISO639: 0x656e
  encoding:    0x6a
  base_offset: 0x100
  code_ISO639: 0x7275
  encoding:    0x6a
  base_offset: 0xc800
Profile Descriptor List:
  "Dialup Networking" (0x1103)
    Version: 0x0100

Здесь Выводится инфа о сервисах поддерживаемых телефоном но нас интересует Service Name: Dial-up networking Gateway а имменно что мспользуется Channel: 1

Настройка портов /dev/rfcomm*

root# cat /etc/bluetooth/rfcomm.conf
rfcomm0 {
  bind yes;
    device 00:16:75:B4:FE:86;
    channel 1;
    comment "Dial-up Networking";
}

device - это адрес нашего телефона, а channel - номер канала из sdptool browse для соответствующего сервиса. rfcomm0 и rfcomm7 выбраны просто по номерам сервисов им соответствуют устройства /dev/rfcomm0.

Если устройства /dev/rfcomm0 нет то его можно создать

rfcomm bind 0 00:16:75:B4:FE:86 1 
Настройка соединения и Wvdial

Устанавливаем pppd и wvdial

root# apt-get install pppd wvdial

Теперь настраиваем wvdial

cat /etc/wvdial.conf
[Dialer Defaults]
modem = /dev/rfcomm0
Dial Command = ATD
Phone = *99#
Username = user
Password = pas
New PPPD = yes
Init1 = ATH
Init2 = ATE1
Init3 = AT+CGDCONT=1, "IP", "internet"

где user-имя пользователя, pas-пароль пользователя, "internet"-АПН, все эти данные берутся у мобильного оператора. В данном случае настройки для мобильного оператора Life:) Украина.

Запускаем wvdial и наслождаемся интернетом.

root:~# wvdial
--> WvDial: Internet dialer version 1.56
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATH
ATH
OK
--> Sending: ATE1
ATE1
OK
--> Sending: AT+CGDCONT=1, "IP", "internet"
AT+CGDCONT=1, "IP", "internet"
OK
--> Modem initialized.
--> Sending: ATD*99#
--> Waiting for carrier.
ATD*99#
CONNECT
--> Carrier detected.  Waiting for prompt.
--> Don't know what to do!  Starting pppd and hoping for the best.
--> Starting pppd at Sat Jan 12 19:37:53 2008
--> Pid of pppd: 3383
--> Using interface ppp0
--> local  IP address 91.145.255.136
--> remote IP address 192.168.100.101
--> primary   DNS address 212.58.160.33
--> secondary DNS address 212.58.160.34

Часть вторая:если у вас все настроено, но не работает из-за обновления bluez-utils

1. Поставить пакет libdbus-1-dev, если не стоит

2. Зайти в в /usr/share/doc/bluez-utils/examples/ и там распаковать файлик passkey-agent.c.gz, комманда gzip -d ./passkey-agent.c.gz

3. выполнить комманду make, должно все собраться и в этом же каталоге появится файлик выполняемый passkey-agent,

4. Запускаем его в формате ./passkey-agent --default <pin> (например вместо pin пишем 1224), оно висит, но это нормально. (Кстати все делается под рутом) //Alice коммент: этот пункт необязательно под рутом

5. В другом приложении выполняем например пересылку файла, в момент запроса пина на мобиле, вводим 1234, все готово, мобили признается компом... ну и можем в мобиле поставить что на комп не спрашивать разрешения подключения.. 6. Для того чтобы с мобилы можно было передавать данные на комп, запускаем из под рута: hciconfig hci0 piscan, все мобила видит комп...


Если у вас в дистре вдруг нет /usr/share/doc/bluez-utils/examples/* (у меня в mandriva не оказалось), тогда берите скомпиленный файлик здесь: http://lafox.net/files/passkey_agent

PS: За подсказку по passkey-agent-у, спасибо Nexus-у и Uukrul-у