Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:1
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Embedded Linux
Использование беспроводных наушников с ALSA без PulseAudio
sasamy
Добавлено 27.06.2021 17:14 Редактировалось 27.06.2021 17:36
0
Сообщение: 1
sasamy
4.71

Пункты: 83540
Регистрация: 14.08.2009
Исходные данные:

плата SK-iMX8Mini-MOD + MB
buildroot-2021.05 на базе ядра 5.10.9 для i.mx8

http://starterkit.ru/html/index.php?name=forum&op=view&id=30887

noname USB bluetooth adapter (на алиэкспресс подобные по 100 рублей), при подключении лог выглядит так

[ 4992.498741] usb 1-1.4: new full-speed USB device number 12 using ci_hdrc
[ 4992.769447] pwm-backlight backlight: supply power not found, using dummy regulator
[ 4992.777431] Bluetooth: hci0: unexpected event for opcode 0x0000

# bluetoothctl list
Controller 00:15:83:0B:13:C0 BlueZ 5.58 [default]

беспроводные наушники Philips SHB3075

рецепт универсальный и должен работать на любой комбинации аппаратных и програмных средств на базе Linux.

1) Добавить в сборку buildroot необходимые пакеты

make menuconfig

Networking applications --->
[*] bluez-utils 5.x
[*] build CLI client

Audio and video applications --->
[*] bluez-alsa

и собрать

make

записать на плату

2) Запустить на плате бэкенд ALSA

bluealsa &

3) Настроить подключение к наушникам используя интерактивный режим утилиты bluetoothctl, запустить

bluetoothctl

ввести команды в появившемся шеле

[bluetooth]# power on
[bluetooth]# scan on

включить наушники в режим сопряжения, в шелле должно обнаружиться устройство, в моём случае
...
[CHG] Device A4:77:58:78:D0:99 Name: Philips SHB3075
...

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

[bluetooth]# scan off
[bluetooth]# pair A4:77:58:78:D0:99
[bluetooth]# trust A4:77:58:78:D0:99
[bluetooth]# connect A4:77:58:78:D0:99

при успешном подключении будет такой лог

Attempting to connect to A4:77:58:78:D0:99
[CHG] Device A4:77:58:78:D0:99 Connected: yes
Connection successful
[CHG] Device A4:77:58:78:D0:99 ServicesResolved: yes

выйти из шела интерактивного ражима

[Philips SHB3075]# quit

4) Наушники подключены, осталось сообщить ALSA чтобы она использовала это подключение в качестве устройства воспроизведения по умолчанию, для этого надо создать в домашней директории файл настройки .asoundrc с таким содержанием

/root/.asoundrc

Код

defaults.bluealsa.service "org.bluealsa"
defaults.bluealsa.device "A4:77:58:78:D0:99"
defaults.bluealsa.profile "a2dp"
defaults.bluealsa.delay 10000

pcm.!default {
type asym
capture.pcm cards.pcm.default
playback.pcm bluealsa
hint.description "Capture: sysdefault, Playback: BlueALSA Bluetooth Default Audio Device"
}

ctl.!default {
type bluealsa
hint.description "Default control device (BlueALSA Bluetooth)"
}


проверить устройство

aplay a2002011001-e02-8kHz.wav

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

/root/btaudio.sh

Код

#!/bin/sh

/usr/bin/bluetoothctl power on
sleep 1
/usr/bin/bluealsa &
sleep 1
/usr/bin/bluetoothctl connect A4:77:58:78:D0:99


обратите внимание на MAC адрес в файле настроек .asoundrc и в скрипте - он должен быть от вашего устройства а не из моего примера.

Можно усложнить настройки ALSA и сделать более интелектуально

https://github.com/Arkq/bluez-alsa/wiki/Using-bluealsa-as-default-ALSA-PCM
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux