Наши партнеры

UnixForum






Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Тематический каталог -> Аппаратное обеспечение

Использование телефона с Bluetooth в Linux

Оригинал: Using a Bluetooth phone with Linux
Автор: Ryan Paul
Дата: 10 декабря 2007
Перевод: Андрей Матвеев aka arilou649
Дата перевода: 16 декабря 2007

При копировании материала обязательны указание автора, переводчика и ссылки на оригинал статьи и настоящую страницу как первоисточник перевода!

Мой старый мобильный телефон, который в последние месяцы своего жалкого существования был скреплен липкой лентой, в конце концов был заменен на более современный. Сначала я собирался взять программируемый, Linux-телефон типа RAZR2V8 или FIC Neo1973. Но, к несчастью, я являюсь постоянным клиентом Verzion. Это означает что у меня крайне ограниченные возможности выбора - по крайней мере пока Verzion не завершит свой план по открытию сетевых стандартов. В итоге я взял модель vx8550, которая является аналогом LG Chocolate, причем аналогом ущербным. Это мой первый телефон с поддержкой Bluetooth, поэтому вчера я потратил некоторое время на изучение способов использования Bluetooth в Linux. Это краткий обзор того, чему я научился.

Мой настольный компьютер не имеет встроенной поддержки Bluetooth, поэтому я воспользовался дешевым USB Bluetooth-адаптером. Первым делом я проинсталлировал утилиты GNOME Bluetooth. В Ubuntu это пакет gnome-bluetooth. Я также установил пакет gnome-vfs-obexftp, который позволяет использовать файловый менеджер GNOME для обмена файлами между компьютером и Bluetooth-телефоном, поддерживающим протокол Object Exchange (OBEX).

Когда пакеты были установлены, я подключил свой адаптер, после чего иконка Bluetooth появилась на панели задач.

Я открыл диалог Bluetooth Preferences, нажав правую кнопку мыши на иконке и выбрав Preferences.

Чтобы соединить телефон с компьютером, я должен перевести компьютер в режим обнаружения. Это можно сделать, изменив режим работы (Mode of Operation): нужно выбрать пункт Visible and connectable for other devices. Затем, уже на телефоне, я вышел в меню Bluetooth и запустил поиск доступных устройств Bluetooth. Мой компьютер был найден, и я ввел код-пароль. Этот пароль может быть любым, но его нужно помнить. Затем система GNOME Bluetooth на настольном компьютере вывела сообщение, что некое устройство пытается подключиться к системе. Для завершения подключения щелкните на всплывшем сообщении и введите код-пароль. Когда телефон и компьютер были соеденены, я снова открыл диалог Bluetooth Preferences и в списке привязанных устройств (Bonded Devices) увидел свой телефон. Щелкнув на нем, я нажал на кнопку Set Trusted (Сделать доверенным).

Когда подключение завершено, доступ к файлам можно получить напрямую из файлового менеджера GNOME Nautilus. Вы можете открыть любое окно Nautilus и ввести в строке пути obex:// для получения списка подключенных телефонов. Щелкнув два раза на нужном телефоне, вы увидите обычный список файлов. Теперь можно перекачивать файлы между компьютером и телефоном, просто перетягивая их мышью. Используя этот метод, я получил доступ к звукам, изображениям и видеозаписям, хранившимся на моем телефоне.

Использование Bitpim

Несмотря на то, что встроенная в Nautilus поддержка обмена файлами по протоколу OBEX очень проста для использования, она не обеспечивает полного доступа к файловой системе устройства и не предоставляет механизма для работы с адресной книгой и календарем. Чтобы получить более полный доступ к содержимому телефона, можно использовать программу c открытым кодом Bitpim. Для этого вам придется либо подключить телефон к компьютеру с помощью USB-кабеля, либо прибегнуть к эмуляции последовательного порта RFCOMM через устройство Bluetooth. В этом руководстве я рассмотрю использование Bluetooth в Bitpim.

Первым делом нужно настроить эмуляцию последовательного порта. Для этого необходима правильная привязка RFCOMM. При этом вам будет нужен MAC-адрес телефона и номер канала, используемый службой BT DIAG. Самый простой способ узнать MAC-адрес - воспользоваться функцией OBEX в Nautilus. Если вы пользуетесь менеджером Nautilus для навигации, то MAC адрес будет виден в строке пути, откуда его можно скопировать и применить в следующих шагах. Кроме этого вам понадобится номер канала BT DIAG, который я получаю с помощью программы sdptool, используя интерфейс командной строки. Я фильтрую вывод с помощью команды awk, получая в результате только нужную мне информацию. Используя MAC-адрес вашего телефона, введите следующую команду:

sdptool browse 00:1c:62:41:6c:89 | awk '/BT DIAG/,/^$/ {print $0 | "grep Channel"}'
Таким образом вы получите номер канала для службы BT DIAG. Мой номер канала - 16. Теперь этот номер и MAC-адрес понадобятся для настройки привязки RFCOMM. Используя ваши значения, добавьте следующую секцию в файл /etc/bluetooth/rfcomm.conf:
rfcomm0 {
   bind yes;
   device 00:1c:62:41:6c:89;
   channel 16;
   comment "Needed for Bitpim"
}
Теперь вам потребуется перезапустить демон Bluetooth, чтобы измененные настройки были применены. В Ubuntu и других основанных на Debian дистрибутивах, это можно сделать с помощью следующей команды:
sudo /etc/init.d/bluetooth restart
Чтобы включить функции последовательного порта, откройте диалог Bluetooth Preferences и отметьте опцию Serial во вкладке Services. Это все, что требуется для настройки привязки RFCOMM. Следующий шаг - конфигурация Bitpim.

