Узнать адрес bluetooth linux

Как в Linux узнать версию Bluetooth для адаптера и периферии

В Linux для управления Bluetooth используются утилиты из пакета, который в Debian и производных называется bluez, а в Arch Linux и производных называется bluez-utils. Но некоторое время назад ряд инструментов для управления Bluetooth были объявлены устаревшими, хотя никакой альтернативы им предложено не было. Разные дистрибутивы решают эту проблему по-разному. В Debian и производных пакет bluez компилируется с флагом, включающим устаревшие инструменты. А в Arch Linux и производных сообществом в AUR поддерживается пакет bluez-utils-compat, который также скомпилирован с флагом, включающим устаревшие инструменты.

Для целей данной статьи понадобятся инструменты hciconfig и hcitool — они относятся к «устаревшим».

В Debian и производных для установки всех инструментов, в том числе объявленных устаревшими, для управления Bluetooth, выполните команду:

В Arch Linux и производных начните с установки pikaur как это показано в статье «Автоматическая установка и обновление пакетов AUR», а затем выполните следующие команды:

sudo pacman -R bluez-hciconfig # если у вас BlackArch pikaur -S bluez-utils-compat

Вы увидите следующее предупреждение:

поиск конфликтующих пакетов из AUR. :: bluez-utils-compat и bluez-utils конфликтуют. Удалить bluez-utils? [y/N]

вам нужно согласиться с заменой пакета bluez-utils на bluez-utils-compat, то есть введите «y».

Далее действия идентичны во всех дистрибутивах.

Как узнать версию Bluetooth компьютера

Обратите внимание на строку, содержащую «HCI Version»:

Эта строка содержит номер версии Bluetooth, на скриншоте это 5.1.

Актуальными на данный момент можно считать версии Bluetooth 4.* и более поздние. На момент написания самой последней версией Bluetooth является 5.2. Уже разработан стандарт 5.3, но устройства с его поддержкой ещё не выпускаются.

Если на вашем дистрибутиве вы столкнулись с ошибкой, что команда hciconfig не найдена, то воспользуйтесь следующей командой (спасибо redking за подсказку):

btmgmt info | awk 'BEGIN$1=="addr"'

Предыдущая команда выводит MAC-адрес вашего Bluetooth адаптера и его версию. Если вам нужна только версия протокола, которую поддерживает Bluetooth вашего компьюютера, то используйте команду:

btmgmt info | awk 'BEGIN$1=="addr"'

Как узнать версию Bluetooth подключаемых устройств

Начните с вывода списка доступных Bluetooth подключений и MAC адресов устройств:

Затем выполните команду вида:

sudo hcitool info MAC_АДРЕС

Предположим, я хочу узнать версию Bluetooth которую имеет Alexey’s S21 Ultra с MAC адресом AC:6C:90:6E:53:EE, тогда команда следующая:

sudo hcitool info AC:6C:90:6E:53:EE

Обратите внимание на строку «LMP Version:», она содержит номер версии Bluetooth, в данном случае это 5.2.

Если команда hcitool не сработала и вы получили ошибку

Requesting information . Can't create connection: Input/output error

то перед выполнением данной команды предварительно выполните сопряжение Bluetooth устройства, версию которого вы хотите проверить.

Связанные статьи:

Источник

Linux + Bluetooth ( Linux + Bluetooth. )

Проверяем, присутствует ли Bluetooth устройство в нашем компьютере:

Bluetooth: Core ver 2.11
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
Bluetooth: L2CAP ver 2.9
Bluetooth: L2CAP socket layer initialized
Bluetooth: RFCOMM socket layer initialized
Bluetooth: RFCOMM TTY layer initialized
Bluetooth: RFCOMM ver 1.8
Bluetooth: HCI USB driver ver 2.9

Инсталлируем необходимые нам пакеты:

Как минимум, для работы будет нужен ещё пакет obex-data-server, он подтянется как зависимость.

После инсталляции пакетов смотрим, что же за Bluetooth устройство у нас в компьютере:

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

hci0:
Type: USB
BD Address: mac.address ACL MTU: 1017:8 SCO MTU: 64:8
UP RUNNING PSCAN ISCAN
RX bytes:957 acl:0 sco:0 events:25 errors:0
TX bytes:348 acl:0 sco:0 commands:25 errors:0
.

Устройство можно включать программным образом или выключать, в дальнейшем нам это пригодится:

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

Сведения об определённых параметрах устройства можно получить с помощью ещё одной команды, например, сейчас мы узнаем MAC адреса всех Bluetooth устройств системы:

Займёмся изучением доступного нам Bluetooth окружения (перед сканированием на предмет обнаружения Bluetooth устройств временно включаем на искомом устройстве режим полной видимости):

После сканирования и обнаружения Bluetooth устройства включаем на нем режим невидимости, в дальнейшем доступ к устройству будем получать по MAC адресу.

Сканируем обнаруженное устройство на предмет поддерживаемых им сервисов:

Вывод, если он есть, обычно очень большой и детальный. Чем устройство дороже и современнее, тем больше технологий и протоколов оно поддерживает.

Проверяем, доступно ли нам Bluetooth устройство:

Вывод на подобии следующего говорит о доступности, в противном случае пакеты не найдут устройство:

Ping: mac.address from mac.address (data size 44) .
0 bytes from mac.address id 0 time 6.99ms
0 bytes from mac.address id 1 time 7.41ms
0 bytes from mac.address id 2 time 14.94ms
.

Наша текущая задача — создать конфигурацию для подключения GPRS через мобильный телефон с интерфейсом Bluetooth. Условия для Bluetooth подключения мы создали, теперь создадим и зафиксируем за нашим сервисом виртуальный порт, который в дальнейшем будем использовать не задумываясь о его настройках.

Редактируем файл /etc/bluetooth/hcid.conf, корректируя данные (ранее мы их получили из вывода команды hcitool scan):

В конфигурации выше ключ «passkey» не используется, но для спокойствия установим его в какое нибудь не слишком очевидное значение, для того, чтобы его нельзя было с ходу подобрать.

Редактируем файл /etc/bluetooth/rfcomm.conf внося туда «мак-адрес» телефона и определяя параметры создаваемого виртуального порта:

Перезапускаем службу Bluetooth для принятия изменений:

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

Как известно, для «спаривания» большей части Bluetooth устройств, в целях безопасности, необходимо передать между ними ключ, иначе говоря «пинкод». Лично я в Debian Lenny делал это двумя способами, далее опишу вначале красивый способ, а потом простой.

В новых версиях Bluez из конфигурации (/etc/bluetooth/hcid.conf) исчезла опция «pin_helper», которая указывала на программу принимающую ПИН-код от пользователя и передающую его удалённому bluetooth-устройству. Теперь эти операции осуществляются через вызовы D-Bus, поэтому, для нормального функционирования, нужно использовать некое приложение, отрабатывающее в D-Bus, например passkey-agent из набора примеров.
Для сборки passkey-agent делаем следующее:

# aptitude install libdbus-1-dev
# cp -R /usr/share/doc/bluez-utils/examples/ /usr/src/
# cd /usr/src/examples/
# gzip -d ./passkey-agent.c.gz
# make
# cp ./passkey-agent /etc/bluetooth

Запускаем passkey-agent с ключевым кодом применяемым для «сопряжения» Bluetooth устройств:

Пробуем провести первое «сопряжение» Bluetooth устройств:

В процессе «сопряжения» необходимо ввести пароль (указанный нами в качестве опции passkey-agent) на телефоне. После этого на телефоне в списке сопряжённых устройства для устройства-компьютера установить опцию «Авто-подключение без подтверждения», тогда телефон больше не будет спрашивать пароля при каждом соединении.

Это был красивый вариант, в соответствии, так сказать, с духом автоматизации и «скриптизации» всего сущего. Но есть и другой способ, ручной. Вносим сочетание идентификатора удалённого устройства, в роли которого выступает MAC адрес и «пин-кода» в один из файлов описания нашего Bluetooth устройства производим «спарку» устройств и не морочим себе голову:

# echo «remote.device.mac.address secret.pincode» >> /var/lib/bluetooth/local.device.mac.address>/pincodes
# echo ATZ > /dev/rfcomm0

Сочиним скрипт, связывающий нас с удалённым устройством-модемом если этого не было сделано заранее:

# mkdir -p /etc/custom/bluetooth
# touch /etc/custom/bluetooth/pair.mobile0.sh
# chmod ug+x /etc/custom/bluetooth/pair.mobile0.sh

check_rfcomm=`ls /dev | grep rfcomm0`;
if [ $check_rfcomm ]
then
echo «Device rfcomm0 already exist»
else
/usr/sbin/hciconfig hci0 up
sleep 2
/usr/bin/rfcomm bind 0 mac.address 1
fi

bind — команда указывающая связать порт и устройство,
0 — порядковый номер файла устройства (rfcomm0),
1 — номер Bluetooth-канала.

Заметки и комментарии к публикации:

Оставьте свой комментарий ( выразите мнение относительно публикации, поделитесь дополнительными сведениями или укажите на ошибку )

Источник

How to Find Your MAC address in Ubuntu and Other Linux Distros

When you are learning networking or troubleshooting it, you would need to know the MAC address.

A computer can have more than one MAC address. It is because the MAC address is a core part of networking, and each networking peripheral device has its own MAC address.

So, your WiFi card has a MAC address, and so does the Ethernet (LAN) port. Even the Bluetooth has one.

The MAC address, also known as the physical address, is a 12-digit hexadecimal code (48-bits) and is represented as MM:MM:MM:SS:SS:SS

In this tutorial, I’ll share the steps for finding the MAC address of your desired networking interface in Linux. I’ll show both command line and GUI methods.

Method 1: Find MAC address using command line

There are serveral Linux networking commands that can be used to get the MAC address of the WiFi or LAN cards.

Open up your terminal and use the following command, and it will bring the address of the present network cards in your system:

And you’ll be met with the following output:

use ip link command to show mac address

Generally, the wireless device names will be wlan0, wlan1, wlan2, wlo0, wlo1, and wlo2, whereas the Ethernet (wired device) will probably have eth0, eth1, eno0, eno1,enpls0, or enpls1.

You can find the MAC address of each device at the last line of the device description, followed by link/ether and it’s 52:54:00:5c:92:bf in my case.

Get the MAC address of Bluetooth

As I mentioned earlier, all networking devices have a physical address. If you want to see the MAC address of your Bluetooth adapter, you can use this command:

You can see it beside the BD Address field.

[email protected]:~$ hciconfig hci0: Type: Primary Bus: USB BD Address: DC:41:A9:FB:7A:C4 ACL MTU: 1021:4 SCO MTU: 96:6 UP RUNNING RX bytes:17895787 acl:275 sco:250783 events:298882 errors:0 TX bytes:303664302 acl:295384 sco:249895 commands:3380 errors:0

You can also use the bluetoothctl command here.

Method 2: Get MAC address using GUI

If you’re afraid of using the terminal you can use the network settings to get the MAC address details.

I am using Ubuntu with the GNOME desktop environment. If you use some other desktop environments, the screenshots may not look the same.

First, search for settings in the system menu and open the first result.

search for settings in system menu

Now, for the left menu bar, select Network and click on the little gear icon located near to wired network toggle. Even if you’re not connected to a wired network, you can still follow the same approach.

select networks and click on gear icon

If you’re on Wi-Fi, there will be an option for Wi-Fi in the left menu bar. From there, you have to follow the same approach (clicking on the gear icon) to get your MAC address.

Once you click on the gear icon, you’ll be met with details of the selected network interface. Here, the MAC address is given as the Hardware address.

find mac address using gui

Here you have it in the easiest way possible!

Final Words

Did you know that the first half of hexadecimal code (24 bits) is used to represent the manufacturer of your network adapter?

Finding a MAC address in Linux is quite easy as you have seen it here. On the same note, you may like to learn about changing the MAC address in Linux.

Let me know if you have any questions or suggestions.

Источник

Читайте также:  Лучшие bluetooth гарнитуры накладные
Оцените статью
Adblock
detector