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

    Подробнее
    Реклама
    Комментарии 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
                                                                mariner, поправьте, пожалуйста, неточности.
                                                                В четвертой части монтируется путь "/media/mobile" а просматривается и размонтируется уже "/media/bluetooth"
                                                              • 0
                                                                Спасибо за статью! Но у меня по ls /media/mobile видит только директории. И ни одного файла. Кто-нибудь подскажет решение?

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