警告
最新のソースは、一部のコアコンポーネントに新しい名前を使用しています。
bluealsa
Daemonは現在bluealsad
と呼ばれていますbluealsa-cli
ユーティリティは現在、 bluealsactl
と呼ばれています詳細については、リリース4.3.1以前から移行しているWikiガイドを参照してください。
このプロジェクトは、BluezとAlsaの直接的な統合の再生です。 Bluez> = 5以来、組み込みの統合はサードパーティのオーディオアプリケーションを支持して削除されました。これから、Bluezは、BluetoothオーディオプロファイルとBluetoothオーディオデバイスを実装するオーディオアプリケーションの間のミドルウェアとして機能します。
現在の現状は、Bluetoothデバイスからオーディオをストリーミングするには、PipewireやPulseaudioなどの汎用オーディオサーバーをインストールするか、非推奨および未装備のBluezバージョン4を使用する必要があるということです。
このプロジェクトは、BlueAlsaと呼ばれる製品を作成および維持し、Pulseaudioと同じBluetoothオーディオプロファイルサポートを実現できますが、依存関係が少なく、ソフトウェアスタックの低レベルです。 BlueAlsaは、Bluezのすべての既知のBluetoothオーディオプロファイルを登録するため、理論的にはすべてのBluetoothデバイス(オーディオ機能を使用)を接続できます。
BlueAlsaは、PulseaudioまたはPipewireの高レベルのオーディオ管理機能が必要ない、小規模で低電力の専用オーディオまたはオーディオ/ビジュアルシステムで使用するために特別に設計されています。ターゲットシステムは、すべてのオーディオアプリケーションがALSAと直接インターフェースすることで正しく機能できる必要があり、各Bluetoothオーディオストリームを使用して一度に1つのアプリケーションのみが1つだけです。このようなシステムでは、BlueAlsaは既存のALSAサウンドカードサポートにBluetoothオーディオサポートを追加します。これは、アプリケーションがALSA APIの機能によって制約されていることを意味し、PulseaudioやPipewireなどのオーディオサーバーの高レベルのオーディオ処理機能は利用できません。
BlueAlsaは、デーモンbluealsad
、ALSAプラグイン、および多くのユーティリティで構成されています。この図には、基本的なコンテキストが示されています。
フローチャートTD
ClassDef外部塗りつぶし:#eee、stroke:#333、stroke-width:4px、color:black;
ClassDef BlueAlsa Fill:#BBF、STROKE:#333、STROKE-WIDTH:4PX、COLOR:BLACK;
a [bluetoothアダプター] <-> b((bluetoothd <br/> daemon))
a < - > c((bluealsad daemon))
B <-dbus-> c
c <-dbus-> g((bluealsactl))
c <-dbus-> d((bluealsa-aplay))
d-> e([alsa libasound])
E-> k [スピーカー]
c <-dbus-> f((bluealsa <br/> alsaプラグイン))
f < - > h([alsa libasound])
h <-> i((alsa <br/>アプリケーション))
c <-dbus-> j(( "他のd-bus <br/>クライアント"))
c < - > l((alsa midi <br/> sequencer))
l < - > m([alsa libasound])
m <-> n((alsa midi <br/> application))
クラスA、B、E、H、I、J、K、L、M、N外部;
クラスC、D、F、G Bluealsa;
BlueAlsaの中心は、Bluez Bluetooth Daemon bluetoothd
とローカルBluetoothアダプターとインターフェイスするデーモンbluealsad
です。 A2DP、HFP、およびHSPのプロファイル接続と構成ロジックを処理し、結果のオーディオストリームをD-BUSを介してアプリケーションに提示します。
BlueAlsaには、すべてのD-BUS詳細を非表示にし、ALSA PCMおよびミキサーインターフェイスを使用できるようにするALSAプラグインが含まれているため、既存のALSAアプリケーションは、サウンドカードPCMとミキサーを使用するのと同じ方法でBluetoothオーディオデバイスにアクセスできます。
BLE MIDIの場合、デーモンはALSA MIDIシーケンサーに直接シンプルなMIDIポートを作成し、ALSA MIDIアプリケーションがローカルMIDIデバイスに接続するのと同じ方法でリモートBLE MIDIデバイスに接続できます。
BlueAlsaには、多くのユーティリティアプリケーションも含まれています。特に注目すべきは次のとおりです。
bluealsactl
BlueAlsaシステムのコマンドライン管理を許可するアプリケーション。
bluealsa-aplay
BlueAlsaを使用してBluetoothスピーカーを構築するタスクを簡素化するためのアプリケーション。
bluealsa-rfcomm
HFP/HSPデバイス用のRFCOMM端子へのアクセスを提供するコマンドラインアプリケーション。
ビルドおよびインストール手順はファイルinstall.mdに含まれており、Wikiでより詳細なガイダンスを利用できます。
Bluealsaの主なコンポーネントは、 bluealsad
と呼ばれるプログラムです。デフォルトでは、このプログラムはシステムの起動中にルートとして実行されるものとします。 D-Bus Systemバスにorg.bluealsa
サービスを登録します。これは、構成されたオーディオデバイスへのアクセスに使用できます。一般に、BluealsaはBluezとAlsaの間の代理として機能します。
リモートBluetoothオーディオデバイスのペアリング、接続、および使用するために、 bluealsad
デーモンが実行されている必要があります。 AudioをBluetoothヘッドセットにストリーミングするには、最初にデバイスを接続する必要があります。 LinuxのBluetoothのペアリングと接続手順に慣れていない場合は、Wikiに基本的なガイドがあります:Bluetoothのペアリングと接続があります。
bluealsad
へのコマンドラインオプションの詳細については、BlueAlsadマニュアルページを参照してください。
Bluetoothオーディオデバイスが接続されている場合、他のPCMデバイスと同様に、ALSAアプリケーションを使用してbluealsa
仮想PCMデバイスを使用できます。
aplay -D bluealsa Bourree_in_E_minor.wav
複数のBluetoothデバイスが接続されている場合、ターゲット1はPCMのパラメーターとして指定できます。
aplay -D bluealsa:XX:XX:XX:XX:XX:XX, Bourree_in_E_minor.wav
このPCMデバイスは、ALSAソフトウェアPCM I/Oプラグインに基づいていることに注意してください。関連するサウンドカードはなく、ALSAカーネルProcインターフェイスでは利用できません。
bluealsa
PCMデバイスのセットアップパラメーターは、このようなローカル.asoundrc
構成ファイルで設定できます。
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では、接続されたBluetoothデバイスからオーディオをキャプチャすることもできます。そのためには、キャプチャPCMデバイスを使用する必要があります。
arecord -D bluealsa -f s16_le -c 2 -r 48000 capture.wav
高品質のオーディオに使用されるA2DPプロファイルに加えて、BlueAlsaはSCOリンクを介して電話オーディオ接続を使用することもできます。組み込みのHSP/HFPサポートのいずれかを使用できます。これは、仕様のオーディオ関連の部分のみを実装したり、バックエンドとしてのONOサービスを使用したりできます。 SCOオーディオ接続を開くには、次のようにsco
プロファイルに切り替えます。
aplay -D bluealsa:DEV=XX:XX:XX:XX:XX:XX,PROFILE=sco Bourree_in_E_minor.wav
入力または出力オーディオレベルを制御するために、提供されたbluealsa
コントロールプラグインを使用できます。このプラグインを使用すると、オーディオストリームのボリュームを調整するか、単にミュート/ミュートを解除できます。
amixer -D bluealsa sset ' <control name> ' 70%
制御名は、コントロール要素の接尾辞を備えた接続されたBluetoothデバイスの名前です。
amixer -D bluealsa sset ' Jabra MOVE v2.3.0 A2DP ' 50%
Bluealsa Alsa PCMデバイスとミキサーデバイスの詳細については、Bluealsaプラグインマニュアルページをご覧ください。
また、Bluez-Alsa Project Wikiに関する多くの記事があり、これらのプラグインをより多くの例を挙げています。
より高度なALSA構成については、AlSaproject Wikiページが提供するASOUNDRCオンラインドキュメントを参照してください。
BlueAlsaを使用してBluetooth搭載スピーカーを作成することが可能です。このためには、BlueAlsaキャプチャPCMからオーディオ信号を他の再生PCM(組み込みオーディオカードなど)に転送する必要があります。このタスクを簡素化するために、Bluealsaには、Simple Bluealsaプレーヤーとして機能するbluealsa-aplay
というプログラムが含まれています。 Bluetoothデバイス(スマートフォンなど)を接続し、次のように実行します。
bluealsa-aplay XX:XX:XX:XX:XX:XX
bluealsa-aplay
のコマンドラインオプションの詳細については、Bluealsa-Aplayマニュアルページを参照してください。 Bluez-AlsaプロジェクトWikiに関する記事もいくつかあります。
利用可能なBlueAlsa PCMのリスト(接続されたBluetoothデバイスがオーディオ機能を備えた)は、Bluealsa D-Bus APIから直接取得するか、次のように便利なラッパーとしてbluealsa-aplay
を使用できます。
bluealsa-aplay -L
このプロジェクトは、コード、ドキュメント、テストの貢献を歓迎します。
詳細については、寄稿ガイドをご覧ください。
最も一般的に遭遇するエラーは、トラブルシューティングガイドで説明されています。そのファイルを確認して、問題の解決策が既にあるかどうかを確認してください。
そのドキュメントでソリューションを見つけることができない場合、またはマニュアルページを読むことができない場合は、以前の問題(オープンとクローズの両方)を検索し、新しい問題を提起する前にWikiを参照してください。残念ながら、WikiはWeb検索エンジンによってインデックス化されていないため、問題をオンラインで検索しても、そこに情報が発見されません。
問題を新しい問題として報告する場合は、適切なBluez-Alsa Githubの問題レポートテンプレートを使用して、テンプレートの各セクションをできるだけ完全に完了してください。
Bluealsaは、MITライセンスの条件に基づいてライセンスされています。詳細については、ライセンスファイルを参照してください。