Jump to content
Sign in to follow this  
xzolsu

Bluetooth - знакомство и изучение

Recommended Posts

Устройства Bluetooth встречаются довольно часто в наше время. Это простой и дешевый способ добавить поддержку беспроводных технологий для смартфона или любого другого гаджета. Система Linux может использовать различные протоколы: OBEX, A2DP, DUN, HID и другие для взаимодействия с различными устройствами.

Рассмотрим как установить драйвера и настроить связь между двумя устройствами:

ПЕРВОНАЧАЛЬНАЯ НАСТРОЙКА


Большинство Bluetooth адаптеров выполнены в виде USB и могут быть настроены с помощью утилит HCL.

Некоторые устройства, такие как Atheros, требуют для своей работы установленных прошивок в системе.

Для установки всех необходимых программ выполните такую команду:

x@kdeb:/$  sudo apt-get install bluetooth bluez bluez-tools rfkill rfcomm

Дальше установите прошивки для адаптеров Atheros, если это необходимо:

x@kdeb:/$  sudo apt-get install bluez-firmware firmware-atheros

Затем запустите службу управления Bluetooth:

x@kdeb:/$  sudo service bluetooth start

 

СКАНИРОВАНИЕ УСТРОЙСТВ BLUETOOTH


Перед тем, как перейти к сканированию устройств нужно убедиться что ваш bluetooth адаптер подключен и не заблокирован с помощью rfkill:

x@kdeb:/$ sudo rfkill list

Если устройство заблокировано, программной или аппаратной блокировкой, необходимо разблокировать его с помощью команды rfkill:

x@kdeb:/$  sudo rfkill unblock bluetooth

Включить адаптер можно с помощью команды hciconfig:

x@kdeb:/$  sudo hciconfig hci0 up

Дальше можно начать сканирование. Только перед этим убедитесь, что на другом устройстве Bluetooth включен и не находится в скрытом режиме. Для сканирования выполните:

 x@kdeb:/$ sudo hcitool scan

После завершения вы увидите доступное устройство. Здесь будет отображаться его имя и MAC адрес.

Чтобы узнать более подробную информацию об устройстве, вы можете использовать утилиту sdptool:

x@kdeb:/$  sdptool browse D0:B3:3J:64:3A:31

Вы можете сразу отфильтровать какие возможности поддерживает обнаруженное устройство:

x@kdeb:/$  sdptool browse D0:B3:3F:96:2A:30 | grep 'Service Name:'

Также вы можете использовать интерактивный инструмент bluetoothctl:

x@kdeb:/$ bluetoothctl  info D0:B3:3J:64:3A:31

Также вы можете проверить доступность удаленного устройства с помощью утилиты ping:

x@kdeb:/$  sudo l2ping D0:B3:3J:64:3A:31

СОПРЯЖЕНИЕ УСТРОЙСТВ


Для совместной работы устройств Bluetooth нужно настроить их сопряжение. Для этого используется команда RFCOMM. Эта команда требует полномочий суперпользователя. Синтаксис команды такой:

x@kdeb:/$  sudo rfcomm connect устройство_адаптера mac_адрес_цели канал

Например, подключимся к нашему устройству на втором канале:

x@kdeb:/$  sudo rfcomm connect hci0 D0:B3:3J:64:3A:31 2

Теперь на другом устройстве появиться запрос на соединение и вам нужно будет ввести одинаковый pin на обоих устройствах. После этого оно будет доступно через файл /dev/rfcomm0. Не закрывайте терминал, чтобы соединение оставалось активным. Вы можете посмотреть список подключений с помощью hcitool:

x@kdeb:/$  hcitool con

ОТПРАВКА И ПРИЕМ ФАЙЛОВ ПО OBEX


Дальше вы можете очень просто отправить файл на удаленное устройство с помощью протокола OBEX. Синтаксис:

x@kdeb:/$  sudo bt-obex -p MAC_адрес_устройства /путь/к/файлу

Например:

x@kdeb:/$  sudo bt-obex -p D0:B3:3J:64:3A:31 ~/img/some_pic.png

Чтобы получить файл вам нужно запустить сервис obex в режиме прослушивания с помощью опции -s:

x@kdeb:/$  bt-obex -s /path/to/output/folder

Здесь вам нужно указать путь к папке, куда нужно сохранить полученный файл. После выполнения этих настроек Bluetooth, вы можете передать любой файл с телефона. Вы также можете запустить FTP сеанс с устройством, для просмотра файлов, которые на нем есть:

x@kdeb:/$  sudo bt-obex -f MAC_адрес_устройства

ИНТЕРНЕТ ЧЕРЕЗ BLUETOOTH


Раньше использование Dial-up сети было очень популярным. Сейчас эта технология почти не используется. Но, возможно, понадобиться раздать интернет от вашего телефона на компьютер. Для этого можно использовать два протокола: DUN - более старый и BNEP, более похожий на работу локальной сети.

Чтобы определить поддерживает ли устройство работу по протоколу DUN нужно использовать правильный канал rfcomm. Нужно использовать канал 15:

 x@kdeb:/$  sudo rfcomm bind D0:B3:3F:96:2A:30 15

Если протокол поддерживается, то у вас появиться устройство rfcomm0. Дальше вы можете использовать NetworkManager для подключения к сети.

Что касается BNEP, то здесь вам уже не нужно использовать rfcomm, все протоколы будут обрабатываться bluez.

Все что нужно, это Bluez и NetworkManager

  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...