Advertencia
La última fuente usa nuevos nombres para algunos componentes centrales:
bluealsa
ahora se llama bluealsad
bluealsa-cli
ahora se llama bluealsactl
Consulte la Guía Wiki que migra desde la versión 4.3.1 o antes para obtener más información.
Este proyecto es un renacimiento de una integración directa entre Bluez y Alsa. Desde Bluez> = 5, la integración incorporada se ha eliminado a favor de las aplicaciones de audio de terceros. De ahora en adelante, Bluez actúa como un middleware entre una aplicación de audio, que implementa el perfil de audio Bluetooth y un dispositivo de audio Bluetooth.
El status quo actual es que para transmitir audio desde/a un dispositivo Bluetooth, uno tiene que instalar un servidor de audio de propósito general como Pipewire o PulseAudio, o usar Bluez Versión 4 que está en desuso y sin mantenimiento.
Este proyecto creó y mantiene un producto llamado Blualsa, con el cual se puede lograr el mismo soporte de perfil de audio Bluetooth que con Pulseaudio, pero con menos dependencias y en un nivel más bajo en la pila de software. Blualsa registra todos los perfiles de audio Bluetooth conocidos en Bluez, por lo que en teoría se pueden conectar cada dispositivo Bluetooth (con capacidades de audio).
Blualsa está diseñado específicamente para su uso en sistemas de audio o audio/visual dedicados pequeños, de baja potencia, donde no se requieren las características de gestión de audio de alto nivel de PulseAudio o Pipewire. El sistema de destino debe poder funcionar correctamente con todas sus aplicaciones de audio que se interactúan directamente con ALSA, con solo una aplicación a la vez utilizando cada transmisión de audio Bluetooth. En tales sistemas, Blualsa agrega soporte de audio Bluetooth al soporte de tarjeta de sonido ALSA existente. Tenga en cuenta que esto significa que las aplicaciones están limitadas por las capacidades de la ALSA API, y las características de procesamiento de audio de nivel superior de los servidores de audio como PulseAudio y Pipewire no están disponibles.
Blualsa consiste en el Daemon bluealsad
, los complementos ALSA y una serie de servicios públicos. El contexto básico se muestra en este diagrama:
TD de diagrama de flujo
ClassDef Externos Fill:#EEE, Stroke:#333, Width de trazo: 4px, color: negro;
Classdef Blualsa Fill:#BBF, Stroke:#333, Stroke-Width: 4px, color: negro;
A [Adaptador Bluetooth] <-> B ((Bluetoothd <br/> Daemon))
A <-> C ((Daemon Blualsad))
B <-dbus-> c
C <-dbus-> g ((bluealsactl))
C <-dbus-> d ((bluealsa-aplay))
D -> E ([Alsa Libasound])
E -> k [altavoces]
C <-dbus-> f ((bluealsa <br/> complementos de alsa)))
F <-> H ([alsa libaso])
H <-> I ((ALSA <br/> Aplicaciones))
C <-dbus-> j (("Otros D-bus <br/> clientes"))
C <-> L ((alsa midi <br/> secuenciador))
L <-> M ([Alsa Libasound])
M <-> n ((alsa midi <br/> aplicación))
Clase A, B, E, H, I, J, K, L, M, N External;
Clase C, D, F, G Blualsa;
El corazón de Bluealsa es el Daemon bluealsad
que interfiere con el Bluez Bluetooth Daemon bluetoothd
y el adaptador Bluetooth local. Maneja la lógica de conexión y configuración de perfil para A2DP, HFP y HSP y presenta las transmisiones de audio resultantes a las aplicaciones a través de D-Bus.
BLUEALSA incluye complementos ALSA que ocultan todos los detalles D-Bus y permiten que las aplicaciones usen las interfaces ALSA PCM e mezcladores, de modo que las aplicaciones AllaRa existentes puedan acceder a dispositivos de audio Bluetooth de la misma manera que usan PCM y mezcladores de tarjetas de sonido.
En el caso de BLE MIDI, el demonio crea un puerto MIDI simple directamente en el secuenciador MIDI ALSA, para que la aplicación ALSA MIDI pueda conectarse al dispositivo MIDI BLE remoto de la misma manera que se conectaría a un dispositivo MIDI local.
Blualsa también incluye una serie de aplicaciones de utilidad. De particular nota son:
bluealsactl
Una aplicación para permitir la gestión de la línea de comandos del sistema Blualsa.
bluealsa-aplaz
Una aplicación para simplificar la tarea de construir un altavoz Bluetooth usando Blualsa.
bluealsa-rfcomm
Una aplicación de línea de comandos que proporciona acceso al terminal RFCOMM para dispositivos HFP/HSP.
Las instrucciones de compilación e instalación se incluyen en el archivo instalación.md y una guía más detallada está disponible en el wiki.
El componente principal de Blualsa es un programa llamado bluealsad
. Por defecto, este programa se ejecutará como raíz durante el inicio del sistema. Registrará el servicio org.bluealsa
en el bus del sistema D-bus, que puede usarse para acceder a dispositivos de audio configurados. En general, Bluealsa actúa como un proxy entre Bluez y Alsa.
El Daemon bluealsad
debe estar ejecutándose para combinar, conectarse y usar dispositivos de audio Bluetooth remotos. Para transmitir audio a, por ejemplo, un auricular Bluetooth, en primer lugar, uno tiene que conectar el dispositivo. Si no está familiarizado con los procedimientos de emparejamiento y conexión de Bluetooth en Linux, hay una guía básica en el wiki: emparejamiento y conexión Bluetooth.
Para obtener detalles de las opciones de línea de comandos para bluealsad
, consulte la página del Manual de Blualsad.
Cuando se conecta un dispositivo de audio Bluetooth, uno puede usar el dispositivo PCM virtual bluealsa
con aplicaciones ALSA al igual que cualquier otro dispositivo PCM:
aplay -D bluealsa Bourree_in_E_minor.wav
Si hay más de un dispositivo Bluetooth conectado, el objetivo se puede especificar como un parámetro para el PCM:
aplay -D bluealsa:XX:XX:XX:XX:XX:XX, Bourree_in_E_minor.wav
Tenga en cuenta que este dispositivo PCM se basa en el complemento de E/S de PCM del software ALSA: no tiene una tarjeta de sonido asociada y no estará disponible en la interfaz de Kernel Proc de ALSA.
Los parámetros de configuración del dispositivo bluealsa
PCM se pueden configurar en el archivo de configuración .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
Blualsa también permite capturar audio desde el dispositivo Bluetooth conectado. Para hacerlo, uno tiene que usar el dispositivo Capture PCM, por ejemplo:
arecord -D bluealsa -f s16_le -c 2 -r 48000 capture.wav
Además del perfil A2DP, utilizado para audio de alta calidad, Blualsa también permite usar la conexión de audio del teléfono a través del enlace SCO. Uno puede usar soporte HSP/HFP incorporado, que implementa solo la parte relacionada con el audio de la especificación, o usar el servicio OFONO como back-end. Para abrir SCO Audio Connection, uno cambiará al perfil sco
como sigue:
aplay -D bluealsa:DEV=XX:XX:XX:XX:XX:XX,PROFILE=sco Bourree_in_E_minor.wav
Para controlar el nivel de audio de entrada o salida, uno puede usar el complemento de control bluealsa
proporcionado. Este complemento permite ajustar el volumen de la transmisión de audio o simplemente silenciarlo/desactivarlo, por ejemplo:
amixer -D bluealsa sset ' <control name> ' 70%
donde el nombre de control es el nombre de un dispositivo Bluetooth conectado con un sufijo de elemento de control, por ejemplo:
amixer -D bluealsa sset ' Jabra MOVE v2.3.0 A2DP ' 50%
Para obtener todos los detalles del dispositivo Blualsa ALSA PCM y el dispositivo mezclador, consulte la página Manual de complementos Blualsa.
También hay una serie de artículos sobre el Wiki del proyecto Bluez-Alsa que da más ejemplos de uso de estos complementos.
Para obtener una configuración ALSA más avanzada, consulte la documentación en línea AsoundRC proporcionada por la página Wiki de Alsaproject.
Es posible crear altavoz con Bluetooth con Blualsa. Para esto, se requiere reenviar la señal de audio de la PCM de captura Blualsa a otro PCM de reproducción (p. Ej. Tarjeta de audio incorporada). Para simplificar esta tarea, Blualsa incluye un programa llamado bluealsa-aplay
, que actúa como un simple jugador de Blualsa. Conecte su dispositivo Bluetooth (por ejemplo, teléfono inteligente) y haga lo siguiente:
bluealsa-aplay XX:XX:XX:XX:XX:XX
Para obtener detalles de las opciones de línea de comandos para bluealsa-aplay
, consulte la página del Manual Blualsa-Aplay. También hay algunos artículos sobre el Wiki del proyecto Bluez-Alsa que da ejemplos de su uso.
La lista de PCMS Blualsa disponibles (proporcionados por dispositivos Bluetooth conectados con capacidades de audio) se puede obtener directamente de la API Blualsa D-Bus o el uso de bluealsa-aplay
como un envoltorio conveniente de la siguiente manera:
bluealsa-aplay -L
Este proyecto da la bienvenida a las contribuciones de código, documentación y pruebas.
Consulte la guía de contribución para obtener más detalles.
Los errores más comúnmente encontrados se discuten en la guía de solución de problemas. Verifique ese archivo para ver si ya hay una solución para su problema.
Si no puede encontrar una solución en ese documento o leyendo las páginas manuales, busque problemas anteriores (tanto abiertos como cerrados) y consulte el wiki antes de plantear un nuevo problema. Desafortunadamente, el wiki no está indexado por los motores de búsqueda web, por lo que buscar en línea su problema no descubrirá la información allí.
Si informa un problema como un nuevo problema, utilice la plantilla de informes de problemas apropiada de Bluez-Alsa GitHub y complete cada sección de la plantilla lo más plenamente posible.
Blualsa tiene licencia bajo los términos de la licencia MIT. Consulte el archivo de licencia para obtener más detalles.