Bitpim доступен в репозитории пакетов Ubuntu. Если в вашем дистрибутиве нет этого пакета, вы можете воспользоваться неофициальными пакетами или скачать tar-архив с сайта Bitpim.

Bitpim - довольно типичная программа с открытым исходным кодом: она очень мощна и расширяема, но при этом ужасно выглядит и отличается некоторой нестабильностью. Внимание: при использовании Bitpim, следует помнить, что иногда программа может работать нестабильно, и есть вероятность - пусть и очень маленькая - что ваш телефон пострадает в том случае, если произойдет серьезный сбой.

После запуска Bitpim, зайдите в настройки (Settings) через меню Edit. Выберите ваш телефон в поле Phone Type или с помощью мастера Phone Wizard. Затем нажмите на кнопку Browse рядом с настройкой Com Port. Выберите опцию Bluetooth rfcomm0 и нажмите на ОК. Если вы не видите опции Bluetooth, это означает, что вы допустили ошибку при настройке привязки RFCOMM.

Теперь для получения списка содержимого телефона можно использовать пункт Get Phone Data в меню Data. Это предоставит вам доступ к адресной книге, запискам, задачам, SMS-сообщениям, календарям и другим функциям. Можно также получить доступ к файловой системе телефона, выбрав опцию Filesystem в меню View и кликнув на строке Filesystem в левой панели.

Имейте в виду, что Bitpim поддерживает не все телефоны. Мой vx8550, к примеру, пока вообще не поддерживается. Настроив его как vx8700, я получил доступ к файловой системе, но другие функции пока не работают напрямую. Поддержка дополнительных функций будет добавлена в следующих версиях. Если ваш телефон относительно новый и не достаточно хорошо поддерживается Bitpim, дожидайтесь новых релизов программы.

MP3-рингтоны

Подавляющее большинство телефонов, выпускаемых Verzion, крайне ущербны. Из корыстных соображений Verzion блокирует доступ пользователей к любым функциям, которые не приносят дохода. Несмотря на то, что vx8550 задуман как портативный плеер, он не позволяет пользователю выбрать звуковые файлы из библиотеки в качестве рингтонов. К счастью, с помощью Bitpim можно легко восполнить этот недостаток телефонов Verzion.

Используя интерфейс файловой системы Bitpim, я смог найти директорию, где хранятся рингтоны. Мне удалось также добавить новые. Точное местоположение рингтонов, вероятно, различается у разных моделей. У моего vx8550 это /brew/mod/10899/ringtones. Чтобы добавить MP3-рингтон, скопируйте его в эту директорию с помощью Bitpim. После выключения и включения телефона новые файлы будут видны в меню с рингтонами. Перед закачкой MP3-рингтонов я рекомендую использовать программу типа Audacity для редактирования звуковых файлов, которые не должны быть длиннее 30 секунд.

Видео

Как и многие современные телефоны, мой новый vx8550 имеет встроенную камеру, которая позволяет снимать короткие видеоклипы. Я использовал камеру для записи видео, которое было переписано на компьютер через OBEX. Поверхностный анализ видео показал, что это MPEG-4 с аудио в формате AAC и контейнере 3g2. Я подумал, что можно перекодировать некоторые видео-файлы в такой формат, чтобы телефон мог их проигрывать. В качестве эксперимента я взял файл Xvid и перекодировал первые 120 секунд, создав новый файл такого же формата и разрешения, как и видео, записываемое камерой телефона. Затем я скопировал новый файл на телефон через OBEX. Картинка была очень зернистой, но все работало. Перекодирование я осуществил с помощью ffmpeg (команда записывается в одну строку):

/usr/local/bin/ffmpeg -i input.avi -s 240x192 -r 11.988 -b 192 -ab 56 -t 120 -vcodec mpeg4 -acodec aac ~/output.3g2

Разумеется, указанные значения могут не подходить для других телефонов, но этот метод можно использовать для определения битрейта, разрешения и форматов, используемых вашим телефоном. Пакет ffmpeg из репозитория Ubuntu не поддерживает некоторые форматы по причине несовместимости лицензий. Возможно, для перекодировки видео вам потребуется перекомпилровать ffmpeg с поддержкой libmp3lame и других библиотек.

Другие хитрости

Мне бы хотелось поэкспериментировать с программированием, но, к сожалению, Verzion не предоставляет Java на своих телефонах, предлагая лишь BREW. Как платформа BREW исключительно неприспособлена для любительских разработок. Если вы еще не попали в коварную ловушку Verzion, то есть много вещей, которые можно сделать на Java. К примеру, можно использовать телефон с Bluetooth как пульт дистанционного управления для Amarok.

Большое количество действительно полезной информации можно почерпнуть в различных местах в Интернете, особенно на любительских форумах HowardForums.com. Некоторая информация в этом руководстве неприменима для пользователей KDE. Документация по использованию Bluetooth в KDE доступна на сайте KDE.