В данной статье рассмотрим как подключить bluetooth устройства в linux debian через usb-адаптер. А также рассмотрим что делать, если bluetooth устройство не отображается.

Перед покупкой usb-адаптера необходимо убедиться в том, то что он поддерживает linux, а также желательно посмотреть комментарии людей: столкнулись ли они с какими-либо проблемами при подключении usb-адаптера. Потому что существует два вида usb-адаптеров: первый вид - это когда usb-адаптер после подключения работает и не требует никаких действий, а второй вид - это когда необходимо установить драйвера.

Установка драйверов usb bluetooth адаптера

Рассмотрим второй случай. Например вы приобрели usb-адаптер, которым была указана поддержка linux, подключили его к компьютеру, а он не работает. При попытке включения bluetooth - он просто не включается, а если мы попробуем вывести список usb-устройств следующей командой:

lsusb | grep bluetooth -i

То увидим то, что наш адаптер подключен:

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

sudo journalctl -f

И после этого подключим наш usb-адаптер. После подключения usb-адаптера увидим следующую ошибку:

О том, что прошивка данного адаптера не была найдена, то есть отсутствует драйвер данного usb-адаптера. В моём случае это драйвер realtek rtl 8761b. Далее необходимо найти решение данной ошибки в интернете.

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

Перейдем в папку с драйверами:

cd /usr/lib/firmware/rtl_bt

И увидим то что папка rtl_bt не создана. Создадим её:

cd /usr/lib/firmware
mkdir rtl_bt

Перейдем в эту папку:

cd rtl_bt

И теперь скачаем драйвера перейдя по следующей ссылке.

Здесь необходимо найти нужный нам драйвер и скачать два файла config и fw:

Скачаем данные файлы нажав на ссылку plain:

И скопируем данные файлы из папки загрузки в папку с драйверами:

sudo cp ~/Загрузки/rtl8761b_config.bin .
sudo cp ~/Загрузки/rtl8761b_fw.bin .

Теперь снова запустим журнал логов:

sudo journalctl -f

И переподключим наш usb-адаптер.

И увидим то, что ошибка не отображается:

Теперь попробуем включить Bluetooth и найти устройство.

Как мы видим устройство отображается:

Драйвера из non free репозитория в Debian

Также в debian установить драйвера можно при помощи пакетов из non free репозитория. О том как подключить non free репозиторий есть статья на сайте. Для того, чтобы установить пакет драйверов введем в консоли sudo apt install далее через пробел укажем firmware:

И через тире укажем производителя чипа usb-адаптера в нашем случае это realtek:

sudo apt install firmware-realtek

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

cd /usr/lib/firmware/rtl_usb

И выведем их список:

И увидим то, что нашего драйвера нет в списке. Значит данный способ нам не помог. Здесь установилась только A версия драйвера 8761, а нам нужна версия B.

Также драйвер может быть на сайте производителя usb-адаптера.

Дополнение про работу usb bluetooth адаптеров

Небольшое дополнение. Попробовал запустить оба usb-адаптера в linux ubuntu и ситуация поменялась на противоположную Первый bluetooth-адаптер, у которого нет никакого бренда отказался работать адекватно. Хотя в debian он работал сразу после подключения, а второй блютус адаптер под брендом dexp наоборот заработал сразу после подключения хотя в debian нам пришлось скачать для него драйвера.

Так что, работа адаптера также зависит от того, на какой системе он запускается.

Подключение bluetooth устройств

Перейдем к подключению устройств в графическом окружении. В gnome используется специальный интерфейс для подключения bluetooth устройств, который находится в разделе параметры. Откроем его и попробуем подключить беспроводную клавиатуру.

На клавиатуре включим режим сопряжения. В моем случае на клавиатуре есть специальный индикатор который начинает быстро мигать, что говорит о том, что клавиатура находится в режиме сопряжения. И увидим в списке устройств нашу клавиатуру:

Она отображается серым цветом. Если мы попробуем подключить её, то ничего не произойдет, то есть подключение невозможно. Возникает следующий вопрос: "Что же делать если в графическом окружении нет такого интерфейса для подключения bluetooth устройств, подключение bluetooth устройства невозможно или bluetooth устройство вообще не отображается в списке?".

Что делать если bluetooth устройство не отображается или не подключается

В этом нам поможет bluetooth manager - blueman. Установим его. Для этого откроем терминал, и следующий командой запустим установку:

sudo apt install blueman

Запуск bluetooth менеджера blueman

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

blueman-manager

В программе нажимаем кнопку найти и начинается поиск наших устройств:

На клавиатуре снова запустим режим сопряжения. Нажмем правой кнопкой мышку по найденной клавиатуре и нажмем сопряжение:

Для сопряжения программа нам предложит ввести символы на подключаемой клавиатуре.

Если же такого не произойдет:

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

Также правой кнопкой мыши доверять:

В данном случае клавиатура подключилась. Также может возникнуть ситуация когда устройство также не отображается в данной программе.

Если bluetooth устройство не отображается в blueman

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

sudo systemctl status bluetooth

И увидим то, что он запущен и работает:

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

sudo systemctl start bluetooth

А если произошла какая-то ошибка то воспользоваться командой restart для перезапуска:

sudo systemctl restart bluetooth

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

sudo systemctl enable bluetooth

bluetoothctl - консольная утилита для управления bluetooth устройствами

Перейдем к консольной утилите для управления bluetooth устройствами. Запустим ее при помощи команды:

bluetoothctl

Если по какой-то причине она не запускается, то необходимо установить пакет bluetooth следующей командой:

sudo apt install bluetooth

Запустим утилиту. И для того, чтобы найти устройство запустим сканирование команды:

scan on

Видим отображаемые устройства:

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

scan off

Cкопируем mac-адрес клавиатуры и для сопряжения воспользуемся командой pair:

pair F4:71:33:66:77:C3

Где через пробел укажем mac-адрес нашего устройства. На клавиатуре также необходимо запустить режим сопряжения.

Для сопряжения программа предлагает нам ввести ключ состоящий из чисел. На подключаемой клавиатуре ведем их и после этого устройство должно подключиться.

Если этого не произошло:

То подключим устройство при помощи команды connect:

connect F4:71:33:66:77:C3

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

Для того, чтобы доверять данному устройству воспользуемся командой trust:

trust F4:71:33:66:77:C3

Где через пробел укажем mac-адрес устройства. Для того, чтобы вывести список связанных устройств воспользуемся командой paired-devices:

paired-devices

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

disconnect F4:71:33:66:77:C3

Для удаления устройства из списка доверенных используется команда unstrust:

untrust F4:71:33:66:77:C3

Для удаления устройства используется команда remove:

remove F4:71:33:66:77:C3

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

paired-devices

И увидим то, что наша клавиатура успешно удалена:

Для того чтобы выйти из утилиты воспользуемся командой exit:

exit

Перейдем в интерфейс gnome. И увидим подключенную клавиатуру в списке устройств:

Как узнать версию bluetooth у usb bluetooth адаптера в Linux

Ну и бонусом рассмотрим "Как узнать какая у нас версия usb-адаптера?". Для этого введем команду:

hciconfig -a

В строке HCI версия видим то, что версия адаптера 5.1:

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

Как узнать версию bluetooth у usb bluetooth адаптера в Linux