Bluetooth и Linux на примере Nokia 7650
Аппаратное обеспечение
Статья была опубликована 1 февраля 2010 года в 00:00, а последний раз правилась 1 февраля 2010 года в 10:46.
Постоянная ссылка: http://www.nixp.ru/articles/30.html
Одной из причин на покупку моего телефона, Nokia 7650, была поддержка Bluetooth, и мне пришлось потрудиться, чтобы настроить его под Linux, и использовать телефон в качестве простой цифровой камеры и т.п.
Автор оригинала: Maarten Stolte Прочитать оригинал >>
Одной из причин на покупку моего телефона, Nokia 7650, была поддержка Bluetooth, и мне пришлось потрудиться, чтобы настроить его под Linux, и использовать телефон в качестве простой цифровой камеры и т.п. В этой статье я и опишу, чего мне удалось добиться. Однако, проблем с поддержкой bluetooth у Linux хватает, особенно с точки зрения приложений. Например, я так и не настроил синхронизацию календаря и адресной книжки…
Bluetooth, изобретенный голландским инженером в шведской корпорации Ericsson в 1994 году, получил свою название от Harald’а Blaatand (на английском «Bluetooth») II, короля Дании 940—981 годов до нашей эры, который был хорошим связным. Связь предназначена для подключения электронных устройств путем использования коротких радио-сигналов на дистанции не более чем, примерно, 10 метров. Скорость передачи данных составляет 1 МБит/с, из которых 20 процентов может расходоваться на посторонние вещи (header-информация и т.п.).
Существует множество устройств, поддерживающих bluetooth, среди них телефоны, КПК, принтеры и клавиатуры. Большинство из них могут быть использованы в Linux, однако, как я уже писал в введении, статья посвящена телефонам.
Существует четыре реализации bluetooth в Linux, но только Bluez и Affix распространяются под лицензией GPL. Я решил остановиться на Bluez, т.к. он присутствует в 2.4-ядрах Red Hat Linux, дистрибутива, который я использовал при написании этой статьи. Он является выбором многих других дистрибутивов, таких как SuSE, Mandrake, Debian и Gentoo.
Вам потребуются следующие установленные пакеты:
- bluez-libs
- bluez-sdp
- bluez-utils
- gnome-bluetooth
После установки необходимо ввести свой bluetooth pincode под root’ом:
# echo "your_pin_here" > /etc/bluetooth/pin
В «/etc/bluetooth/hcid.conf» укажите название своего bluetooth-устройства, чтобы он мог быть распознан компьютером при сканировании на наличие bluetooth-устройств в дальнейшем.
Запустите bluetooth daemon:
# /etc/init.d/bluetooth start
Теперь пора проверить пару вещей, запустим hciconfig:
$ /usr/sbin/hciconfig -a
hci0: Type: USB BD Address: 00:00:00:00:00:00 ACL MTU: 192:8 SCO MTU: 64:8 UP RUNNING PSCAN ISCAN RX bytes:331 acl:1 sco:0 events:46 errors:0 TX bytes:1412 acl:0 sco:0 commands:39 errors:0 Features: 0xff 0xff 0x0f 0x00 Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 Link policy: HOLD SNIFF PARK Link mode: SLAVE ACCEPT Name: 'BlueZ' Class: 0x000100 Service Classes: Unspecified Device Class: Computer, Uncategorized HCI Ver: 1.1 (0x1) HCI Rev: 0x1e7 LMP Ver: 1.1 (0x1) LMP Subver: 0x1e7 Manufacturer: Cambridge Silicon Radio (10)
Как мы видим, все работает после запуска инициализационного bluetooth-скрипта. Проверим, нашелся ли наш телефон:
$ hcitool scan
Scanning ... 00:02:EE:A0:25:90 Nokia7650
Если телефон не найден, проверьте, включен ли bluetooth в его настройках. Посмотрим, способен ли телефон на все, о чем говорилось в рекламе Nokia:
$ sdptool browse 00:02:EE:A0:25:90
Browsing 00:02:EE:A0:25:90 ... Service Name: Fax Service RecHandle: 0x10000 Service Class ID List: "Fax" (0x1111) "Generic Telephony" (0x1204) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 1 Profile Descriptor List: "Fax" (0x1111) Version: 0x0100
Service Name: Dial-up Networking Service RecHandle: 0x10001 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
Service Name: Bluetooth Serial Port Service RecHandle: 0x10003 Service Class ID List: "Serial Port" (0x1101) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 2 Language Base Attr List: code_ISO639: 0x656e encoding: 0x6a base_offset: 0x100
Service Name: OBEX Object Push Service RecHandle: 0x10004 Service Class ID List: "OBEX Object Push" (0x1105) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 9 "OBEX" (0x0008) Profile Descriptor List: "OBEX Object Push" (0x1105) Version: 0x0100
Service Name: OBEX File Transfer Service RecHandle: 0x1000d Service Class ID List: "OBEX File Transfer" (0x1106) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 10 "OBEX" (0x0008) Profile Descriptor List: "OBEX File Transfer" (0x1106) Version: 0x0100
Похоже, все в порядке.
Пора поиграться с тем, что откроет нам доступ ко всем сервисам. Во-первых, это OpenOBEX — open-source версия протокола Object Exchange (OBEX). По словам самого проекта, «OBEX — протокол сессий, и может быть лучше всего описан как бинарный HTTP-протокол». Он используется для отправки/закачки файлов между bluetooth-устройствами.
OpenOBEX должен быть установлен после всех проинсталлированных нами до этого rpm.
Для использования протокола OpenOBEX мы обратимся к GNOME, так как похоже, что для него существует наиболее зрелое ПО подобного рода (и очень простое в использовании). Если вам не нравится GNOME или вы предпочитаете только CLI, то можете подыскать и другие достойные OBEX-программы.
Теперь мы можем закчивать файлы на телефон, но для начала попробуем определить адрес телефона:
- запустите (под обычным пользователем)
$ gnome-bluetooth-admin
и нажмите [scan].
Через несколько секунд появится список bluetooth-устройств. При выборе какого-либо из них должны появится его возможности и сетевой адрес.
Теперь, когда мы знаем адрес телефона, можем загрузить на него файл с помощью команды «gnome-obex-send»:
$ gnome-obex-send -dest 00:02:EE:A0:25:90 Nokia_7650_RemoteSync.SIS
Таким образом файл перекачается в основную папку телефона, как только появится соответствующая надпись на телефоне.
Для обратного процесса, перекачивания файлов из телефона на компьютер, выберите «Bluetooth file sharing» в главном меню в «system tools > more system tools». Теперь в Gnome появится иконка с bluetooth. Когда что-нибудь будет отправляться с телефона на ПК, иконка будет начинать двигаться, а файлы помещаться в домашний каталог.
- Zur Zeit als die Pinguine blaue Z?hne bekamen (in German), Marcel Holtmann: http://www.holtmann.org/papers/bluetooth/uptimes2003.html;
- Bluez, Official Linux Bluetooth protocol stack: http://www.bluez.org/;
- OpenOBEX: http://openobex.sourceforge.net/;
- The Fedora Project: http://fedora.redhat.com/;
- GNOME Bluetooth Subsystem: http://usefulinc.com/software/gnome-bluetooth/;
- Bluetooth and Linux, links by Marcel Holtmann: http://www.holtmann.org/linux/bluetooth/;
- Tux logo modified by Melissa van Putten: http://lizzy.orangenose.com/.
-
Популярные в этом разделе:
- «Работа с USB-ключом eToken PRO под Slackware 12.2»,
- «Настройка мультимедийной клавиатуры»,
- «Рецепт приготовления Win-принтера для печати из Linux».
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1