Как стать автором
Обновить

Bluetooth в Linux

Время на прочтение3 мин
Количество просмотров53K

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: 0x10001
Service Class ID List:
"Dialup Networking" (0x1103)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
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/mobile

Добавляем пользователя в группу 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/mobile
ls


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

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

*Возможно при первом подключении будет выдан запрос на спаривание устройств. Введите, например, «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# или *99***1#.

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

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

UPD: переименовал топик, что бы не путать ;)
Теги:
Хабы:
Всего голосов 53: ↑50 и ↓3+47
Комментарии45

Публикации

Истории

Ближайшие события

28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
2 – 18 декабря
Yandex DataLens Festival 2024
МоскваОнлайн
11 – 13 декабря
Международная конференция по AI/ML «AI Journey»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань