notby.NET Logo

Подключение Bluetooth-гарнитуры в Linux

Для подключения Bluetooth-гарнитуры необходим bluetooth адаптер вставленный в USB порт или встроенный в ноутбуке. Сопряжение, подключение и настройка будет показана через утилиту bluetoothctl из пакета BlueZ на примере беспроводной гарнитуры LC-B41 и операционной системы Debian 12. Аналогично настраивается в Ubuntu и других Linux дистрибутивах.

1. Включение Bluetooth

Подключаем USB Bluetooth адаптер в порт компьютера и проверяем что он определен в системе.

lsusb

Если используется встроенный адаптер, то включаем его в ноутбуке и проверяем что он определен в системе. Он с высокой вероятностью будет подключен по PCIe шине.

lspci
Выведен список подключенных USB устройств командой "lsusb", среди них есть Bluetooth адаптер.

USB Bluetooth адаптер определен в системе.

2. Установка BlueZ и модулей

Установка производится от root пользователя

su -

Устанавливаем BlueZ для возможности использования стека Bluetooth в Linux. В пакете также содержится утилита bluetoothctl через которую будет происходит подключение беспроводной гарнитуры.

apt install bluez

Устанавливаем модуль Bluetooth для PulseAudio. Это даст возможность управлять звуком гарнитуры через звуковой сервер PulseAudio.

apt install pulseaudio-module-bluetooth

Если используется PipeWire (по умолчанию в Debian 12 со средой GNOME) вместо PulseAudio, то необходимые модули для работы с Bluetooth уже встроены в нем.

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

3. Подготовка Bluetooth адаптера

Запускаем утилиты bluetoothctl

bluetoothctl

Включаем Bluetooth адаптер, хотя он должен быть уже включен по умолчанию.

power on

Включаем агента

agent on

Используем агента по умолчания для сопряжения устройств

default-agent
Запущена в консоли утилита bluetoothctl. В ней выполнены команды "power on", "agent on", "default-agent".

Bluetooth адаптера готов к поиску и сопряжению с гарнитурой.

4. Поиск Bluetooth-гарнитуры

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

scan on

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

Поиск Bluetooth устройств через утилиту bluetoothctl. Найдена Bluetooth-гарнитура LC-B41.

Bluetooth-гарнитура успешно найдена. Для сопряжения и подключения гарнитуры необходим её MAC-адрес (в моем случае F0:48:6F:07:06:5C).

Гарнитура может передавать только MAC-адрес без передачи названия. Тогда надо будет ее отсеять примерно по времени включения. Также бывает что с первого раза гарнитура не находится, тогда необходимо выключить/включить Bluetooth-гарнитуру.

Если во время сканирования было очень много устройств, изменения статуса от них и гарнитуру сложно найти, то можно остановить сканирование. Подождать немного, и будут выводится строки с удалением найденных устройств для сопряжения во время сканирования. Среди них также можно найти гарнитуру. Останавливаем сканирование

scan off
Оставлен поиск Bluetooth устройств через утилиту bluetoothctl. Показываются строки удаления найденных устройств, вреди них Bluetooth-гарнитура LC-B41.

Когда устройство было удалено, сооружение с ним будет невозможно. Необходимо вновь запустить поиск Bluetooth устройств командой scan on, и дождатся когда гарнитура будет вновь найдена.

5. Подключение Bluetooth-гарнитуры

Перед подключением необходимо провести сопряжение Bluetooth-гарнитуры с адаптером Bluetooth.

Сопрягаем гарнитуру указывая её ранее найденный MAC-адрес

pair F0:48:6F:07:06:5C
Команда "pair" утилиты bluetoothctl. Успешное спаривание Bluetooth-гарнитуры LC-B41.

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

trust F0:48:6F:07:06:5C
Команда "trust" утилиты bluetoothctl. К гарнитуре LC-B41 доверие удалось.

Подключаемся к Bluetooth-гарнитуре

connect F0:48:6F:07:06:5C
Команда "connect" утилиты bluetoothctl. Успешное подключение Bluetooth-гарнитуры LC-B41.

Bluetooth-гарнитуре успешно подключена.

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

6. Выбор профиля Bluetooth-гарнитуры

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

Открыто окно "PulseAudio Volume Control" на вкладке "Configuration". Найдена Bluetooth-гарнитура LC-B41.

Основные профили Bluetooth:

  • A2DP - передача двухканального стерео звука высокого качества на гарнитуру, микрофон при этому не работает.
  • HFP - передача и прием моно звука в обе стороны.
  • HSP - расширение возможностей HFP с возможностью передача двухканального стерео звука.

У меня гарнитура LC-B41 поддерживает только A2DP и HFP профили. Я использую A2DP профиль для общения, так как использую настольный микрофон, который отлично ловит голос из любой точки комнаты. А вот качество микрофона через HFP профиль очень низкое…

7. Отключение автоматического перехода на HFP/HSP профиль

Некоторые приложение голосового общения (Mumble, Discord, TeamSpeak и другие) могут автоматически переключать профиль беспроводной гарнитуры на HFP/HSP в PulseAudio. При использовании PipeWire переключение профиля не происходит.

Для того чтобы отключить автоматический переход на HFP/HSP профиль в PulseAudio, вносим изменения в файл /etc/pulse/default.pa

nano /etc/pulse/default.pa

Находим строку запуска модуля module-bluetooth-policy

load-module module-bluetooth-policy

и добавляем параметр auto_switch=false

load-module module-bluetooth-policy auto_switch=false
В текстовом редакторе nano открыт файл /etc/pulse/default.pa и в него добавлен параметр "auto_switch=false" к модулю "module-bluetooth-policy".

Сохраняем файл и перезапускаем PulseAudio

pulseaudio -k

Проверяем что профиль больше автоматически не переключается.