Avertissement
La dernière source utilise de nouveaux noms pour certains composants principaux:
bluealsa
est maintenant appelé bluealsad
bluealsa-cli
est maintenant appelé bluealsactl
Voir le guide Wiki Migrant à partir de la version 4.3.1 ou plus tôt pour plus d'informations.
Ce projet est une renaissance d'une intégration directe entre Bluez et Alsa. Depuis Bluez> = 5, l'intégration intégrée a été supprimée en faveur des applications audio tierces. À partir de maintenant, Bluez agit comme un middleware entre une application audio, qui implémente le profil audio Bluetooth et un périphérique audio Bluetooth.
Le statu quo actuel est que pour diffuser l'audio de / vers un périphérique Bluetooth, il faut installer un serveur audio à usage général tel que Pipewire ou Pulseaudio, ou utiliser Bluez version 4 qui est obsolète et non entretenu.
Ce projet a créé et maintient un produit appelé Bluealsa, avec lequel on peut réaliser le même support de profil audio Bluetooth qu'avec PulseAudio, mais avec moins de dépendances et à un niveau inférieur dans la pile logicielle. Bluealsa enregistre tous les profils audio Bluetooth connus dans Bluez, donc en théorie, chaque périphérique Bluetooth (avec des capacités audio) peut être connecté.
Bluealsa est conçu spécifiquement pour une utilisation sur de petits systèmes audio ou audio / visuels dédiés à faible puissance où les fonctionnalités de gestion audio de haut niveau de Pulseaudio ou Pipewire ne sont pas nécessaires. Le système cible doit être capable de fonctionner correctement avec toutes ses applications audio interfaçantes directement avec ALSA, avec une seule application à la fois en utilisant chaque flux audio Bluetooth. Dans de tels systèmes, Bluealsa ajoute une prise en charge audio Bluetooth à la prise en charge existante de la carte son ALSA. Remarque Cela signifie que les applications sont limitées par les capacités de l'API ALSA, et les fonctionnalités de traitement audio de niveau supérieur des serveurs audio telles que Pulseaudio et Pipewire ne sont pas disponibles.
Bluealsa se compose du démon bluealsad
, des plug-ins Alsa et d'un certain nombre de services publics. Le contexte de base est montré dans ce diagramme:
Organigramme TD
ClassDef Fill externe: # EEE, trait: # 333, largeur de course: 4px, couleur: noir;
ClassDef Bluealsa Fill: # BBF, trait: # 333, largeur de course: 4px, couleur: noir;
Un [adaptateur Bluetooth] <-> b ((bluetoothd <br/> démon))
A <-> C ((démon de Bluealsad))
B <- dbus -> c
C <- dbus -> g ((bluealsactl))
C <- dbus -> d ((bluealsa-aplay))
D -> e ([alsa libasound])
E -> k [locuteurs]
C <- dbus -> f ((bluealsa <br/> plug-ins))))
F <-> h ([alsa libasound])
H <-> i ((alsa <br/> applications))
C <- DBUS -> J (("Autre d-bus <br/> Clients"))
C <-> l ((alsa midi <br/> séquenceur))
L <-> m ([alsa libasound])
M <-> n ((alsa midi <br/> application)))
Classe A, B, E, H, I, J, K, L, M, N externe;
Classe C, D, F, G Bluealsa;
Le cœur de Bluealsa est le démon bluealsad
qui interface avec le démon Bluetooth Bluetooth bluetoothd
et l'adaptateur Bluetooth local. Il gère la logique de connexion et de configuration de profil pour A2DP, HFP et HSP et présente les flux audio résultants vers les applications via D-BUS.
Bluealsa comprend des plug-ins ALSA qui masquent toutes les spécificités D-Bus et les applications de permis pour utiliser les interfaces ALSA PCM et Mixer, afin que les applications ALSA existantes puissent accéder aux appareils audio Bluetooth de la même manière qu'ils utilisent des PCM et des mélangeurs de carte son.
Dans le cas de BLE MIDI, le démon crée un simple port MIDI directement dans le séquenceur MIDI ALSA, de sorte que l'application MIDI ALSA peut se connecter à l'appareil MIDI BLE distant de la même manière qu'il se connecterait à un appareil MIDI local.
Bluealsa comprend également un certain nombre d'applications de services publics. Il convient de noter en particulier:
bluealsactl
Une application pour permettre la gestion de la ligne de commande du système Bluealsa.
Bluealsa.
Une application pour simplifier la tâche de construction d'un haut-parleur Bluetooth à l'aide de Bluealsa.
bluealsa-rfcomm
Une application de ligne de commande qui donne accès au terminal RFCOMM pour les périphériques HFP / HSP.
Les instructions de construction et d'installation sont incluses dans le fichier install.md et des conseils plus détaillés sont disponibles dans le wiki.
Le composant principal de Bluealsa est un programme appelé bluealsad
. Par défaut, ce programme doit être exécuté sous forme de racine pendant le démarrage du système. Il enregistrera le service org.bluealsa
dans le bus système D-BUS, qui peut être utilisé pour accéder aux appareils audio configurés. En général, Bluealsa agit comme un mandataire entre Bluez et Alsa.
Le démon bluealsad
doit être exécuté afin de jumeler, de connecter et d'utiliser des périphériques audio Bluetooth distants. Afin de diffuser l'audio pour par exemple un casque Bluetooth, il faut d'abord connecter l'appareil. Si vous n'êtes pas familier avec les procédures d'appariement et de connexion Bluetooth sur Linux, il existe un guide de base dans le couple et la connexion Bluetooth Wiki: Bluetooth.
Pour plus de détails sur les options de ligne de commande à bluealsad
, consultez la page manuelle Bluealsad.
Lorsqu'un périphérique audio Bluetooth est connecté, on peut utiliser le périphérique PCM virtuel bluealsa
avec des applications ALSA comme tout autre périphérique PCM:
aplay -D bluealsa Bourree_in_E_minor.wav
S'il y a plus d'un périphérique Bluetooth connecté, le cible peut être spécifié comme paramètre au PCM:
aplay -D bluealsa:XX:XX:XX:XX:XX:XX, Bourree_in_E_minor.wav
Veuillez noter que ce périphérique PCM est basé sur le plug-in ALSA Software PCM I / O - il n'a pas de carte son associée, et elle ne sera pas disponible dans l'interface ALSA Kernel Proc.
Les paramètres de configuration du périphérique bluealsa
PCM peuvent être définis dans le fichier de configuration .asoundrc
local comme ceci:
cat ~ /.asoundrc
defaults.bluealsa.service " org.bluealsa "
defaults.bluealsa.device " XX:XX:XX:XX:XX:XX "
defaults.bluealsa.profile " a2dp "
defaults.bluealsa.delay 10000
Bluealsa permet également de capturer l'audio à partir du périphérique Bluetooth connecté. Pour ce faire, il faut utiliser le périphérique PCM Capture, par exemple:
arecord -D bluealsa -f s16_le -c 2 -r 48000 capture.wav
En plus du profil A2DP, utilisé pour l'audio de haute qualité, Bluealsa permet également d'utiliser la connexion audio du téléphone via le lien SCO. On peut utiliser la prise en charge HSP / HFP intégrée, qui implémente uniquement la partie liée audio de la spécification, ou utilise le service OFORO comme back-end. Afin d'ouvrir la connexion audio SCO, il faut passer au profil sco
comme suit:
aplay -D bluealsa:DEV=XX:XX:XX:XX:XX:XX,PROFILE=sco Bourree_in_E_minor.wav
Afin de contrôler le niveau d'audio d'entrée ou de sortie, on peut utiliser le plug-in de contrôle bluealsa
fourni. Ce plug-in permet de régler le volume du flux audio ou simplement de le faire mue / lance, par exemple:
amixer -D bluealsa sset ' <control name> ' 70%
où le nom de contrôle est le nom d'un périphérique Bluetooth connecté avec un suffixe d'élément de contrôle, par exemple:
amixer -D bluealsa sset ' Jabra MOVE v2.3.0 A2DP ' 50%
Pour plus de détails sur le périphérique Bluealsa ALSA PCM et le périphérique de mélangeur, consultez la page manuelle des plug-ins Bluealsa.
Il existe également un certain nombre d'articles sur le Wiki du projet Bluez-Alsa donnant plus d'exemples d'utilisation de ces plug-ins.
Pour une configuration ALSA plus avancée, consultez la documentation en ligne ASOUNDRC fournie par la page Wiki Alsaproject.
Il est possible de créer un haut-parleur alimenté par Bluetooth à l'aide de Bluealsa. Pour cela, il est nécessaire de transmettre le signal audio du Bluealsa Capture PCM à un autre PCM de lecture (par exemple, carte audio intégrée). Afin de simplifier cette tâche, Bluealsa comprend un programme appelé bluealsa-aplay
, qui agit comme un simple lecteur Bluealsa. Connectez votre appareil Bluetooth (par exemple, smartphone) et faites comme suit:
bluealsa-aplay XX:XX:XX:XX:XX:XX
Pour plus de détails sur les options de ligne de commande pour bluealsa-aplay
, consultez la page manuelle de Bluealsa Avlay. Il existe également des articles sur le Wiki du projet Bluez-Alsa donnant des exemples de son utilisation.
La liste des PCM Bluealsa disponibles (fournies par les appareils Bluetooth connectés avec des capacités audio) peut être obtenu directement à partir de l'API Bluealsa D-BUS ou à l'aide de bluealsa-aplay
comme un emballage pratique comme suit:
bluealsa-aplay -L
Ce projet accueille les contributions du code, de la documentation et des tests.
Veuillez consulter le guide de contribution pour plus de détails.
Les erreurs les plus couramment rencontrées sont discutées dans le guide de dépannage. Veuillez vérifier ce fichier pour voir s'il existe déjà une solution pour votre problème.
Si vous ne pouvez pas trouver de solution dans ce document ou en lisant les pages manuelles, veuillez rechercher les problèmes précédents (ouverts et fermés), et consultez le wiki avant de soulever un nouveau problème. Malheureusement, le wiki n'est pas indexé par les moteurs de recherche Web, donc la recherche en ligne de votre numéro ne découvrira pas les informations.
Si vous signalez un problème en tant que nouveau problème, veuillez utiliser le modèle de rapport de problème Bluez-AlSA GitHub approprié et compléter chaque section du modèle aussi pleinement que possible.
Bluealsa est concédé sous licence de la licence du MIT. Voir le fichier de licence pour plus de détails.