Как стать автором
Поиск
Написать публикацию
Обновить

Linux. Делаем Bluetooth колонку из ПК

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров13K

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

Я делал такое на Debian 9 x32, Lubuntu 18.04 x32, Debian 11 x64 и Ubuntu 21.04, на других дистрибутивах даже не основанных на Debian тоже будет работать если там можно установить приложения упомянутые в этой инструкции. Действия описаны на примере Debian, если у вас другой дистрибутив замените apt на ваш пакетный менеджер или ищите иной способ установки тех же приложений.

Требования

Подключённое и исправное устройство вывода звука (наушники/колонки/динамики) и рабочий сервер PulseAudio. Чтобы это проверить воспроизведите что-нибудь через mplayer с ключом -ao pulse, например мой рингтон.

sudo apt-get install mplayer -y
mplayer -ao pulse https://iasivan.ru/ringtone_zemlyane.mp3

Ну и конечно же Bluetooth адаптер. Он может быть встроенный либо внешний, подключённый в USB. Не знаете есть ли он? Проверьте.

dmesg | grep -i blue

Приступим

Устанавливаем необходимые 3 пакета.
BlueZ - стек основных протоколов Bluetooth
Bluetooth - служба и консольный интерфейс для работы с Bluetooth
pulseaudio-module-bluetooth - связующее звено между Bluetooth и PulseAudio

sudo apt-get install bluetooth bluez pulseaudio-module-bluetooth -y

Добавим 2 плагина в автозапуск PulseAudio. Для этого нужно в файл /etc/pulse/system.pa дописать две строки. Сделаем это через echo чтобы вы могли просто скопировать команды даже не читая этот текст.

sudo echo "load-module module-bluetooth-policy" >> /etc/pulse/system.pa
sudo echo "load-module module-bluetooth-discover" >> /etc/pulse/system.pa

Ну и конечно же перезапустим службу bluetooth и сервер PulseAudio. Именно в таком порядке.

sudo systemctl restart bluetooth.service
pulseaudio --kill
sleep 1
pulseaudio --start

По сути уже можно использовать, но такое устройство будет отображаться в Bluetooth поиске как ПК, заменим class устройства в поиске оно считалось колонкой.
Для начала отключим плагин hostname в bluetoothd чтобы class не считывался с самого устройства. Открываем файл /etc/systemd/system/bluetooth.target.wants/bluetooth.service, находим в нём параметр ExecStart и в конце строки дописываем --noplugin=hostname.

sudo nano /etc/systemd/system/bluetooth.target.wants/bluetooth.service

Теперь собственно сменим class. Открываем файл /etc/bluetooth/main.conf, в нём находим параметр class, убираем # в начале строки если есть, стираем текущее значение и вводим то что соответствует колонке, а именно 0x1c0420. Можно и не только колонкой его сделать, class другого устройства можете нагуглить.

Поскольку мы отключили плагин hostname у ПК не будет название в поиске Blutooth. Чтобы это исправить редактируем файл /var/lib/bluetooth/00:1A:7D:DA:71:13/settings, при чём вместо 00:1A:7D:DA:71:13 будет адрес вашего адаптера. Удобнее всего найти файл settings через консольный файломый менеджер mc. Папка в нём открывается на Enter, навигиция стрелочками на клавиатуре, редактировать выбранный файл - F4.

sudo apt-get install mc
sudo mc /var/lib/bluetooth/

В этот файл пишем следующее. Вместо IAS-Speaker придуманное вами название.

[General]
Alias=IAS-Speaker

После проделанного разумеется перезапускам службу bluetooth.service.

sudo systemctl restart bluetooth.service

Использование

Открываем bluetoothctl - это консольный интерфейс управления Bluetooth. Делаем устройство видимым и доступным.

discoverable on
pairable on

Ищем устройство с телефона. Отправляем запрос на сопряжение и на телефоне соглашаемся.

В терминале появится строка вроде [CHG] Device A4:55:90:BF:4B:1F Connected: yes здесь A4:55:90:BF:4B:1F это адрес телефона, его нужно добавить в доверенные чтобы с телефона можно было подключаться.

trust A4:55:90:BF:4B:1F

Из bluetoothctl можно выйти командой exit. В таком случае ПК перестанет отображаться в поиске, но с телефона который мы добавили в доверенные можно будет подключиться в любое время. ПК будет работать как колонка, звук выводимый телефоном на Bluetooth колонку будет воспроизводиться в динамики/колонки/наушники ПК.

Всего вам хорошего, друзья!
Изучайте Linux. Используйте Linux. С ним ваши возможности почти безграничны.

Теги:
Хабы:
Всего голосов 30: ↑30 и ↓0+28
Комментарии34

Публикации

Ближайшие события