Bluetooth в Linux - это просто!

Oct 17, 2009 00:15


1. Вступление

А вы знаете, что настроить bluetooth соединение с PC на Linux совсем не сложно?

Итак, сейчас мы создадим подключение к телефону\PDA, примонтируем файловую систему телефона к оной на ПК и создадим GPRS\EDGE подключение.

Железо, на котором тестировал - ноутбук ASUS M51TR, мобилки - Motorola L9, Motorola E398. Все это на Kubuntu 8.10.

Необходимые пакеты:

* fuse-utils
* obexftp
* obexfs
* obextool
* bluez-utils

2. Находим телефон.

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

С помощью sdptool ищем наш телефон в зоне досягаемости:
sdptool browse

Она выведет в терминал что-то вроде этого:
Inquiring …
Browsing 00:17:E4:1B:D2:E3 …

Где 00:17:E4:1B:D2:E3 и есть мак-адрес.

А далее последуют описания сервисов, которые предоставляет сотовый телефон, например, для Dial-Up Networking:
Service Name: Dial-up Networking Gateway
Service Description: Dial-up Networking Gateway
Service Provider: Motorola
Service RecHandle: 0×10001
Service Class ID List:
«Dialup Networking» (0×1103)
Protocol Descriptor List:
«L2CAP» (0×0100)
«RFCOMM» (0×0003)
Channel: 1
[сократил, так как много не нужной нам инфы]

Жирным выше я выделил ключевые моменты.
Service Name - название сервиса.
Service Provider - в большинстве случаев - модель телефона (полезно, когда найдено много устройств).
Channel - второй обязательный пункт, после MAC-адреса.

Ицем номера каналов для нужных сервисов (DUN, FTP) и регистрируем:
sdptool add DUN
sdptool add FTP

3. Подключаем

Редактируем файл /etc/bluetooth/rfcomm.conf, добавляя подключения:

rfcomm0 {
bind yes;
device 00:17:E4:1B:D2:E3;
channel 1;
comment «Dialup Networking Gateway»;
}

bind - автоматически подключать устройство при старте системы,
device - MAC-адрес,
channel - канал.

Каждый новый сервис добавляется как rfcommN, где N - число. Элементарно, просто страхуюсь

Сохраняемся и проверяем работоспособность:
sudo rfcomm bind all
rfcomm

Получаем на выхлопе следующее:
rfcomm0: 00:17:E4:1B:D2:E3 channel 1 clean
rfcomm1: 00:17:E4:1B:D2:E3 channel 9 clean
rfcomm2: 00:17:E4:1B:D2:E3 channel 8 clean

Если так, то все ОК, девайсы найдены и подключены, если нет - проверьте rfcomm.conf

4. Монтируем

Нужен сервис - OBEX FTP.

Создаем точку монтирования:
sudo mkdir -m777 /media/bluetooth

Добавляем пользователя в группу fuse, что бы он мог монтировать ФС:
sudo usermod -aG fuse username

Монтируем*:
obexfs -b00:17:E4:1B:D2:E3 -B9 /media/mobile
-b = MAC
-B = channel

или
obexfs -t /dev/rfcomm0 /media/mobile

Затем:
cd /media/bluetooth
ls

Вуаля:
audio MMC(Removable) picture video

Размонтирование, все просто:
umount /media/bluetooth

*Возможно при первом подключении будет выдан запрос на спаривание устройств. Введите, например, «1234» на телефоне, а затем на ПК.

5. GPRS\EDGE

Нужен сервис - DUN (Dial-Up Networking)
У меня KDE, так что запускаем kppp.
Configure -> Modems -> New -> Device,
где Modem device сконфигуренный вами девайс\канал для DUN (см. /etc/bluetooth/rfcomm.conf)

Все там же: переходим на таб Modem->Modem Commands
(дальше настройки для белорусского MТС, смотрите на сайте оператора):
Initialization String 1: AT+CGDCONT=1,«IP»,«mts»
Initialization String 2: ATZ

Что бы проверить, нажмите Query Modem.

Модем настроен, настраиваем подключение:
Главное окошко настроек -> Accounts -> New -> Manual Setup
Указываем имя, допустим, MTS BY
Добавляем новер телефона: *99#

Готово. Выбираем в kppp аккаунт и модем, и в сеть!
(kppp->use modem -> %configured modem% ->Connect)

Спасибо за внимание!

Originally published at О, мой блох!. You can comment here or there.

bluetooth, ubuntu, nix, linux

Previous post Next post
Up