Aviso
A fonte mais recente usa novos nomes para alguns componentes principais:
bluealsa
agora é chamado de bluealsad
bluealsa-cli
agora é chamado de bluealsactl
Consulte o Guia do Wiki migrando da Release 4.3.1 ou anterior para obter mais informações.
Este projeto é um renascimento de uma integração direta entre Bluez e ALSA. Desde que Bluez> = 5, a integração interna foi removida em favor de aplicativos de áudio de terceiros. A partir de agora, o Bluez atua como um middleware entre um aplicativo de áudio, que implementa o perfil de áudio Bluetooth e um dispositivo de áudio Bluetooth.
O status quo atual é que, para transmitir áudio de/para um dispositivo Bluetooth, é preciso instalar um servidor de áudio de uso geral, como Pipewire ou Pulseaudio, ou usar o Bluez versão 4, que é depreciado e não atendido.
Este projeto criou e mantém um produto chamado Bluealsa, com o qual se pode obter o mesmo suporte ao perfil de áudio Bluetooth que no Pulseaudio, mas com menos dependências e em um nível mais baixo na pilha de software. O Bluealsa registra todos os perfis de áudio Bluetooth conhecidos no Bluez; portanto, em teoria, todos os dispositivos Bluetooth (com recursos de áudio) podem ser conectados.
O Bluealsa foi projetado especificamente para uso em pequenos sistemas de áudio ou áudio/visual de áudio/áudio de baixa potência, onde não são necessários recursos de gerenciamento de áudio de alto nível do Pulseaudio ou Pipewire. O sistema de destino deve ser capaz de funcionar corretamente com todos os seus aplicativos de áudio interface diretamente com o ALSA, com apenas um aplicativo por vez usando cada fluxo de áudio Bluetooth. Nesses sistemas, o Bluealsa adiciona suporte de áudio Bluetooth ao suporte à placa de som ALSA existente. Observe que isso significa que os aplicativos são restringidos pelos recursos da API ALSA e pelos recursos de processamento de áudio de nível superior de servidores de áudio, como Pulseaudio e Pipewire, não estão disponíveis.
O Bluealsa consiste no Daemon bluealsad
, Alsa Plug-ins e vários utilitários. O contexto básico é mostrado neste diagrama:
Fluxograma TD
ClassDef Preenchimento externo:#EEE, AVC:#333, Width: 4px, cor: preto;
ClassDef Bluealsa Preenchimento:#BBF, AVC:#333, Width: 4px, cor: preto;
Um [adaptador Bluetooth] <-> b ((bluetoothd <br/> Daemon))
A <-> c ((daemon bluealsad))
B <-dbus-> c
C <-dbus-> g ((bluealsactl))
C <-dbus-> d ((bluealsa-aplay))
D -> e ([alsa libasound])
E -> k [alto -falantes]
C <-dbus-> f ((bluealsa <br/> alsa plug-ins))
F <-> h ([alsa libasound])
H <-> i ((alsa <br/> aplicações))
C <-dbus-> j (("Outros d-bus <br/> clientes")))
C <-> l ((alsa midi <br/> sequenciador))
L <-> M ([alsa libasound])
M <-> n ((alsa midi <br/> aplicação))
Classe A, B, E, H, I, J, K, L, M, N Externo;
Classe C, D, F, G Bluealsa;
O coração de Bluealsa é o Daemon bluealsad
, que interfina o bluetoothd
do Bluez Bluetooth e o adaptador Bluetooth local. Ele lida com a lógica de conexão e configuração do perfil para A2DP, HFP e HSP e apresenta os fluxos de áudio resultantes para aplicativos via D-BUS.
O Bluealsa inclui plug-ins da ALSA, que ocultam todas as especificidades do D-Bus e permitem que os aplicativos usem as interfaces ALSA PCM e Mixer, para que os aplicativos ALSA existentes possam acessar dispositivos de áudio Bluetooth da mesma maneira que usam PCMs e mixers de placa de som.
No caso do BLE MIDI, o Daemon cria uma porta MIDI simples diretamente no seqüenciador ALSA MIDI, para que o aplicativo ALSA MIDI possa se conectar ao dispositivo MIDI remoto BLE da mesma maneira que se conectaria a um dispositivo MIDI local.
O Bluealsa também inclui vários aplicativos de utilitário. De particular nota são:
BluealSactl
um aplicativo para permitir o gerenciamento da linha de comando do sistema Bluealsa.
Bluealsa-Aplay
Um aplicativo para simplificar a tarefa de criar um alto -falante Bluetooth usando o Bluealsa.
Bluealsa-RfComm
Um aplicativo de linha de comando que fornece acesso ao terminal RFCOMM para dispositivos HFP/HSP.
As instruções de construção e instalação estão incluídas no arquivo install.md e orientações mais detalhadas estão disponíveis no wiki.
O principal componente do Bluealsa é um programa chamado bluealsad
. Por padrão, este programa deve ser executado como raiz durante a inicialização do sistema. Ele registrará o serviço org.bluealsa
no barramento do sistema D-BUS, que pode ser usado para acessar dispositivos de áudio configurados. Em geral, o Bluealsa atua como um proxy entre Bluez e Alsa.
O daemon bluealsad
deve estar em execução para combinar, conectar e usar dispositivos de áudio Bluetooth remotos. Para transmitir áudio para, por exemplo, um fone de ouvido Bluetooth, primeiro é necessário conectar o dispositivo. Se você não estiver familiarizado com o emparelhamento Bluetooth e os procedimentos de conexão no Linux, existe um guia básico no emparelhamento e na conexão Wiki: Bluetooth.
Para obter detalhes das opções de linha de comando para bluealsad
, consulte a página Manual Bluealsad.
Quando um dispositivo de áudio Bluetooth está conectado, pode -se usar o dispositivo PCM virtual bluealsa
com aplicativos ALSA como qualquer outro dispositivo PCM:
aplay -D bluealsa Bourree_in_E_minor.wav
Se houver mais de um dispositivo Bluetooth conectado, o alvo poderá ser especificado como um parâmetro para o PCM:
aplay -D bluealsa:XX:XX:XX:XX:XX:XX, Bourree_in_E_minor.wav
Observe que este dispositivo PCM é baseado no plug -in de E/S do software ALSA - ele não possui placa de som associada e não estará disponível na interface Alsa Kernel Proc.
Os parâmetros de configuração do dispositivo bluealsa
PCM podem ser definidos no arquivo de configuração .asoundrc
local como este:
cat ~ /.asoundrc
defaults.bluealsa.service " org.bluealsa "
defaults.bluealsa.device " XX:XX:XX:XX:XX:XX "
defaults.bluealsa.profile " a2dp "
defaults.bluealsa.delay 10000
O Bluealsa também permite capturar áudio do dispositivo Bluetooth conectado. Para fazer isso, é preciso usar o dispositivo PCM de captura, por exemplo:
arecord -D bluealsa -f s16_le -c 2 -r 48000 capture.wav
Além do perfil A2DP, usado para áudio de alta qualidade, o Bluealsa também permite usar a conexão de áudio por telefone via link SCO. Pode-se usar o suporte interno HSP/HFP, que implementa apenas parte relacionada ao áudio da especificação, ou uso do SERVIÇO OFONO como um back-end. Para abrir a conexão de áudio SCO, deve mudar para o perfil sco
, como segue:
aplay -D bluealsa:DEV=XX:XX:XX:XX:XX:XX,PROFILE=sco Bourree_in_E_minor.wav
Para controlar o nível de áudio de entrada ou saída, pode-se usar o plug-in de controle bluealsa
. Este plug-in permite ajustar o volume do fluxo de áudio ou simplesmente silenciar/ativá-lo, por exemplo:
amixer -D bluealsa sset ' <control name> ' 70%
Onde o nome de controle é o nome de um dispositivo Bluetooth conectado com um sufixo do elemento de controle, por exemplo:
amixer -D bluealsa sset ' Jabra MOVE v2.3.0 A2DP ' 50%
Para detalhes completos do dispositivo Bluealsa ALSA PCM e dispositivo Mixer, consulte a página Manual dos plug-ins Bluealsa.
Há também vários artigos no Wiki do projeto Bluez-ILA, dando mais exemplos de uso desses plug-ins.
Para uma configuração ALSA mais avançada, consulte a documentação on-line ASOUNDRC fornecida pela página Wiki do AlsaProject.
É possível criar um alto-falante Bluetooth usando o Bluealsa. Para isso, é necessário encaminhar o sinal de áudio do Bluealsa Capture PCM para outro PCM de reprodução (por exemplo, cartão de áudio embutido). Para simplificar essa tarefa, o Bluealsa inclui um programa chamado bluealsa-aplay
, que atua como um simples jogador do Bluealsa. Conecte o seu dispositivo Bluetooth (por exemplo, smartphone) e faça o seguinte:
bluealsa-aplay XX:XX:XX:XX:XX:XX
Para obter detalhes das opções de linha de comando para bluealsa-aplay
, consulte a página Manual Bluealsa-Aplay. Existem também alguns artigos sobre o Wiki do projeto Bluez-ILA, dando exemplos de seu uso.
A lista de PCMs Bluealsa disponível (fornecida por dispositivos Bluetooth conectados com recursos de áudio) pode ser obtida diretamente da API Bluealsa D-Bus ou usando bluealsa-aplay
como um invólucro conveniente da seguinte forma:
bluealsa-aplay -L
Este projeto recebe contribuições de código, documentação e teste.
Consulte o guia contribuinte para obter detalhes.
Os erros mais comumente encontrados são discutidos no guia de solução de problemas. Verifique esse arquivo para ver se já existe uma solução para o seu problema.
Se você não conseguir encontrar uma solução nesse documento ou lendo as páginas manuais, pesquise questões anteriores (abertas e fechadas) e consulte o wiki antes de levantar um novo problema. Infelizmente, o wiki não é indexado pelos mecanismos de pesquisa da web; portanto, a pesquisa on-line do seu problema não descobrirá as informações lá.
Se relatar um problema como um novo problema, use o modelo apropriado de relatório de problemas do Bluez-ILAS Github e preencha cada seção do modelo o mais plenamente possível.
O Bluealsa é licenciado nos termos da licença do MIT. Consulte o arquivo de licença para obter detalhes.