Пользователь
0,0
рейтинг
10 марта 2009 в 00:03

Администрирование → Bluetooth в Linux

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: переименовал топик, что бы не путать ;)
Alex Oleskevich @mariner
карма
80,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Администрирование

Комментарии (45)

  • 0
    Респект за статью! Сам не давно перерыл инет в поисках способов работы с телефоном в Ubuntu 8.10. Правда у меня была проблема на самом первом этапе — штаттный BT адаптер(Asus F8V) упорно отказывался видеться под убунтой. Пришлось юзать usb девайс.
  • +24
    да уж, проще не бывает.))
  • +1
    недавно подключал свой N70 через жуткий интерфейс obexftp, а тут решение предложено. спасибо!
  • 0
    Спасибо большое, ибо это на данный момент самая внятная статья о bluetooth в linux :)
    • +2
      gentoo-wiki не смотрели?
  • НЛО прилетело и опубликовало эту надпись здесь
  • +2
    Хочу от себя добавить рассказ о том, как через bluetooth синхронизировать смартфон nokia (возможно и другие аппараты) с kdepim или evolution. Надеюсь автор не против.
    Ну и ссылка karapuzz.blogspot.com/2009/03/nokia-linux-bluetooth.html
    • 0
      неа, не против. я как раз планировал написать еще о синхронизации тел. книги, контактов телефона с ПК. А так же о работе с телефоном под linux ;)
  • +5
    Заголовок — шутка???
  • 0
    Здесь еще не хватает описания настройки подключение через PAN/NAP: некоторые коммуникаторы не поддерживают DUN и вместо него используют PAN.
  • +1
    Я из лесу вышел, был сильный мороз… (с) Некрасов, Николай.

    Ведь есть же blueman-project.org/, который:

    Blueman is a GTK+ Bluetooth Manager

    и умеет:
    * Connecting to 3G/EDGE/GPRS via dial-up
    * Connecting to/Creating bluetooth networks
    * Connecting to input devices
    * Connecting to audio devices
    * Sending/Receiving/Browsing files via OBEX
    * Pairing

    В общем рекомендую.
    • 0
      да-да, только вот у меня почему-то ничего не работает. то есть устройства он ищет, а вот подключится к ним — уже никак :(
    • 0
      А еще есть мандрива, где по BT интернет соединение настраивается проще чем в винде. а в gnome вообще никогда не было проблем соединения по BT с телефонами для передачи фалов (комуникатор на WM только не удалось — хотя оно и в винде не очень то работало)
    • 0
      консоль — это святое! ;)
  • НЛО прилетело и опубликовало эту надпись здесь
  • 0
    У меня во время выполнения команды obexfs телефон пишет «ошибка при подключении Bluetooth» и ничего не монтируется. Телефон nokia 6300. Не подскажете, что с этим можно сделать?
    • 0
      Похоже не сопрягается. Знаю что у opensuse 11.1 и kubentu 8.10 были проблему с bluetooth. Посмотрите тут https://bugzilla.novell.com/show_bug.cgi?id=461369 может поможет.
      • 0
        Чтение треда не помогло, но всё равно спасибо.
    • 0
      сегодня проверю. как раз есть такой телефон.
  • 0
    За статью респект, вот только с заголовком не очень вяжется ;)

    «Просто» — это как было у меня (в Федоре10). Купил первый попавшийся USB-«свисток», воткнул — в трее появилась иконка блютуса — правой кнопкой — «Найти устройства» — «Да, вот это мой телефон» — «Передать в него файл» — «Вот этот» — «Понеслась». Примерно так :)
  • –1
    даа… представляю как новый пользователь линукса, купив например Asus, будет радостно настраивать интернет через мобилку… ага.

    Я конечно против линукса ничего (для себя) не имею. И пользуюсь только им. Но меня всегда умиляют возвышенные возгласы тех, кто хочет перевести на него всех домохозяек и менеджеров… ну ну…
    объясняйте им потом почему «воткнул и работает» — это не юникс вэй… :)

    Хотя сейчас виндовс-подражатели типа Ubuntu\Fedora позволяют настроить всё даже быстрее чем в винде.
  • 0
    Я просто в шоке НАСКОЛЬКО ЭТО ПРОСТО!!!
    А теперь FAQ для винды от меня:
    Вам НЕ НУЖНО знать MAC адрес вашего устройства!
    Заходите в Мой Компьютер->Bluetooth окружение и в меню слева жмите Поиск устройств в зоне досягаемости.
    Когда увидите свое устройство жмите два раза на него и перед вами будет список сервисов(если требуется введите PIN одинаковый на обоих устройствах).
    ВСЕ!!! Вот это просто!

    В Linux я вижу по коментам уже есть специальные менеджеры. Гуру командной строки респект и уважуха.
    • 0
      Если повезёт с моделью, то в венде это просто. Если не повезёт, то настройка в венде блутуса — шаманство ещё то…
    • 0
      в KDE3 достаточно просто тыкнуть по иконке блютуза в трее, что бы запустить файловый манагер с автомонтированием фс телефона. И начать работать, как с ftp ;)
    • 0
      ага, перед этим купив програмку по типу BlueSoleil
    • 0
      ВСЕ!!! Вот это просто!

      … а если чего-то не получается, то читаете тему Bluetooth и драйвера. Смотреть ПЕРВУЮ страницу! на форуме iXBT.com. Возможно, решение найдётся на одной из ~ 166 страниц.
      • +1
        Не хочу даже начинать холиварить тут…

        Люблю Linux за то, что это другой тип мышления… Но сложность и неочевидность некоторых действий иногда удручает.

        Windows — жми любую кнопку
        Linux — кури маны…
        • 0
          Так разработчики Linux просто отбросили принцип простоты Unix. Чему тут удивляться?
    • 0
      так-так… а не подскажите, как настроить gprs-инет через bt в vista? простите за мат, я заебался
      хотя бы скажите, из какой менюшки можно прописать строку инициализации?
      • 0
        это в настройках модема ищите. по крайней мере, в ХР так было. как в висте — я не знаю )
        (Панель управления\Телефон и модем)
  • 0
    А опыта подключения cdma телефонов у вас случаем нет?
    Есть трубки motorola L7c и V3c как добраться до внутренней памяти телефона на них из linux?
    • 0
      неа, никогда не пользовался. дожно все быть также (по блютуз) или посмотрите проект moto4lin
      • 0
        moto4lin ничего не дал. С gms L7e работало кое-как. С L7c так и не получилось завести.
        По блутусу L7c отдает карту, V3c отдает только три папки (видео/звуки/картинки).

        • 0
          А остальные папки скрыты, GSM тоже только их (мультимедиа) показывает. Тут уже надо спец софт для остальных папок. Или, в теории, попробовать принудительно перейти, допустим, в mms или system. Но не факт, что сработает.
  • 0
    А может быть лучше использовать пакет blueman, заменяет стандартный пакет для работы с bluethoot, не нужно не каких настроек в консоли конфигах все делается в GUI и очень удобно. Позволяет управляет устройствами, определяет качество сигнала, скорость обмена данными, отправлять принимать файли, просматривает устройство (но я еще не тестил эту фишку), в 2 клика подключается GPRS\EDGE через связку с NetworkManager (нажимаем в меню дозвониться до GPRS/3G, в NetworkManager менаджера автоматом предлагает выбрать оператора у меня Россия/Мегафон Северо-Запад и все мы уже в инете).
  • +1
    Bluetooth в Linux — это настолько просто, что вряд ли нуждается в еще одной статье. От себя добавлю что канал нужного сервиса наиболее просто выяснить так:

    sdptool search --bdaddr 00:00:00:00:00:00 DUN | grep Channel

    а выснить MAC легко из:

    hcitool scan
  • 0
    Страсти какие-то. Я для простой передачи файлов свой старенький Самсунг в Убунте вообще не выходя в терминал подключил, фактически одной мышкой. Используя только стандартные средства. Подключить как модем не пробовал, но думаю, что и с этим никаких проблем не будет. Уж чего-чего, но блютус это то немногое из оборудования, что в линуксах заводится легче, чем в винде.
  • 0
    Отличная статья, спасибо. Вот ещё бы блютуз-стереогарнитуру приживить (Motorola S9)…
  • 0
    Просто?????? Сплошные консоли и конфиги
    • 0
      Боже мой, какой ужас. Просто кошмар.
  • 0
    У меня покороче вышло, но ничего я не монтировал — цель лишь интернет.
    Буду признателен за аргументированные комментарии
    openmanual.ru/article/10/?ref=habr
  • 0
  • 0
    mariner, поправьте, пожалуйста, неточности.
    В четвертой части монтируется путь "/media/mobile" а просматривается и размонтируется уже "/media/bluetooth"
    • 0
      спасибо, поправил
  • 0
    Спасибо за статью! Но у меня по ls /media/mobile видит только директории. И ни одного файла. Кто-нибудь подскажет решение?

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