Linux + Bluetooth + T630 = Gprs

Полезные советы и программы от пользователей нашего форума.

Модератор: Модераторы разделов

Аватара пользователя
madskull
Сообщения: 1019
Статус: Экс-металлюга

Linux + Bluetooth + T630 = Gprs

Сообщение madskull »


Со временем у меня набралась куча девайсов (BT адаптер, Palm Zire 72, телефон T630,ноутбук и компы) и возникла прямо таки необходимость все это хозяйство подружить. В конце концов, это удалось, но так как память у меня дырявая, пришлось все свои действия заново переосмысливать и записывать. В принципе, всю информацию можно найти в инете, но так как что-то я делал по-своему, то, чтобы снова не забыть, излагаю все письменно. Более или менее оформленную писанину я решил выкладывать на суд общественности. Надеюсь, что это не совсем "изобретение велосипеда" и кому-нибудь поможет. По мере оформления, если это кому-то интересно, выложу статьи про жизнь остальных девайсов.


Итак, действующие лица:
- компутер с Debian
- USB Bluetooth Adapter BT009X
- Sony-Ericsson T630
- оператор МТС

Настройка bluetooth на linux
Устанавливаем пакет bluez-utils

Код: Выделить всё

arena# apt-get install bluez-utils

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

Код: Выделить всё

arena# cat /etc/bluetooth/hcid.conf
options {
        autoinit yes;
        security auto;
        pairing multi;
        pin_helper /usr/bin/bluez-pin;
}
device {
        name "arena";
        class 0x100;
        iscan enable; pscan enable;
        lm accept;
        lp rswitch,hold,sniff,park;
}

arena# cat /etc/bluetooth/pin
1234

arena#

Собственно, здесь можно все оставить без изменений, разве что изменить имя устройства и pin

Рестартуем bluetooth

Код: Выделить всё

arena# /etc/init.d/bluez-utils restart


Настройка телефона
Установка имени девайса: Connectivity->Bluetooth->Options->Phone Name: обзываем его по-своему
Делаем его видимым для неизвестных устройств: Connectivity->Bluetooth->Options->Visibility
Включаем BT: Connectivity->Bluetooth->Turn On
Дружим телефон с компом: Connectivity->Bluetooth->My Devices->New Device
Среди найденных устройств выбираем свой комп и вводим содержимое /etc/bluetooth/pin в качестве пароля.

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

Код: Выделить всё

arena# hcitool scan
Scanning ...
        00:0F:DE:31:E3:E0       myphone

Этот адрес (00:0F:DE:31:E3:E0) теперь будет часто фигурировать в настройках и командах.

Так, устройства познакомлены, можно приступать к настройке связи линукса и телефона.

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

Код: Выделить всё

arena# sdptool browse 00:0F:DE:31:E3:E0
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

arena#

Здесь поскипано то, что в данный момент нас не интересует.

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

Код: Выделить всё

arena# cat /etc/bluetooth/rfcomm.conf
rfcomm1 {
  bind yes;
    device 00:0F:DE:31:E3:E0;
    channel 1;
    comment "Dial-up Networking";
}

arena#

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


Настройка GPRS в linux
Устанавливаем pppd

Код: Выделить всё

arena# apt-get install pppd


Создаем новое соединение gprs

Код: Выделить всё

arena# cat /etc/ppp/peers/gprs
/dev/rfcomm1 115200
connect "/usr/sbin/chat -v -f /etc/chatscripts/gprs"
local
ipcp-accept-local
ipcp-accept-remote
-pap
noipdefault
defaultroute
usepeerdns

arena# cat /etc/chatscripts/gprs
ABORT "BUSY"
ABORT "NO CARRIER"
ABORT "NO DIALTONE"
""    ATZ
"OK" "AT+CGDCONT=1,\"IP\",\"internet.mts.ru\",\"0.0.0.0\",0,0"
"OK" "ATD*99***1#"
TIMEOUT 30
CONNECT

arena# cat /etc/ppp/pap-secrets
mts * mts *

arena#

Еще нужно обнулить файл /etc/ppp/options и не забывать добавлять перевод строки в конце последних строк конфигов.
В /etc/chatscripts/gprs в строке "OK" "AT+CGDCONT=1.... единица - это CID соединения в телефоне. Если в самом телефоне GPRS не настраивалось, то оно появится автоматически с указанным CID после первого коннекта. Если же оно уже есть, то можно использовать существующую запись, или указать CID с несуществующим номером (справедливо, по крайней мере, для моего T630).

Это настройки для MTS, соответственно, для других операторов содержимое /etc/chatscripts/gprs и cat /etc/ppp/pap-secrets будет отличаться.
Еще пару слов о pppd. Так как он не умеет заменять default route, то придется делать это насильно. В Debian это можно сделать так.

Код: Выделить всё

arena# cat /etc/ppp/ip-up.d/0route
#!/bin/sh

route del default
route add default gw $5

arena# chmod 755 /etc/ppp/ip-up.d/0route

Вот теперь шлюз по умолчанию показывает куда надо.

Copyright © madskull
ArchLinux / IceWM
Спасибо сказали:
Аватара пользователя
Crazy_lamer
Сообщения: 30

Re: Linux + Bluetooth + T630 = Gprs

Сообщение Crazy_lamer »

В ядре 2.6 есть два варианта поддержки bluetooth(в отделном пункте или в настройках usb)
Какой вариант использовали вы, и какие версии пакетов bluez?
Без этого помоему сложновато будет настроить bluetooth если возникнут какие-нибудь проблемы.
Спасибо сказали:
Аватара пользователя
madskull
Сообщения: 1019
Статус: Экс-металлюга

Re: Linux + Bluetooth + T630 = Gprs

Сообщение madskull »

Все это безобразие работает на стандартном дебиановском 2.4.27-1-386 ядре и самосборном 2.6.7.
Модуль - bluez в 2.4.27, bluetooth в 2.6.7
В 2.6.7 включается в Device Drivers->Networking support->Bluetooth subsystem support

Пакеты указанные в опусе: bluez-utils 2.10-2
ArchLinux / IceWM
Спасибо сказали:
Аватара пользователя
Crazy_lamer
Сообщения: 30

Re: Linux + Bluetooth + T630 = Gprs

Сообщение Crazy_lamer »

в rpm-base дистре настроил....
а в debian - никак(
добавил в sources.list
deb http://bluez.sourceforge.net/download/debian/woody/ ./
поставил пакеты.

но гдеже скрипт инициализации bluetooth адаптера? в rpm-base он был /etc/init.d/bluetooth
debian woody r4

помогите ламеру разобраться))
Спасибо сказали:
Yoda
Сообщения: 1

Re: Linux + Bluetooth + T630 = Gprs

Сообщение Yoda »

madskull писал(а):
26.11.2004 16:23
...
Еще пару слов о pppd. Так как он не умеет заменять default route, то придется делать это насильно. В Debian это можно сделать так.
...

Теперь уже можно не шаманствовать. Используем опцию pppd 'replacedefaultroute':

Код: Выделить всё

...
defaultroute
replacedefaultroute
...
Спасибо сказали:
Аватара пользователя
deisler
Сообщения: 250

Re: Linux + Bluetooth + T630 = Gprs

Сообщение deisler »

Линукс поддерживает работу с usb адаптером bluetooth?
Всех благ.
Спасибо сказали:
Аватара пользователя
brob
Сообщения: 389

Re: Linux + Bluetooth + T630 = Gprs

Сообщение brob »

Линукс поддерживает usb-bluetooth ключики (где-то видел даже полный список поддерживаемых ключиков)!
Мясо должно быть холодным, женщина горячей, а пива МНОГО!!!!

brabys@jabber.ru
Спасибо сказали:
Аватара пользователя
NIK1910
Сообщения: 269
ОС: SlackWare

Re: Linux + Bluetooth + T630 = Gprs

Сообщение NIK1910 »

Тоже собираюсь прикупить usb-bluetooth адаптер, вот здесь нашел список http://www.holtmann.org/linux/bluetooth/devices.html
Спасибо сказали:
Аватара пользователя
brob
Сообщения: 389

Re: Linux + Bluetooth + T630 = Gprs

Сообщение brob »

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

brabys@jabber.ru
Спасибо сказали:
Аватара пользователя
deisler
Сообщения: 250

Re: Linux + Bluetooth + T630 = Gprs

Сообщение deisler »

Отличная статья, купил sony ericsson w550i и usb bluetooth adapter broadcom в евросети, всё работает как по маслу =)
Всех благ.
Спасибо сказали:
Аватара пользователя
Мак Сим
Сообщения: 231
ОС: Ubuntu 9.04

Re: Linux + Bluetooth + T630 = Gprs

Сообщение Мак Сим »

Дополнение к статье. (вдруг кому пригодися)

Если у вас как и у меня на автомате не создастся /dev/rfcomm0 то его надо создать принудительно. Делается сиё командой
rfcomm bind 0 MAK_адрес 1

Где ноль это /dev/rfcomm0, а один это номер канала.
2:5020/8086.465
Мой открытый PGP-ключ тут
Dell Inspiron 2200 - Debian(testing)
Спасибо сказали: