Bluetooth ヘッドセット
A2DP とあまり人気のない HFP/HSP は両方とも、カーネルおよびさまざまなサウンドサーバーによってサポートされています。Bluetooth は信頼性が低いことで悪名が高い [1] ですが、多くの実装では大幅な改善が見られ、Intel Bluetooth チップのような確立されたハードウェアでの耐え難いエクスペリエンスが多少軽減されています。
目次
- 1 PipeWire 経由のヘッドセット
- 2 Bluez5/PulseAudio 経由のヘッドセット
- 2.1 CLI による設定
- 2.2 GNOME Bluetooth 経由の設定
- 2.3 LDAC/aptX
- 2.4 トラブルシューティング
- 2.4.1 異音 / 雑音 / "濁った音"
- 2.4.2 オーディオプロファイルが選択されていますが、ヘッドセットが非アクティブであり、オーディオをリダイレクトできません
- 2.4.3 AuthenticationFailed でペアリングが失敗する
- 2.4.4 ペアリングは成功するが、接続が失敗する
- 2.4.5 接続は機能しますが、常に音の不具合が発生します
- 2.4.6 接続は成功するが、音が聞こえない
- 2.4.7 接続は機能しますが、デバイスが PulseAudio シンクに表示されません
- 2.4.8 接続は機能し、ヘッドフォンがアイドル状態になるまでサウンドは正常に再生されますが、その後途切れます。
- 2.4.9 UUIDs has unsupported type
- 2.4.10 PC からはデバイスがペアリング済みと認識されるがデバイスから PC が認識されていない
- 2.4.11 デバイスが接続され、しばらくすると切断される
- 2.4.12 Apple AirPodsの音量が小さい
- 2.4.13 Apple AirPods Pro は A2DP シンクとして PulseAudio で動作しますが、HSP/HFP では動作しません
- 2.4.14 HSP の問題: Bluetooth シンクとソースは作成されましたが、オーディオが送信されません
- 2.4.15 Error: Failed to start discovery org.bluez.Error.InProgress
- 2.4.16 ヘッドフォンと PulseAudio 間の同期による大音量
- 3 HSV と A2DP の設定の切り替え
- 4 Bluez5/bluez-alsa
- 5 テスト済みのヘッドセット
- 6 参照
PipeWire 経由のヘッドセット
PipeWire は PulseAudio のドロップイン代替品として機能し、Bluetooth ヘッドセットをセットアップする簡単な方法を提供します。これには、SBC/SBC-XQ、AptX、LDAC または AAC コーデック、および HFP/HSP を使用した A2DP シンクプロファイルのすぐに使えるサポートが含まれています。
pipewire-pulse (pulseaudio と pulseaudio-bluetooth を インストール して置き換えます)
デーモンは user service として自動的に起動されます。設定には、pavucontrol またはデスクトップ環境の設定を使用します。詳細については、PipeWire#Bluetooth デバイス を参照してください。
Bluez5/PulseAudio 経由のヘッドセット
PulseAudio 5.x はデフォルトで A2DP をサポートしています。以下のパッケージをインストールしてください: pulseaudio-alsa, pulseaudio-bluetooth, bluez, bluez-libs, bluez-utils, bluez-firmwareAUR。pulseaudio-bluetooth がないとペアリングした後に接続することができなくなります。エラーメッセージは表示されません。
Bluetooth システムを起動:
# systemctl start bluetooth
bluetoothctl コマンドラインユーティリティを使うことでペアリングと接続が行えます。bluetoothctl に関する詳細やトラブルシューティングは Bluetooth の記事を見てください。次のコマンドを実行することでコマンドプロンプトを開きます:
# bluetoothctl
そして以下を入力:
# power on # agent on # default-agent # scan on
ヘッドセットをペアリングモードにします。ヘッドセットは簡単に確認できます。例えば:
[NEW] Device 00:1D:43:6D:03:26 Lasmex LBT10
上記の場合、デバイスの名前は "Lasmex LBT10" で MAC アドレスは 00:1D:43:6D:03:26 です。この MAC アドレスを使ってペアリングを開始します:
# pair 00:1D:43:6D:03:26
ペアリングが完了したら、デバイスを明示的に接続する必要があります (every time?):
# connect 00:1D:43:6D:03:26
全てが上手くいけば、PulseAudio にアウトプットデバイスが新しく作られます。
pavucontrol の "Playback" や "Recording" タブを使うことでデバイスに音声を転送することができます。
スキャンを無効化してプログラムを終了:
# scan off # exit
CLI による設定
bluetooth.service
を 起動 します。
これで、bluetoothctl コマンド ラインユーティリティを使用してペアリングして接続できるようになりました。bluetoothctl のトラブルシューティングと詳細な説明については、Bluetooth の記事を参照してください。
$ bluetoothctl
内部コマンドプロンプトが表示されます。次に、次のように入力します。
[bluetooth]# power on [bluetooth]# agent on [bluetooth]# default-agent [bluetooth]# scan on
次に、ヘッドセットがペアリングモードになっていることを確認します。それはすぐに発見されるはずです。例えば、
[NEW] Device 00:1D:43:6D:03:26 Lasmex LBT10
は、自身を "Lasmex LBT10" と呼び、MAC アドレス "00:1D:43:6D:03:26" を持つデバイスを示しています。次に、その MAC アドレスを使用してペアリングを開始します。
[bluetooth]# pair 00:1D:43:6D:03:26
ペアリング後、デバイスを明示的に接続する必要もあります (これが機能しない場合は、接続を試行する 前に 以下の trust
コマンドを試してください。)
[bluetooth]# connect 00:1D:43:6D:03:26
接続エラー org.bluez.Error.Failed
が発生した場合は、まず既存の PulseAudio デーモンを強制終了して再試行してください。
$ pulseaudio -k [bluetooth]# connect 00:1D:43:6D:03:26
最後に、今後このデバイスに自動的に接続する場合は、次のようにします。
[bluetooth]# trust 00:1D:43:6D:03:26
すべてが正しく動作すれば、PulseAudio に別の出力デバイスが作成されます。
pavucontrol の "再生" タブと "録音" タブを使用して、そのデバイス経由でオーディオをリダイレクトできるようになりました。
ここで、スキャンを再度無効にしてプログラムを終了できます。
[bluetooth]# scan off [bluetooth]# exit
自動接続の設定
ヘッドセットを自動接続するには、PulseAudio のスイッチオン接続モジュールを有効にする必要があります。これを行うには、次の行を /etc/pulse/default.pa
に追加します。
/etc/pulse/default.pa
### Automatically switch to newly-connected devices load-module module-switch-on-connect
GNOME Bluetooth 経由の設定
GNOME Bluetooth グラフィカルフロントエンドを使用して、Bluetooth ヘッドセットを簡単に設定できます。
まず、bluetooth.service
systemd ユニットが実行されていることを確認する必要があります。
GNOME Bluetooth を開き、Bluetooth をアクティブにします。デバイスをスキャンした後、デバイスリストでヘッドセットを選択して接続できます。 デバイスメニューからサウンド設定パネルに直接アクセスして。デバイスが接続されると、サウンドパネルに新しいシンクが表示されます。
LDAC/aptX
LDAC/aptX コーデックは PulseAudio 15.0 以降でサポートされています。接続に使用しているコーデックは次のように確認できます。
$ pactl list | grep a2dp_codec
トラブルシューティング
異音 / 雑音 / "濁った音"
ヘッドセットの音質が悪い場合は、ヘッドセットが正しいプロファイルに設定されていないことが原因である可能性が高くなります。 問題を解決するには、HSV と A2DP の設定の切り替え を参照してください。
オーディオプロファイルが選択されていますが、ヘッドセットが非アクティブであり、オーディオをリダイレクトできません
一見、このメニューはデバイスが接続される前から利用可能です。面倒なことに効果はありません。受信機がデバイスを認識するとすぐにメニューが作成されるようです。
必ず bluetoothctl
を root として実行し、デバイスを手動で接続してください。毎回これを行う必要をなくす設定オプションがあるかもしれませんが、ペアリングも信頼も自動接続を誘発しません。
AuthenticationFailed でペアリングが失敗する
ペアリングが失敗する場合、次のコマンドで SSPMode を無効化 または有効化してみてください:
# btmgmt ssp off
または
# btmgmt ssp on
これらのコマンドを実行する間、Bluetooth 機器の電源を OFF にする必要がある可能性があります。
ペアリングは成功するが、接続が失敗する
bluetoothctl で以下のエラーが表示される場合:
[bluetooth]# connect 00:1D:43:6D:03:26 Attempting to connect to 00:1D:43:6D:03:26 Failed to connect: org.bluez.Error.Failed
以下のようなコマンドを使ってログを確認してみてください:
# systemctl status bluetooth # journalctl -n 20
以下のようなメッセージが確認できる場合:
bluetoothd[5556]: a2dp-sink profile connect failed for 00:1D:43:6D:03:26: Protocol not available
おそらく pulseaudio-bluetooth パッケージがインストールされていないのが原因です。インストールしたら、pulseaudio を再起動してください。
パッケージが欠けていることが問題ではない場合、PulseAudio が上手く起動していないのが原因です。一般的に PulseAudio を再起動することで問題は解決します。PulseAudio をユーザーで実行している場合に bluetoothctl を root で実行することは全く問題ありません。PulseAudio の再起動後、接続を再試行してください。ペアリングを繰り返す必要はありません。
PulseAudio の再起動で問題が直らないときは、module-bluetooth-discover をロードしてください:
# pactl load-module module-bluetooth-discover
上記の load-module コマンドは /etc/pulse/default.pa
に追加することができます。
それでも問題が修正されない場合、あるいは PulseAudio の system-wide モードを使っていない場合、以下の PulseAudio モジュールもロードしてください (以下のモジュールも default.pa
や system.pa
でロードすることができます):
module-bluetooth-policy module-bluez5-device module-bluez5-discover
接続は機能しますが、常に音の不具合が発生します
これは、Bluetooth と WiFi が同じ物理アンテナとおそらく帯域範囲 (2.4GHz) を共有しているため、同じチップを共有している場合に発生する可能性が非常に高くなります。これは Windows ではシームレスに機能しますが、Linux ではそうではありません。
考えられる解決策は、干渉が発生しないように WiFi ネットワークを 5GHz に移行することです。カード/ルーターがこれをサポートしていない場合は、WiFi ドライバー/ファームウェアをアップグレードできます。このアプローチは、Realtek 8723BE および AUR のこのチップ用の最新の rtl ドライバーで機能します。
上記の方法が何も不可能な場合は、フラグメントサイズと PulseAudio 出力ポートの遅延を微調整して干渉を補償することにより、あまり効果的ではありません。これらの設定によりオーディオが同期しなくなる可能性があるため (ビデオの再生時など)、適切な値を選択する必要があります。Bluetooth ヘッドセットのポートの遅延を変更するには (たとえば、次の例では 125000 マイクロ秒に):
$ pactl set-port-latency-offset <bluez_card> headset-output 125000
カードの識別子は次のようになります。
$ pacmd list-sinks | grep -Eo 'bluez_card[^>]*'
フラグメントサイズは /etc/pulse/daemon.conf
で設定でき、PulseAudio の再起動後に有効になります (詳細については、PulseAudio/トラブルシューティング#Pulseaudio におけるデフォルトのフラグメント・バッファサイズを設定する を参照してください)
おそらく、(適切な Bluetooth アダプターを使用して) options ath9k btcoex_enable=1
を /etc/modprobe.d/ath9k.conf
に追加すると役立つでしょう。
/etc/modprobe.d/ath9k.conf
# possibly fix for sound glitches options ath9k btcoex_enable=1
その後、再起動します。
接続は成功するが、音が聞こえない
システムログに以下のメッセージが記録されてないか確認してください:
bluetoothd[5556]: Endpoint registered: sender=:1.83 path=/MediaEndpoint/A2DPSource bluetoothd[5556]: Endpoint registered: sender=:1.83 path=/MediaEndpoint/A2DPSink
上記のようなメッセージがある場合、PulseAudio の設定を確認してください。もしくは、一度戻って接続が成功するかどうか確かめてください。
GDM を使っている場合、PulseAudio のインスタンスが起動して、bluetooth デバイスの接続を奪っている可能性があります。以下のコマンドを実行して GDM ユーザーで pulseaudio ソケットをマスクすることで問題は解決します:
# mkdir -p ~gdm/.config/systemd/user # ln -s /dev/null ~gdm/.config/systemd/user/pulseaudio.socket
再起動すれば PulseAudio のインスタンスが起動しなくなるはずです。
bluez がヘッドセットを a2dp に対応していると認識してくれない場合もあります。そのようなときは、以下のコマンドで bluetooth デバイスのインデックスを検索してください:
$ pacmd ls
以下のように bluetooth ヘッドセットに関連するセクションが出力されます:
pacmd ls
index: 2 name: <bluez_card.XX_XX_XX_XX_XX_XX> driver: <module-bluez5-device.c> owner module: 27 properties: device.description = "SONY MDR-100ABN" device.string = "XX:XX:XX:XX:XX:XX" device.api = "bluez" device.class = "sound" ...
プロファイルを手動で設定するには、以下のコマンドを実行 (2
は pacmd ls
で確認したデバイスのインデックスに置き換えてください):
$ pacmd set-card-profile 2 a2dp_sink
接続は機能しますが、デバイスが PulseAudio シンクに表示されません
ヘッドフォンが正常に接続された (bluetoothctl
経由で 確認済み である可能性がある) が、pavucontrol
で出力/入力シンクとして表示されない場合は、次のことを試してください。次のポリシーを Bluetooth 構成ファイル /etc/bluetooth/main.conf
に追加します。
/etc/bluetooth/main.conf
[General] Enable=Control,Gateway,Headset,Media,Sink,Socket,Source
これで問題が解決したと報告しているユーザーもいます 報告
接続は機能し、ヘッドフォンがアイドル状態になるまでサウンドは正常に再生されますが、その後途切れます。
ヘッドホンがアイドル状態になるまでサウンドを正しく再生し、再開時に音が途切れる場合 (たとえば、サウンドが一時停止されている、またはしばらくサウンドが再生されないため)、アイドル時の PulseAudio の自動シンク/ソース サスペンションを無効にしてみてください。
Bluetooth 接続でデータが送信されない場合、一部のユーザー が報告 に大幅な遅延が発生したり、音声が聞こえなくなったりすることがあります。これは、アイドル時にシンク/ソースを自動的に一時停止する module-suspend-on-idle
モジュールによるものです。これによりヘッドセットに問題が発生する可能性があるため、責任のあるモジュールを無効にすることができます。
module-suspend-on-idle
モジュールの読み込みを無効にするには、使用中の設定ファイル (~/.config/pulse/default.pa
または /etc/pulse/default.pa
):
~/.config/pulse/default.pa
### Automatically suspend sinks/sources that become idle for too long #load-module module-suspend-on-idle
最後に PulseAudio を再起動して、変更を適用します。
UUIDs has unsupported type
ペアリング中に bluetoothctl で以下のような出力がされることがあります:
[CHG] Device 00:1D:43:6D:03:26 UUIDs has unsupported type
このメッセージは無視してかまいません。
PC からはデバイスがペアリング済みと認識されるがデバイスから PC が認識されていない
デバイスが bluetooth LE のペアリングに対応していない可能性があります。
/etc/bluetooth/main.conf
で ControllerMode = bredr
を設定してみてください。詳しくは [2] を参照。
デバイスが接続され、しばらくすると切断される
ジャーナル に次のようなメッセージが表示され、デバイスが接続に失敗するか、接続後すぐに切断される場合:
bluetoothd: Unable to get connect data for Headset Voice gateway: getpeername: Transport endpoint is not connected (107) bluetoothd: connect error: Connection refused (111)
これは、同じ Bluetooth アダプタを使用してデバイスを別のオペレーティングシステムとすでにペアリングしていることが考えられます (デュアルブートなど) 一部のデバイス (Bluetooth アダプターなど) は、同じ MAC アドレスに関連付けられた複数のペアリングを処理できません。この問題は、デバイスを再ペアリングすることで修正できます、まずデバイスを削除します。
$ bluetoothctl [bluetooth]# devices Device XX:XX:XX:XX:XX:XX My Device [bluetooth]# remove XX:XX:XX:XX:XX:XX
次に、bluetooth.service
を 再起動 して Bluetooth アダプターの電源を入れ、デバイスを検出可能にして、デバイスを再スキャンして、デバイスを再ペアリングします。Bluetooth マネージャーによっては、デバイスを再検出するために完全な再起動を実行する必要がある場合があります。
Apple AirPodsの音量が小さい
次の内容で bluetooth.service
の ドロップインファイル を作成します。
/etc/systemd/system/bluetooth.service.d/noplugin-avrc.conf
[Service] ExecStart= ExecStart=/usr/lib/bluetooth/bluetoothd --noplugin=avrcp
次に、bluetooth.service
、を 再起動 して設定を リロード し、ヘッドセットを再接続します。
さらに、AirPods Pro の場合は、iPhone の設定で空間オーディオを無効にし、モノラルを有効にします。
これにより、AVRCP を通じて制御できない一部のデバイスの問題も解決できます。
Apple AirPods Pro は A2DP シンクとして PulseAudio で動作しますが、HSP/HFP では動作しません
AirPods Pro が PulseAudio で動作しているものの、HSP/HFP 構成を使用できない場合 (pavucontrol の 設定 タブで、通常は使用不可として表示されます) に切り替えてみてください。pipewire-pulse
pipewire-pulse に切り替えると (コンピューターまたは適切なユーザーレベルの systemd サービスを再起動すると)、HSP/HFP が有効になりますが、A2DP が無効になる可能性があることに注意してください。(設定 タブで A2DP シンク を選択すると、オプションは即座に選択解除され、オフ になります。) この問題が発生した場合は、次のように /var/lib/bluetooth
フォルダーを削除または名前変更します。
# mv /var/lib/bluetooth /var/lib/bluetooth.bak
その後、AirPods Pro (およびその他のデバイス) を再ペアリングします。これにより、すべての設定 (HSP/HFP および A2DP) が再び利用可能になり、pavucontrol および pacmd から簡単にアクセスできるようになります。
HSP の問題: Bluetooth シンクとソースは作成されましたが、オーディオが送信されません
ファームウェアが不足しているか、SCO (HSP および HFP のオーディオ プロトコル) ルーティングが間違っている可能性があります。[3] を参照してください。BCM20702 のファームウェアは、AUR 経由でインストールできます。bcm20702a1-firmwareAUR または bcm20702b0-firmwareAUR
Error: Failed to start discovery org.bluez.Error.InProgress
ヘッドセットは検出されたものの、"Error: Failed to start discovery org.bluez.Error.InProgress" というエラーが表示されて接続に失敗した場合は、bluez-hciconfigAUR をインストールして実行してください。
$ hciconfig hciX up $ hciconfig hciX reset
ここで、X はコンピュータの Bluetooth デバイスの識別子 (通常は 0) です。
CLI による設定 の手順に従って接続できるようになります。
ヘッドフォンと PulseAudio 間の同期による大音量
PulseAudio 15 以降、絶対音量 はヘッドフォンのオーディオ音量を PulseAudio と連動させるため、PulseAudio なしで音量を変更することは不可能になります。もう一方。Hoco W25 などの一部のヘッドフォンでは、不快な音量が発生する可能性があります。絶対音量 を無効にするには、/etc/pulse/default.pa
を編集して次の行を変更します。
load-module module-bluetooth-discover
から
load-module module-bluetooth-discover avrcp_absolute_volume=false
HSV と A2DP の設定の切り替え
これは、次のコマンドで簡単に実現できます。card_number
は、pacmd list-cards
を実行することで取得できます。
$ pacmd set-card-profile card_number a2dp_sink
ロールが設定されていない録画ストリームが表示されたときに A2DP から HSP へのプロファイルの自動切り替えを有効にするには、auto_switch=2
を load-module module-bluetooth-policy
に追加します。/etc/pulse/default.pa
PulseAudio プロファイルの詳細については、PulseAudio Documentation を参照してください。
PulseAudio で A2DP が動作しない
Socket インターフェイスの問題
bluez 4.1+ と PulseAudio 3.0+ を使っていて、PulseAudio でプロファイルを A2DP に切り替えられない場合、/etc/bluetooth/audio.conf
を編集して Enable=Socket
という行を削除して Disable=Socket
という行を追加することで Socket インターフェイスを無効化できます。
A2DP シンクプロファイルが使用できません
A2DP シンクプロファイルが利用できない場合、PulseAudio フロントエンドを備えた A2DP シンク (出力) に切り替えることはできず、A2DP シンクはリストにも表示されません。これは、pactl
で確認できます。
$ pactl list | grep -C2 A2DP Profiles: headset_head_unit: Headset Head Unit (HSP/HFP) (sinks: 1, sources: 1, priority: 30, available: yes) a2dp_sink: High Fidelity Playback (A2DP Sink) (sinks: 1, sources: 0, priority: 40, available: no) off: Off (sinks: 0, sources: 0, priority: 0, available: yes) Active Profile: headset_head_unit
pacmd
を使用してカードプロファイルを手動で設定しようとすると失敗します。
$ pacmd set-card-profile bluez_card.C4_45_67_09_12_00 a2dp_sink Failed to set card profile to 'a2dp_sink'.
これは、Bluedevil または別の BlueZ フロントエンドを介して Bluetooth ヘッドフォンに接続するときに PulseAudio のバージョン 10.0 から発生することが知られています。関連のバグレポート を参照してください。
この問題は、デフォルトで Handsfree
または Headset - HS
に設定される可能性がある一部の Bluetooth コントローラ (例: 0a12:0001、Cambridge Silicon Radio
) とヘッドフォンを最初にペアリングした後にも発生します。サービスを必要とするため、AudioSink
サービスを必要とする A2DP PulseAudio シンクへの切り替えは許可されません。
可能な解決策:
- 一部のヘッドセットでは、接続中にヘッドセットの音量または再生/一時停止コントロールを使用すると、A2DP プロファイルが使用可能になる可能性があります。
- bluez-utils から
bluetoothctl
経由でヘッドセットに接続すると、A2DP シンクプロファイルが利用可能になる可能性があります。Bluetooth デバイスが接続されるたびに、これが自動化されます: fix-bt-a2dpAUR (詳細な使用法)
[bluetooth]# connect headset_MAC_address
- Bluetooth の
AudioSink
サービスに手動で切り替えると、A2DP プロファイルとその A2DP PulseAudio シンクが利用可能になります。これは、blueman に含まれる blueman-manager を使用するか、AudioSink サービスの UUID をbluetoothctl
に登録することで実行できます。
$ bluetoothctl [bluetooth]# menu gatt [bluetooth]# register-service 0000110b-0000-1000-8000-00805f9b34fb [bluetooth]# quit
- ヘッドセットプロファイルを無効にする
/etc/bluetooth/main.conf
[General] Disable=Headset
- マルチプロファイルのサポートを有効にします。これは、A2DP およびヘッドセットオーディオをサポートするヘッドセットで役立つ場合があります。
/etc/bluetooth/main.conf
[General] MultiProfile=multiple
- 場合によっては、上記の手順がどれも機能しない場合があります。再起動したり、Bluetooth の電源をオフにしたりオンにしたりしてみても効果が無い可能性があります。この場合、
bluetooth.service
を 再起動 してみてください。 - オーディオコントロールパネルを備えた一部のヘッドフォンモデルでは、パネルの 再生/一時停止 ボタンを押して A2DP プロファイルを有効にする必要があります。
GDM を使用した Gnome
以下の手順は Gnome 3.24.2 および PulseAudio 10.0 でテストされましたが、他のバージョンにも適用でき、役立つ可能性があります。
GDM で GNOME を使用しているときにプロファイルを A2DP に変更すると PulseAudio が失敗する場合は、GDM が独自の PulseAudio インスタンスを開始しないようにする必要があります。
- 以下を追加することで、サーバーが実行されていない場合に PulseAudio クライアントがサーバーを自動的に起動しないようにします。
/var/lib/gdm/.config/pulse/client.conf
autospawn = no daemon-binary = /bin/true
- ソケットをアクティブ化しても systemd が PulseAudio を開始しないようにします。
$ sudo -ugdm mkdir -p /var/lib/gdm/.config/systemd/user $ sudo -ugdm ln -s /dev/null /var/lib/gdm/.config/systemd/user/pulseaudio.socket
- 再起動し、次のコマンドを使用して、
gdm
ユーザーの PulseAudio プロセスがないことを確認します。
$ pgrep -u gdm pulseaudio
この問題と代替修正に関する詳細な議論は、[4] および [5] で参照できます。あるいは、fix-bt-a2dpAUR をインストールしてみることもできます。
HFP が PulseAudio で動作しない
HFP 専用 Bluetooth ヘッドセットは、PulseAudio の標準構成では使用できない場合があります。それぞれのプロファイルが存在しますが、使用できません。
bluetoothctl info
UUID: Audio Sink (0000110b-0000-1000-8000-00805f9b34fb) UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb) UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb) UUID: Handsfree (0000111e-0000-1000-8000-00805f9b34fb)
pactl list
... Profiles: ... headset_head_unit: Headset Head Unit (HSP/HFP) (sinks: 1, sources: 1, priority: 30, available: no)
それぞれの問題を解決するには、PulseAudio と BlueZ を最新バージョンに更新します。次に、ofonoAUR と phonesimAUR を インストール ここ [7] の説明に従って偽のモデムを作成/アクティブ化します。:
- 以下を使用して
/etc/ofono/phonesim.conf
を作成します。
[phonesim] Address=127.0.0.1 Driver=phonesim Port=12345
- ユーザーとして開始:
$ phonesim -p 12345 /usr/share/phonesim/default.xml &
ofono.service
を 起動/有効化 します。- パワーモデム:
$ dbus-send --print-reply --system --dest=org.ofono /phonesim org.ofono.Modem.SetProperty string:"Powered" variant:boolean:true
- モデムをアクティブ化します:
$ dbus-send --print-reply --system --dest=org.ofono /phonesim org.ofono.Modem.SetProperty string:"Online" variant:boolean:true
- 結果を確認するには、
/usr/lib/ofono/test/
にインストールされている ofonoAUR のテストコマンドを使用します。モデムの電源を投入、アクティブ化、テストするには、以下を使用できます。
$ /usr/lib/ofono/test/enable-modem /phonesim $ /usr/lib/ofono/test/online-modem /phonesim $ /usr/lib/ofono/test/list-modems
それぞれのモデムセクションの出力は次のようになります。
... [ /phonesim ] Online = 1 Powered = 1 Lockdown = 0 Emergency = 0 Manufacturer = MeeGo ...
- 最後に、PulseAudio を再起動し、ヘッドセットを再接続します。これで、HFP が利用可能になるはずです。
headset_head_unit: ヘッドセットヘッドユニット (HSP/HFP) (sinks: 1, sources: 1, priority: 30, available: yes)
PulseAudio ヘッドセットの HSP/HFP への自動切り替えを無効にする
複数のプロファイルをサポートする Bluetooth ヘッドセットを使用すると、一部のアプリケーションは自動的に HSP/HFP プロファイルに切り替わります。この動作を望まない場合は、auto_switch=false パラメータを Bluetooth ポリシーモジュールに追加することでこれを無効にできます。
/etc/pulse/default.pa
load-module module-bluetooth-policy auto_switch=false
PipeWire HSP/HFP プロファイルを無効にする
PulseAudio とは異なり、PipeWire は入力イベントに応じて A2DP と HSP/HFP を自動的に切り替えません ただし、A2DP が失敗した場合に (低音質の) HSP/HFP プロファイルへの自動的な切り替えを有効にするのではなく、前者を完全に無効にした方がよい場合もあります。これを行うには、/usr/share/wireplumber/bluetooth.lua.d/50-bluez-config.lua
のコピーを作成します。以下に示すように、[8]
/etc/wireplumber/bluetooth.lua.d/50-bluez-config.lua (or ~/.config/wireplumber/bluetooth.lua.d/50-bluez-config.lua)
... bluez_monitor.properties = { ... ["bluez5.headset-roles"] = "[ ]", ... ["bluez5.hfphsp-backend"] = "none", } ... bluez_monitor.rules = { { ... apply_properties = { ... ["bluez5.auto-connect"] = "[ a2dp_sink ]", ... ["bluez5.hw-volume"] = "[ a2dp_sink ]", }, ... }, }
Bluez5/bluez-alsa
以下の方法を使うのは PulseAudio を使えない、あるいは使いたくない場合に限ります。
まずはヘッドセットがペアリング・接続できることを確認してください。PulseAudio で bluetoothctl
を使用するのと同じです。
bluez-alsa-gitAUR をインストールして bluealsa
サービスを起動・有効化してください。
/etc/dbus-1/system.d/bluetooth.conf
ファイルを編集して以下を </busconfig>
の前に追加してください:
<policy user="bluealsa"> <allow send_destination="org.bluez"/> </policy>
最後に bluealsa
を使うために、使用しているユーザーを audio
グループに追加してください。
以下のコマンドでヘッドセットをテストできます (MAC アドレスや音声ファイルは適当に置き換えてください):
$ aplay -D bluealsa:HCI=hci0,DEV=00:1D:43:6D:03:26,PROFILE=a2dp ./testme.wav
音が鳴るのであれば HCI, DEV, PROFILE をデフォルトに設定できます。以下を .asoundrc
に追加してください:
defaults.bluealsa { interface "hci0" device "00:1D:43:6D:03:26" profile "a2dp" }
これで bluealsa を使ってヘッドセットが使用できます。alsamixer
を使ってボリュームを設定することもできます (alsamixer -D bluealsa
)。
テスト済みのヘッドセット
機種 | バージョン | コメント | 対応状況 |
---|---|---|---|
Philips SHB3060 | bluez 5.40, PulseAudio 9.0 | ボタンが機能しません。対応プロファイル: HSP (マイクロフォンも動作) と A2DP。 | Yes |
Philips SHB4000WT | bluez5 | A2DP で動作、HDP は問題あり。 | Yes |
Philips SHB5500BK/00 | bluez 5.28, PulseAudio 6.0 | 停止・再生が機能せず。 | Limited |
Philips SHB7000 | 停止・再生がおかしい。 | Limited | |
Philips SHB7100 | bluez 5.32, pulseaudio 6.0 | 次へ・前へボタンも動作。停止・再生は微妙 (VLC では動くこともあるが、Audacious では全く機能しない)。A2DP と Handsfree の音声出力のみで確認。マイクは機能せず。 | Limited |
Philips SHB7150 | bluez 5.32, pulseaudio 6.0 | 次へ・前へボタンも動作。停止・再生は VLC では動作。A2DP プロファイルでのみ確認。 | Yes |
Philips SHB9100 | 停止・再生がおかしい。音質を改善する一時的な方法は [10] を参照。 | Limited | |
Philips SHB9150 | bluez5, pulseaudio 9 | Yes | |
Philips AEA2000/12 | bluez5 | Yes | |
Parrot Zik | マイクは認識されますが機能しません (HSP プロファイルは使えません)。Bluetooth 接続が切れると、音声に遅延が発生します。Bluetooth 接続を初期化することで解決します。 | Limited | |
Parrot Zik 2.0 | マイクは認識されますが機能しません (HSP プロファイルは使えません)。Bluetooth 接続が切れると、音声に遅延が発生します。Bluetooth 接続を初期化することで解決します。 | Limited | |
Parrot Zik 3.0 | マイクは認識されますが機能しません (HSP プロファイルは使えません)。遅延の問題はありません。 | Limited | |
Sony DR-BT50 | bluez{4,5} | a2dp で動作。[11] を参照。アダプタ: D-Link DBT-120 USB ドングル。 | Yes |
Sony SBH20 | bluez 5.30, pulseaudio 6.0 | A2DP プロファイルで問題なく動作。 | Yes |
Sony SBH50 | bluez5 | a2dp で動作。アダプタ: Broadcom Bluetooth 2.1 Device (Vendor=0a5c ProdID=219b Rev=03.43)。btusb モジュールが必要。
|
Yes |
Sony SBH80 | bluez 5.36, pulseaudio 7.1 | メディアボタンは機能せず。blueman でプロファイルを無効化して A2DP を有効化することで動作。 | Yes |
Sony MDR-XB950BT | pulseaudio | a2dp でテスト済み。アダプタ: Grand-X BT40G。自動で接続されない場合、手動で接続する必要があります。他の機能は問題なく動作。 | Limited |
Sony MDR-ZX330BT | bluez 5.31, pulseaudio 6.0 | 何も設定しなくても動作 (HSP/HFP と A2DP)。ボタンは特定のアプリで動作。 | Yes |
Sony MUC-M1BT1 | bluez5, pulseaudio-gitAUR | A2DP & HSP/HFP どちらも問題なく動作。 | Yes |
Sony WH-1000XM3 | bluez5, pulseaudio-gitAUR | A2DP & HSP/HFP どちらも動作。マイク、側面のタッチコントロールも使用可能です。 | Yes |
SoundBot SB220 | bluez5, pulseaudio-gitAUR | Yes | |
Auna Air 300 | bluez5, pulseaudio-git | 何らかの理由で、再起動が必要ですが、それで問題なく起動します。 | Limited |
Sennheiser MM 400-X | bluez5, pulseaudio 4.0-6 | Yes | |
Sennheiser MM 550-X Travel | bluez 5.27-1, pulseaudio 5.0-1 | 次・前ボタンは何も設定しなくても動作しますが、再生・停止ボタンは動作しません。 | Yes |
Sennheiser URBANITE XL Wireless | bluez 5.37-2, pulseaudio 7.1-3 | A2DP 高音質再生。再生・停止・次へ・前へも問題なく動作。 | Yes |
Sennheiser Momentum 2 | bluez5, pulseaudio 9.0-1 | GDM で起動できない問題を解決しないと A2DP プロファイルの変更に失敗することがあります。 | Yes |
Audionic BlueBeats (B-777) | bluez5, pulseaudio 4.0-6 | Yes | |
Logitech Wireless Headset | bluez 5.14, pulseaudio-git | 製造番号 PN 981-000381。iPad 用と喧伝されているヘッドセット。 | Yes |
Logitech UE9000 | bluez 5.37, pulseaudio 7.1, gnome 3.18.2 | gnome/gdm の修正をすることで再生可能。音声プロファイルのデフォルトは HSP/HFP。マイクは HSP/HFP と A2DP プロファイルのどちらでも動作。再生・停止や次へ・前へは Spotify や VLC で機能する。 | Yes |
HMDX Jam Classic Bluetooth | bluez, pulseaudio-git | Yes | |
PT-810 | bluez 5.14, pulseaudio-git | 汎用の USB 給電 Bluetooth 音声レシーバー。3.5mm ヘッドセットジャックと a2dp プロファイルで機能。"USB Bluetooth Receiver" ID として PT-810 は広く使えます。 | Yes |
Nokia BH-104 | bluez4 | Yes | |
Creative AirwaveHD | bluez 5.23 | Bluetooth アダプタ Atheros Communications usb: 0cf3:0036 | Yes |
Creative HITZ WP380 | bluez 5.27, pulseaudio 5.0-1 | A2DP プロファイルのみ。ボタンも動作 (再生, 停止, 次へ, 前へ)。ボリュームボタンはハードウェアのみ。自動接続もできるが bluetooth モジュールを "pulseaudio" に組み込んで自動的に切り替えさせる必要がある。ハイレゾ再生もクリア (デバイスとしては APTx コーデックをサポートしていますが Linux ではまだ対応されていません)。遅延の問題が発生するときは pulseaudio を再起動する必要あり。 | Yes |
deleyCON Bluetooth Headset | bluez 5.23 | アダプタ: CSL - USB nano Bluetooth-Adapter V4.0。a2dp プロファイルでテスト。マイクは未テスト。(ペアリングしても) 自動接続は行われないため、手動で接続する必要あり。再生/停止ボタンを押すとヘッドフォンがミュート/アンミュートになるが、再生には影響なし。次に進む/前に戻るボタンは動作せず (xev で変化なし)。 | Limited |
UE BOOM | bluez 5.27, pulseaudio-git 5.99 | 最新の UE BOOM fw 1.3.58 にアップデート。動画再生における音声の遅延は pavucontrol を設定することで解決できる。UE BOOM x2 で動作。 | Yes |
LG HBS-730 | bluez 5.30, pulseaudio 6.0 | A2DP プロファイルで何も設定しなくても動作。 | Yes |
LG HBS-750 | bluez 5.30, pulseaudio-git 6.0 | A2DP プロファイルで何も設定しなくても動作。 | Yes |
Beats Studio Wireless | bluez 5.28, pulseaudio 6.0 | 何も設定しなくても動作。マルチメディアボタンは未テスト。 | Yes |
AKG Y45BT | bluez 5.30, pulseaudio 6.0 | 停止・再生が動作せず。/etc/bluetooth/audio.conf に Enable=Socket を、/etc/pulse/default.pa に load-module module-bluetooth-discover を設定する必要あり。
|
Yes |
Bluedio Turbine/Turbine 2+ | bluez 5.3, pulseaudio 6.0 | HSP/HFP で動作、A2DP も問題なく動作。 | Yes |
Nokia BH-111 | bluez 5.30, pulseaudio 6.0 | HSP/HFP と A2DP どちらでも動作。ボタンは特定のアプリで動作。 | Yes |
Samsung Level Link | bluez 5.33, pulseaudio 6.0 | 何も設定しなくても動作 (HSP/HFP と A2DP)。ボタンは特定のアプリで動作。 | Yes |
Bernafon Soundgate 3 | bluez 5.34-2, pulseaudio 7.0-1 | blueman-git 2.0.r53.g2a812a8-1 をインストールすることで動作 (A2DP)。 | Yes |
JBL E40 BT | bluez 5.35, pulseaudio 7.0 | blueberry と blueman をインストールすることで接続可能。Disable=Socket を /etc/bluetooth/audio.conf に追加することで A2DP が動作。メディアボタンも動作。
|
Yes |
JBL Everest 300 | bluez 5.37, pulseaudio 8.0 | 全てが問題なく動作。HSP/HFP プロファイルでヘッドフォンを接続すると音質が悪いが、pavucontrol でプロファイルを A2DP sink に切り替えることで音質はかなり改善する。ペアリングに問題なし。 | Yes |
Kitsound Manhattan | bluez 5.37, pulseaudio 7.13 | 全て問題なし。Pulseaudio をユーザーでなく root で ( --system) 動作させた場合、ペアリングしても接続できなかったり、(アクセス PIN を要求して) システムがフリーズしてしまう可能性あり。注意が必要。 | Yes |
Jawbone Jambox | bluez 5.38, pulseaudio 8.0 | Yes | |
Plantronics BackBeat FIT | bluez5, pulseaudio 8.0 | ヘッドセットと a2dp プロファイルどちらも完全に動作。停止ボタンでプレイヤーを停止できます (mpv で確認)。 | Yes |
Plantronics BackBeat Pro | bluez5, pulseaudio 9.0 | ヘッドセットと a2dp プロファイルどちらも完全に動作。停止ボタンを押したりヘッドセットを外すとプレイヤーが停止します。 | Yes |
Aukey EP-B26 | bluez 5.39-1, pulseaudio 8.0-3 | ヘッドセット (低品質) と a2dp (高品質) プロファイルどちらも完全に動作。停止ボタンでプレイヤーを停止したり、次・前ボタンで曲を変えられます。マイクは HSP/HFP モードでのみ動作。 | Yes |
Bose AE2 SoundLink | bluez 5.36, pulseaudio 7.1 | 停止・再生ボタンが動作しません。マイクも使えません。 | Limited |
Bose QuietComfort 35 | bluez 5.41, pulseaudio 9.0 | ControllerMode=bredr を設定することでペアリングできます。
|
Yes |
Blue Tiger Dual Elite | bluez-5.42-1, pulseaudio 9.0-1 | pulseaudio-bluetooth パッケージで接続できます。マイクや操作ボタンは未確認。
|
Yes |
参照
Windows と Linux でペアリングを解除しないでデバイスを共有する方法: