Устройства Bluetooth встречаются довольно часто в наше время. Это простой и дешевый способ добавить поддержку беспроводных технологий для смартфона или любого другого гаджета. Система Linux может использовать различные протоколы: OBEX, A2DP, DUN, HID и другие для взаимодействия с различными устройствами.
В этой статье мы рассмотрим как выполняется настройка Bluetooth Ubuntu 16.04. Рассмотрим как установить драйвера и настроить связь между двумя устройствами.
Первоначальная настройка
Большинство Bluetooth адаптеров выполнены в виде USB и могут быть настроены с помощью утилит HCL. Некоторые устройства, такие как Atheros, требуют для своей работы установленных прошивок в системе.
Для установки всех необходимых программ выполните такую команду:
sudo apt-get install bluetooth bluez bluez-tools rfkill rfcomm
Дальше установите прошивки для адаптеров Atheros, если это необходимо:
sudo apt-get install bluez-firmware firmware-atheros
Затем запустите службу управления Bluetooth:
sudo service bluetooth start
Перед тем, как перейти к сканированию устройств нужно убедиться что ваш bluetooth адаптер подключен и не заблокирован с помощью rfkill:
sudo rfkill list
Если устройство заблокировано, программной или аппаратной блокировкой, необходимо разблокировать его с помощью команды rfkill:
sudo rfkill unblock bluetooth
Включить адаптер можно с помощью команды hciconfig:
sudo hciconfig hci0 up
Дальше можно начать сканирование. Только перед этим убедитесь, что на другом устройстве Bluetooth включен и не находится в скрытом режиме. Для сканирования выполните:
sudo hcitool scan
После завершения вы увидите доступное устройство. Здесь будет отображаться его имя и MAC адрес.
Чтобы узнать более подробную информацию об устройстве, вы можете использовать утилиту sdptool:
sdptool browse D0:B3:3F:96:2A:30
Вы можете сразу отфильтровать какие возможности поддерживает обнаруженное устройство:
sdptool browse D0:B3:3F:96:2A:30 | grep 'Service Name:'
Также вы можете использовать интерактивный инструмент bluetoothctl:
bluetoothctl
[bluetooth]# info D0:B3:3F:96:2A:30
Также вы можете проверить доступность удаленного устройства с помощью утилиты ping:
sudo l2ping D0:B3:3F:96:2A:30
Сопряжение устройств
Для совместной работы устройств Bluetooth нужно настроить их сопряжение. Для этого используется команда RFCOMM. Эта команда требует полномочий суперпользователя. Синтаксис команды такой:
sudo rfcomm connect устройство_адаптера mac_адрес_цели канал
Например, подключимся к нашему устройству на втором канале:
sudo rfcomm connect hci0 D0:B3:3F:96:2A:30 2
Теперь на другом устройстве появиться запрос на соединение и вам нужно будет ввести одинаковый pin на обоих устройствах. После этого оно будет доступно через файл /dev/rfcomm0. Не закрывайте терминал, чтобы соединение оставалось активным. Вы можете посмотреть список подключений с помощью hcitool:
hcitool con
Отправка и прием файлов по OBEX
Дальше вы можете очень просто отправить файл на удаленное устройство с помощью протокола OBEX. Синтаксис:
sudo bt-obex -p MAC_адрес_устройства /путь/к/файлу
Например:
sudo bt-obex -p D0:B3:3F:96:2A:30 ~/img/some_pic.png
Чтобы получить файл вам нужно запустить сервис obex в режиме прослушивания с помощью опции -s:
bt-obex -s /path/to/output/folder
Здесь вам нужно указать путь к папке, куда нужно сохранить полученный файл. После выполнения этих настроек Bluetooth Ubuntu, вы можете передать любой файл с телефона. Вы также можете запустить FTP сеанс с устройством, для просмотра файлов, которые на нем есть:
sudo bt-obex -f MAC_адрес_устройства
Интернет через Bluetooth
Раньше использование Dial-up сети было очень популярным. Сейчас эта технология почти не используется. Но, возможно, понадобиться раздать интернет от вашего телефона на компьютер. Для этого можно использовать два протокола: DUN – более старый и BNEP, более похожий на работу локальной сети.
Чтобы определить поддерживает ли устройство работу по протоколу DUN нужно использовать правильный канал rfcomm. Нужно использовать канал 15:
sudo rfcomm bind D0:B3:3F:96:2A:30 15
Если протокол поддерживается, то у вас появиться устройство rfcomm0. Дальше вы можете использовать NetworkManager для подключения к сети.
Что касается BNEP, то здесь вам уже не нужно использовать rfcomm, все протоколы будут обрабатываться bluez. Все что нужно, это Bluez и NetworkManager. Добавьте новое соединение Bluetooth:
Выберите найденную сеть:
Дальше вы можете посмотреть информацию о подключении и использовать сеть:
Выводы
В этой статье мы рассмотрели как выполняется настройка Bluetooth Ubuntu 16.04. Все работает очень просто, и хотя в графическом интерфейсе может быть не совсем понятно как что настроить, то в терминале все точно и понятно. Если у вас остались вопросы, спрашивайте в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .
How can I tell if my laptop has a Bluetooth adapter?
landroni
5,7937 gold badges33 silver badges57 bronze badges
asked May 29, 2013 at 11:24
1
Your kernel would have picked it up and loaded a module for it when you started Ubuntu.
From the command line, gnome-terminal type this command:
dmesg | grep -i blue
If you get output simliar to the below then your laptop has bluetooth capability.
[ 2.933062] usb 1-1.4: Product: Broadcom Bluetooth Device
answered May 29, 2013 at 11:57
kingmilokingmilo
9,8841 gold badge23 silver badges33 bronze badges
2
Using lsusb
:
sudo lsusb |grep Bluetooth
Should give an output similar to:
Device 005: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
If there is no bluetooth device, you’ll get no output for this command.
Courtesy: https://help.ubuntu.com/community/BluetoothSetup#Manual_Discovery
answered May 29, 2013 at 12:05
saji89saji89
11.9k5 gold badges45 silver badges64 bronze badges
3
on my Asus laptop i have a Bluetooth icon on the top right and
dmesg | grep Blue
Gets:
[ 3.757769] Bluetooth: Core ver 2.16
[ 3.757798] Bluetooth: HCI device and connection manager initialized
[ 3.757802] Bluetooth: HCI socket layer initialized
[ 3.757805] Bluetooth: L2CAP socket layer initialized
[ 3.757814] Bluetooth: SCO socket layer initialized
[ 3.767297] Bluetooth: Generic Bluetooth USB driver ver 0.6
[ 4.332846] Bluetooth: RFCOMM TTY layer initialized
[ 4.332853] Bluetooth: RFCOMM socket layer initialized
[ 4.332856] Bluetooth: RFCOMM ver 1.11
[ 4.340772] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 4.340776] Bluetooth: BNEP filters: protocol multicast
but: sudo lsusb |grep Bluetooth
Doesn’t return anything.
also check if you have a Hardware network (airplane mode) switch. This can disable bluetooth and make it not visible to Ubuntu
answered May 30, 2013 at 6:16
TiloBuntTiloBunt
2,2652 gold badges26 silver badges34 bronze badges
4
All of the proposed answers failed to produce a correct result in my case. To detect whether my laptop indeed has a Bluetooth adapter I had to follow these instructions:
sudo apt-get install bluez-utils
Then:
sudo /etc/init.d/bluetooth restart
The above to make sure that you have installed all that is needed, and that all was properly initialized. Now:
geek@liv-inspiron:~$ hcitool dev
Devices:
hci0 00:11:95:00:1A:CF
Note that your Bluetooth device will have a different ID. I also had to make sure that in Blueman Bluetooth was Turned On
.
Before or after both lsusb |grep -i bluetooth
and dmesg | grep -i blue
do NOT output anything of interest (i.e. empty). Yet, the Bluetooth adapter is physically present and I can send files to another device…
answered Mar 26, 2015 at 21:54
landronilandroni
5,7937 gold badges33 silver badges57 bronze badges
2
You laptop may likey have a bluetooth mac address printed on a sticker near the battery on the underneath of your laptop.
answered Jun 4, 2013 at 18:26
There is no way to find it out precisely. Some bluetooth modules are not supported by linux kernel and may not be detected.
Generally, you would look for bluetooth modules in lsusb
and lspci
outputs. But even if a module is supported, there may be output, which does not contain “bluetooth”.
For instance, I have a working Atheros AR3012 bluetooth module.
lsusb
shows it as 13d3:3408 IMC Networks
.
It was not supported initially, I made a kernel patch to get it work. Now this patch is applied to all Ubuntu supported kernels.
If you are sure that you have bluetooth, and it does not work in Ubuntu, report this to launchpad by running in terminal
ubuntu-bug linux
And in addition to information collected by apport add output of sudo cat /sys/kernel/debug/usb/devices
terminal command.
answered May 27, 2015 at 11:15
Pilot6Pilot6
88k91 gold badges198 silver badges306 bronze badges
Why not using lshw
(list hardware) and catch for the word blue
in case insensitive mode -i
sudo lshw | grep -i blue
answered Jan 17, 2021 at 12:29
In addition to commands posted, each of which might fail reporting the Bluetooth adapter on occasion, you could try
$ hciconfig -a
answered Oct 7, 2021 at 10:29
There is an easier solution.
- Press the Super (Windows) key.
- Search “Bluetooth”.
- This should tell you if you have a Bluetooth adapter. I don’t so mine said “No Bluetooth adapters found”. I’m not sure what it would say if you have one but it should be obvious.
Jens Erat
4,9537 gold badges30 silver badges37 bronze badges
answered May 27, 2015 at 10:28
3
If you are not seeing output in dmesg, etc. You may need to install the kernel module
modprobe btusb
Then you can check dmesg, etc.
[Thu Jul 14 21:56:21 2022] Bluetooth: Core ver 2.22
[Thu Jul 14 21:56:21 2022] Bluetooth: HCI device and connection manager initialized
[Thu Jul 14 21:56:21 2022] Bluetooth: HCI socket layer initialized
[Thu Jul 14 21:56:21 2022] Bluetooth: L2CAP socket layer initialized
[Thu Jul 14 21:56:21 2022] Bluetooth: SCO socket layer initialized
[Thu Jul 14 21:57:27 2022] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[Thu Jul 14 21:57:27 2022] Bluetooth: BNEP filters: protocol multicast
[Thu Jul 14 21:57:27 2022] Bluetooth: BNEP socket layer initialized
(if you wish to ensure that kernel module loads at boot time, add it to /etc/modules.
echo “btusb” >> /etc/modules
answered Jul 14, 2022 at 11:58
В отличие от многих аспектов Linux, поддержка Bluetooth не выполняется ядром Linux автоматически. Это во многом связано со стеком Bluetooth и тем, как он взаимодействует с системой Linux в целом. Чтобы компенсировать это, удобные для пользователя дистрибутивы, такие как Ubuntu, Elementary и т. Д., Очень стараются настроить Bluetooth для пользователей. Однако не все Linux делают это. Необходимо установить различные службы и клиенты Bluetooth. Кроме того, все радиомодули Bluetooth отличаются (а некоторые из них не имеют драйверов с открытым исходным кодом), что означает, что их нужно устанавливать постфактум. Вот как подключить и использовать устройства Bluetooth в Linux.
ОПОВЕЩЕНИЕ СПОЙЛЕРА: прокрутите вниз и посмотрите видеоурок в конце этой статьи.
Примечание: используете Ubuntu? Если это так, возможно, ваш компьютер уже имеет превосходную поддержку Bluetooth, и нет необходимости настраивать его с помощью этой статьи.
Arch Linux
sudo pacman -S bluez bluez-utils
Fedora
sudo dnf install bluez bluez-tools
OpenSUSE
Получение инструментов и служб Bluetooth в SUSE осуществляется с помощью OBS. Перейти на эту страницуи нажмите кнопку быстрой установки. Отсюда YaST все установит.
Debian
sudo apt-get install bluez*
Другие Linux
Стек bluetooth bluez совместим со всеми дистрибутивами Linux, даже с Chrome OS! По этой причине у пользователей менее известных альтернативных дистрибутивов Linux не будет проблем с работой этих инструментов. Чтобы установить их, откройте диспетчер пакетов и найдите «bluez». Установите все, что содержит слово «bluez», на всякий случай.
В качестве альтернативы, перейти на сайт загрузки, возьмите исходный код и соберите его вручную.
Получение клиента Blueman
Установка Bluez позволяет вашей среде рабочего стола Linux напрямую использовать Bluetooth. Это означает, что если вы используете KDE Plasma, он будет работать напрямую с клиентом KDE Bluetooth. То же самое и со встроенным клиентом Gnome Shell. Итак, устанавливать Blueman не нужно.
Если вы используете среду рабочего стола Linux или оконный менеджер, в котором нет встроенного диспетчера Bluetooth, подумайте об установке Blueman. Это легкий инструмент для подключения, который значительно упрощает взаимодействие с устройствами.
Arch Linux
sudo pacman -S blueman
Fedora
sudo dnf install blueman
OpenSUSE
sudo zypper install blueman
Debian
sudo apt-get install blueman
Другие Linux
Инструмент подключения Blueman широко используется в Linux. Чтобы найти его в альтернативных дистрибутивах Linux, откройте диспетчер пакетов (или программный браузер), найдите «blueman» и установите его. Не можете найти его в источниках программного обеспечения? Вместо этого загрузите его с sourceforge!
Конфигурация
Недостаточно скачать стек Bluez Bluetooth и установить его в Linux. Службы должны быть активными, иначе устройства не будут подключаться. Сначала откройте терминал и получите корневую оболочку, используя: sudo -s
С помощью корневой оболочки вручную загрузите универсальный драйвер Bluetooth USB, если вы используете ключ BT.
modprobe btusb
При использовании портативного компьютера со встроенным радиомодулем Bluetooth драйвер (если поддерживается Linux) должен автоматически загружать драйвер, поэтому нет необходимости загружать его вручную.
Примечание: некоторые ключи Bluetooth не поддерживают этот драйвер в Linux. Если это произойдет с вами, прочтите руководство для вашего устройства и узнайте, какие драйверы ему требуются для работы в Linux.
Arch Linux, Fedora, SUSE и другие системные Linux
Во-первых, включите службу BT, чтобы она всегда запускалась при загрузке Linux. Это делается с помощью:
sudo systemctl enable bluetooth.service
Затем сразу же запустите службу:
sudo systemctl start bluetooth.service
Если в какой-то момент systemctl отказывается запускать или включать эти службы, рассмотрите возможность использования параметра force:
sudo systemctl enable bluetooth.service -f
и
sudo systemctl start bluetooth.service -f
Старая версия Debian
Используете версию Debian без systemd? Если да, то после установки Bluez и всех других инструментов Bluetooth перезагрузите компьютер. Службы запуска будут активны после повторного входа в систему.
Подключение к Bluetooth в Gnome
Если служба Bluetooth работает правильно, при подключении адаптера Bluetooth (или) использовании встроенного радиомодуля Bluetooth на вашем ПК вы должны увидеть значок Bluetooth на панели Gnome.
Щелкните значок, и откроется меню. В меню выберите «Настройки Bluetooth», чтобы открыть инструмент просмотра устройств.
В инструменте просмотра нажмите на устройство, к которому хотите подключиться.
Следуйте инструкциям на экране, которые дает Gnome для подключения.
Подключение к Bluetooth в KDE
Чтобы подключить устройства Bluetooth к рабочему столу KDE Plasma Desktop, убедитесь, что ваш USB-ключ (или) встроенный радиомодуль Bluetooth работает.
Отсюда щелкните значок BT на панели Plasma, затем выберите устройство для подключения. Следуйте инструкциям на инструменте для сопряжения!
Подключение к Bluetooth в Blueman
Чтобы устройство Bluetooth работало с Blueman, сначала щелкните значок Bluetooth на панели задач. Затем нажмите кнопку «Поиск», чтобы найти устройство. Когда появится устройство, выберите его мышью, затем нажмите «Настройка».
Инструмент Blueman проведет вас через процесс сопряжения. Следуйте инструкциям на экране, и вскоре ваше устройство будет сопряжено.
Вывод
Bluetooth всегда был ненадежным в Linux, и многие дистрибутивы Linux не настраивают его сразу. Надеюсь, что, следуя этому руководству, ваши проблемы с Bluetooth в Linux останутся в прошлом.
Там нет никакого способа узнать это точно. Некоторые модули Bluetooth не поддерживаются ядром Linux и могут не обнаруживаться.
Как правило, вы бы искали модули Bluetooth в lsusb
а также lspci
выходы. Но даже если модуль поддерживается, может быть вывод, который не содержит “bluetooth”.
Например, у меня есть работающий модуль Bluetooth Atheros AR3012.
lsusb
показывает это как 13d3:3408 IMC Networks
,
Первоначально он не был поддержан, я сделал исправление ядра, чтобы оно заработало. Теперь этот патч применяется ко всем ядрам, поддерживаемым Ubuntu.
Если вы уверены, что у вас есть Bluetooth, и он не работает в Ubuntu, сообщите об этом на панель запуска, запустив в терминале
ubuntu-bug linux
И в дополнение к информации, собранной apport, добавьте вывод sudo cat /sys/kernel/debug/usb/devices
Терминальная команда.
Технология Bluetooth сейчас получила широкое распространение. В основном, ее используют для подключения к смартфону каких-либо гаджетов – например, наушников или смарт-часов. Но в Linux есть и дополнительные возможности, которые реализовываются с ее помощью. Пользователь может подключить тот же смартфон к компьютеру, передавать и принимать файлы, производить подключение к сети Интернет. А вот о том, как все это настроить в репозитории Ubuntu 19.04, я сегодня и расскажу.
- Первичная настройка
- Сканирование устройств Bluetooth
- Сопряжение устройств
- Отправка и прием файлов
- Подключение к Интернету по Bluetooth
Первичная настройка
В первую очередь надо позаботиться о наличии специального адаптера Bluetooth – в большинстве современных ноутбуков он встроен, а вот для стационарных ПК придется приобретать отдельный USB модуль. Еще требуется наличие специальных прошивок и утилит в системе Linux. Вообще, если зайти в раздел «Настройки» Ubuntu 19.04, можно увидеть соответствующий раздел Bluetooth.
В разделе «Настройки» операционной системы Ubuntu 19.04 есть соответствующий раздел
Как можно видеть на скрине, пока я не подключу адаптер, включить данную функцию мне не удастся.
Если в настройках системы такого пункта нет, необходимо установить специальную утилиту. Для этого я открываю командную строку «Терминал» и даю следующий запрос на установку утилиты Blueman:
sudo apt-get install blueman
Ввожу команду, нажимаю на Enter. Начнется скачивание и установка ПО для Bluetooth-адаптеров
Если не сработает (а она сработает), можно дать вот такую команду на установку соответствующего программного обеспечения:
sudo apt-get install bluetooth bluez bluez-tools
Еще одно программное обеспечение, которое не помешало бы установить для подключения по Bluetooth
После завершения процесса установки следует перезагрузить операционную систему. Если адаптер был подключен, при загрузке в области уведомлений должен отобразиться значок менеджера Bluetooth.
Перед тем как начать сканирование, нужно проверить, правильно ли подключен адаптер и не блокируется ли он с помощью утилиты rfkill. Чтобы активировать ее, я ввожу в командной строке «Терминал» следующий запрос:
sudo rfkill list
Если в отчете будет отображено, что адаптер не работает из-за аппаратной или программной блокировки, можно будет провести разблокировку, введя вот такую команду:
sudo rfkill unblock bluetooth
После этого обязательно включаю адаптер вот таким запросом:
sudo hciconfig hci0 up
И как только данная процедура будет завершена, можно приступать к сканированию. Перед этим проверю, включен ли Bluetooth модуль на другом устройстве и не находится ли он в скрытом режиме.
sudo hcitool scan
После завершения сканирования отобразится имя устройства и его MAC адрес. А чтобы узнать более подробную информацию о нем, использую утилиту sdptool:
sdptool browse [тутдолженбытьMACадрес]
А вот с помощью утилиты ping можно проверить доступность удаленного устройства. Выглядеть команда при этом будет примерно вот так:
sudo l2ping [тутдолженбытьMACадрес]
Если действовать через настройки, тут все будет намного проще. Нужно просто запустить поиск, и в результате отобразится список доступных устройств.
Сопряжение устройств
На старых версиях операционной системы Ubuntu сопряжение с устройствами по Bluetooth производилось с помощью специальной утилиты RFCOMM. В моем случае она не была обнаружена, поэтому просто привожу пример, так как у некоторых пользователей она может сработать. Синтаксис команды в данном случае будет выглядеть вот так:
sudo rfcomm connect [устройствоадаптера] [MACадрес] [канал]
После этого на устройстве, с которым производится подключение, высветится окно с запросом на соединение. На обоих устройствах в этот момент необходимо ввести одинаковый код.
В случае с настройками все куда проще – надо просто найти нужное устройство по имени, подключиться в нему и ввести тот же код. Практически, все то же самое, но в графическом виде.
Отправка и прием файлов
Отправить файл на удаленное подключенное устройство можно с помощью протокола OBEX и использования опции -p. При этом запрос в командной строке в подобном случае будет выглядеть следующим образом:
sudo bt-obex -p [MACадресустройства] /путькфайлу/файл.формат
После нажатия на кнопку Enter выбранный файл с компьютера будет отправлен. А вот чтобы получить файл, нужно применить уже другую опцию -s.
bt-obex -s /путьдлясохраненияфайла/раздел/папка
Чтобы посмотреть файлы, которые есть в памяти подключенного устройства, нужно использовать следующий синтаксис:
sudo bt-obex -f [MACадрес]
Подключение к Интернету по Bluetooth
Да, по беспроводной сети Bluetooth можно подключиться к сети Интернет, и соединение такого типа называется Dial-up. Ранее данная технология была очень распространена, но сейчас ее редко кто использует из-за наличия Wi-Fi. Чтобы подключиться к сети мобильного устройства, можно использовать два протокола – старый DUN и современный BNEP, схожий по принципу действия с локальной сетью.
Сначала еще надо определить, поддерживает ли устройство работу по этим протоколам. Проверяю первый – для этого использую утилиту rfcomm и канал 15.
sudo rfcomm bind [MACадрес] 15
Если все же поддерживается, на экране появится устройство rfcomm0. Дальше для соединения можно использовать NetworkManager.
Все процессы обрабатываются через bluez и тот самый менеджер подключений. Просто добавляю новый тип соединения в программе, выбираю соответствующую сеть, просматриваю информацию о ней и начинаю использование.
Заключение
В Ubuntu подключение к стороннему устройству по Bluetooth можно настроить как с помощью командной строки «Терминал», так и через раздел «Настройки». Если это ноутбук, то приобретать дополнительный адаптер не придется – достаточно будет просто активировать функцию, найти нужное устройство и подсоединиться к нему. В ином случае нужно будет приобретать отдельный USB адаптер, но даже в таком случае проблем в программном плане возникнуть не должно.
Post Views: 32 293