Arch LinuxでBluetoothデバイスにスムーズに接続する方法

私は週末に自宅でゲームをするためにArch Linuxを使っていますが、AirPods ProやBluetoothスピーカーに接続する必要があります。長年の経験から得た知識を共有したいと思います。

KDEやGnomeのような成熟したデスクトップ環境には、Bluetooth接続用のGUIプログラムが用意されています。しかし、場合によっては問題が発生し、コマンドラインインターフェースに戻って対処しなければならないこともあります。以前、UbuntuでBluetoothヘッドセットの接続問題を解決する方法について記事を書きました。

この記事では、Arch + labwc を使用したカスタム環境で Bluetooth デバイスへの安定した接続を確保する方法に焦点を当てます。

1. Bluetooth デバイスの接続方法

bluetoothctl コマンドラインツールを使って、すべてを一度に実行することをお勧めします。これは、Linux で Bluetooth デバイスに接続するための実用的なソリューションです。

まず、Arch に bluez パッケージをインストールします。このパッケージは Bluetooth プロトコルスタックを提供し、bluez-utils パッケージは bluetoothctl コマンドラインツールを提供します。他のディストリビューションにも同様のオプションがあり、簡単に検索すれば見つかります。

Bluetooth 制御モードに関する問題:

1➜ ~ grep ControllerMode -B3 /etc/bluetooth/main.conf
2# すべてのコントローラーを指定されたトランスポートに制限します。デフォルト値は
3# "dual" で、BR/EDR と LE の両方が有効です(ハードウェアでサポートされている場合)。
4# 使用可能な値: "dual", "bredr", "le"
5#ControllerMode = dual

これらはそれぞれ、双方向、従来型、低電力モードです。AIに聞いてみました😊。お使いのデバイスが新しい場合は、デフォルトのデュアル設定で問題ありません。それでもうまくいかない場合は、別のモードに変更してみてください。設定の変更を有効にするには再起動が必要です。

上記の出力に示されているように、私はデフォルト設定を使用しています。実際には、AirPod Pro 2とAciton IIIの両方に問題なく接続しています。

Aciton IIIを例に挙げると(AirPodsについては以前に記事を書いています)、デモのプロセスは次のとおりです。まず、スピーカーの電源を入れた後、Bluetoothペアリングボタンを長押しします。ビープ音が聞こえたら、次の操作を実行してください。

 1➜ ~ bluetoothctl
 2[bluetooth]# エージェントが登録されました
 3[bluetooth]# スキャンがオンになりました
 4[bluetooth]# SetDiscoveryFilter が成功しました
 5[bluetooth]# 検出が開始されました
 6[bluetooth]# [CHG] コントローラー E4:C7:67:3F:6A:0A 検出中: はい
 7[bluetooth]# [NEW] デバイス 77:FF:F0:47:08:D4 77-FF-F0-47-08-D4
 8[bluetooth]# [NEW] デバイス C8:C2:E6:CC:9B:54 ACTON III [LE]
 9[bluetooth]# [NEW] デバイス 7D:97:57:B3:41:3F 7D-97-57-B3-41-3F
10[bluetooth]# [NEW] デバイス4B:40:4A:38:4F:92 4B-40-4A-38-4F-92
11[bluetooth]# [NEW] デバイス 50:5E:5C:95:0B:A4 ACTON III
12[bluetooth]# [NEW] デバイス 7A:02:E0:F1:DB:F6 7A-02-E0-F1-DB-F6
13[bluetooth]# connect [CHG] デバイス 7D:97:57:B3:41:3F RSSI: 0xffffffa4 (-92)
14[bluetooth]# connect 50:5E:5C:95:0B:A4
1550:5E:5C:95:0B:A4 への接続を試行中
16[bluetooth]# [CHG] デバイス 7A:02:E0:F1:DB:F6 RSSI: 0xffffffa2 (-94)
17[ACTON III]# [CHG] デバイス 50:5E:5C:95:0B:A4 接続済み: はい
18[ACTON III]# [CHG] デバイス 50:5E:5C:95:0B:A4 モダリティ: bluetooth:v0094p0004d0100
19[ACTON III]# [CHG] デバイス 50:5E:5C:95:0B:A4 UUID: 00000000-0000-0000-0099-aabbccddeeff
20[ACTON III]# [CHG] デバイス 50:5E:5C:95:0B:A4 UUID: 00000000-deca-fade-deca-deafdecacaff
21[ACTON III]# [CHG] デバイス50:5E:5C:95:0B:A4 UUID: 0000110b-0000-1000-8000-00805f9b34fb
22[ACTON III]# [CHG] デバイス 50:5E:5C:95:0B:A4 UUID: 0000110c-0000-1000-8000-00805f9b34fb
23[ACTON III]# [CHG] デバイス 50:5E:5C:95:0B:A4 UUID: 0000110e-0000-1000-8000-00805f9b34fb
24[ACTON III]# [CHG] デバイス 50:5E:5C:95:0B:A4 UUID: 00001200-0000-1000-8000-00805f9b34fb
25[ACTON III]# [CHG] デバイス 50:5E:5C:95:0B:A4 UUID: 0000ff01-0000-1000-8000-00805f9b34ff
26[ACTON III]# [CHG] デバイス 50:5E:5C:95:0B:A4 UUID: df21fe2c-2515-4fdb-8886-f12c4d67927c
27[ACTON III]# [CHG] デバイス 50:5E:5C:95:0B:A4 UUID: fa349b5f-8050-0030-0010-00001bbb231d
28[ACTON III]# [CHG] デバイス 50:5E:5C:95:0B:A4 ServicesResolved: yes
29[ACTON III]# [NEW] デバイス F9:83:83:EA:E2:D6 F9-83-83-EA-E2-D6
30[ACTON III]# [CHG] デバイス 50:5E:5C:95:0B:A4 Bonded: yes
31[ACTON III]# [CHG] デバイス 50:5E:5C:95:0B:A4 Paired: yes
32[ACTON III]# [NEW] エンドポイント /org/bluez/hci0/dev_50_5E_5C_95_0B_A4/sep1
33[ACTON III]# [NEW] トランスポート/org/bluez/hci0/dev_50_5E_5C_95_0B_A4/sep1/fd0
34[ACTON III]# [CHG] トランスポート /org/bluez/hci0/dev_50_5E_5C_95_0B_A4/sep1/fd0 遅延: 0x05dc (1500)
35[ACTON III]# 接続成功
36[ACTON III]# [CHG] トランスポート /org/bluez/hci0/dev_50_5E_5C_95_0B_A4/sep1/fd0 ボリューム: 0x0013 (19)
37[ACTON III]# [NEW] デバイス 72:FF:AE:FE:20:06 72-FF-AE-FE-20-06
38[ACTON III]#

上記の出力をよく見てください。まず「スキャンオン」で Bluetooth をスキャンしています。デバイスの場合、「[bluetooth]# [NEW] Device 50:5E:5C:95:0B:A4 ACTON III」と実行すれば、MACアドレスが正しく検出されたことがわかります。

当然のことながら、「[bluetooth]# connect 50:5E:5C:95:0B:A4」と実行すれば、接続成功です。

さらに、「pair xxx」「trust xxx」「disconnet xxx」「remove xxx」といったコマンドもあります。xxxはMACアドレスを表し、英語の意味から推測しやすいです。覚えやすいので、必要なものを選んでください。

ほとんどの場合、上記の接続方法で接続に成功すると、Bluetoothデバイスを通常通り使用できます(音を聞いたり、音量を調整したりできます)。私が持っている外付けBluetoothデバイスはこれらだけですが、ほとんど問題に遭遇していません。

AirPods Pro 2に関しては、様々な透明度モードや遮音モードで手軽に使えると期待するのは、おそらくやりすぎでしょう。ゲーム専用で、主にiOSデバイスで使用しています。CS2をプレイしていた時、仲間が話す時に奇妙な電子音が震えると言っていましたが、私自身は聞こえなかったので、実際に体験する機会はありませんでした。😅

2. 問題が発生した場合の対処法

上記の手順1は通常の接続の場合のみを説明しています。問題が発生した場合はどうすればよいでしょうか?現在私が使用している解決策は以下の通りです。

  • 接続中に突然音が止まった場合はどうすればよいですか?

この状態では、Bluetoothディスプレイは接続されていますが、音が出ないか、途切れ途切れになります。この問題はAirPods Pro2で発生します(Action IIIでは発生しません。Action IIIはAirPods Pro2を購入した理由の一つです)。ミニホストのBluetoothモジュールが過熱しているのか、それとも他の原因があるのかは不明です。

通常は再起動して再接続します。単体のスピーカーを購入してからは、AirPods Pro2をコンピューターに接続してゲームをプレイしていません。ヘッドホンでプレイするのは快適ではなく、バッテリーも限られています。

再起動後、再度接続手順を実行すると、直接 connect your_mac_address で接続できます。少なくともAirPodsは可能です。``` sudo systemctl restart bluetooth.service

 1- 再起動しても音が出ない場合はどうすればいいですか?
 2
 3この質問は非常に重要で、この記事を書いた主な動機です。10日以上の自力探索の末にようやく解決しました。中国のインターネット全体で関連情報を見つけられたとは信じられません。誇張ではありません。
 4
 5スピーカーを購入する前は、常にAirPddsを使ってコンピューターに接続し、オーディオを聞いていました。いつだったか、`sudo pacman -Syu` というローリングアップグレードの後、セットアップ全体が機能しなくなり、コンピューターから音が出なくなりました。
 6
 7結果は深刻でした。ゲーム中に音が全く聞こえなくなり、長い間イライラしていました。ミニコンソールのBluetoothが壊れていると思っていました1111日が近づいていたので、試しにスピーカーを買ってみました(音楽を大音量で聴きたかったのと、スピーカーの音質が良かったからです)。
 8
 9スピーカーが届く前は、この問題に悩まされていました。あらゆる方法を試しましたが、音が出ませんでした。ある日、AirPods Pro 2がシンクリストのデフォルト選択になっていないことに気づきました(デバイスの前にアスタリスクが付いているのは、現在選択されているサウンド出力デバイスであることを示しており、この状況は再現できていません)。
10
11これが原因でしょうか?疑うのには十分な理由があります。以前は問題なく動作していたのに。 そこに行った時にちょっと覗いてみました。
12
13```shell
14 ~ wpctl status
15PipeWire 'pipewire-0' [1.2.6, mephisto@minipc, cookie:3413408580]
16└─クライアント:
1732. WirePlumber [1.2.6, mephisto@minipc, pid:779]
1833. pipewire [1.2.6, mephisto@minipc, pid:780]
1946. WirePlumber [export] [1.2.6, mephisto@minipc, pid:779]
2081. xdg-desktop-portal [1.2.6, mephisto@minipc, pid:953]
2182. waybar [1.2.6, mephisto@minipc, pid:900]
2283. wpctl [1.2.6, mephisto@minipc, pid:4354]
23
24オーディオ
25├─ デバイス:
26 47. Rembrandt Radeon High Definition オーディオコントローラー [alsa]
27 48. ファミリー 17h/19h HD オーディオコントローラー [alsa]
28
29├─ シンク:
30 52. Rembrandt Radeon High Definition オーディオコントローラー HDMI / DisplayPort 4 出力 [vol: 1.00]
31 53. Rembrandt Radeon High Definition オーディオコントローラー HDMI / DisplayPort 3 出力 [vol: 1.00]
32 54. Rembrandt Radeon High Definition オーディオコントローラー HDMI / DisplayPort 2 出力 [vol: 0.70]
33 55. Rembrandt Radeon High Definition オーディオコントローラー HDMI / DisplayPort 1 出力 [vol: 1.00]
34 * 56. ファミリー17h/19h HDオーディオコントローラ ライン出力 [vol: 0.50]
35
36├─ ソース:
37 57. ファミリー 17h/19h HDオーディオコントローラ フロントステレオマイク [vol: 1.00]
38 * 58. ファミリー 17h/19h HDオーディオコントローラ デジタルマイク [vol: 0.49]
39
40├─ フィルター:
41
42└─ ストリーム:
43
44ビデオ
45├─ デバイス:
46
47├─ シンク:
48
49├─ ソース:
50
51├─ フィルター:
52
53└─ ストリーム:
54
55設定
56└─ デフォルト構成デバイス:
570.Audio/Sink bluez_output.50_5E_5C_95_0B_A4.1

この小さなディテールが本当に役立ちました私にとっては、Linuxユーザーにとってまさに至上の喜びであり、同時に最大の悲しみでもあるでしょう。

ヒントを見つけた後、問題はすぐに解決しました。

1pactl set-default-sink bluez_output.C0_95_6D_C0_A3_92.1

同じような問題に遭遇した場合、上記のコマンドが救世主となるかもしれません。これは単にデフォルトの出力デバイスを設定するだけです。Linuxが出力に使用するデバイスを賢く判断できないなんて、本当に馬鹿げています!

ヘッドフォンとスピーカーの両方をデフォルトの出力デバイスに設定したら、音が出ない問題はなくなりました。

両方をデフォルトの出力に設定しても問題はないでしょうか?いいえ、普通の人は一度に1つのデバイスで音を聞きますが、特別なユースケースがない限り、競合は発生しません。

上記のシンクとソースの意味がわからない場合は、AIに尋ねることができます。私もその方法で試しましたが、うまくいきました。

もう一つ質問があります。アドレス「bluez_output.C0_95_6D_C0_A3_92.1」はどのようにして取得したのでしょうか?以下の手順をご覧ください。

 1➜ ~ wpctl status
 2PipeWire 'pipewire-0' [1.2.6, mephisto@minipc, cookie:3413408580]
 3└─クライアント:
 432. WirePlumber [1.2.6, mephisto@minipc, pid:779]
 533. pipewire [1.2.6, mephisto@minipc, pid:780]
 646. WirePlumber [export] [1.2.6, mephisto@minipc, pid:779]
 781. xdg-desktop-portal [1.2.6, mephisto@minipc, pid:953]
 882. waybar [1.2.6, mephisto@minipc, pid:900]
 989. wpctl [1.2.6, mephisto@minipc, pid:4651]
10
11オーディオ
12├─ デバイス:
13│ 47. Rembrandt Radeon High Definition オーディオコントローラー [alsa]
14│ 48. Family 17h/19h HD オーディオコントローラー [alsa]
15│ 83. ACTON III [bluez5]
1617├─ シンク:
18│ 52. Rembrandt Radeon High Definition オーディオコントローラー HDMI / DisplayPort 4 出力 [vol: 1.00]
19│ 53. Rembrandt Radeon High Definition オーディオコントローラー HDMI / DisplayPort 3 出力 [vol: 1.00]
20│ 54. Rembrandt Radeon High Definition オーディオコントローラー HDMI / DisplayPort 2 出力 [vol: 0.70]
21│ 55. Rembrandt Radeon High Definition オーディオコントローラー HDMI / DisplayPort 1 出力 [vol: 1.00] │ 56. Family 17h/19h HD オーディオコントローラ ライン出力 [vol: 0.50]
22│ * 84. ACTON III [vol: 0.15]
2324├─ ソース:
25│ 57. Family 17h/19h HD オーディオコントローラ フロントステレオマイク [vol: 1.00]
26│ * 58. Family 17h/19h HD オーディオコントローラ デジタルマイク [vol: 0.49]
2728├─ フィルター:
2930└─ ストリーム:
31
32ビデオ
33├─ デバイス:
3435├─ シンク:
3637├─ ソース:
3839├─ フィルター:
4041└─ ストリーム:
42
43設定
44└─ デフォルト構成デバイス:
450. オーディオ/シンクbluez_output.50_5E_5C_95_0B_A4.1
46➜ ~ wpctl inspect 84
47id 84、type PipeWire:Interface:Node
48api.bluez5.address = "50:5E:5C:95:0B:A4"
49api.bluez5.codec = "sbc"
50api.bluez5.profile = "a2dp-sink"
51api.bluez5.transport = ""
52bluez5.loopback = "false"
53card.profile.device = "1"
54* client.id = "46"
55clock.quantum-limit = "8192"
56device.api = "bluez5"
57* device.id = "83"
58device.routes = "1"
59* factory.id = "12"
60factory.name = "api.bluez5.a2dp.sink"
61library.name = "audioconvert/libspa-audioconvert"
62* media.class = "Audio/Sink"
63media.name = "ACTON III"
64* node.description = "ACTON III"
65node.driver = "true"
66node.loop.name = "data-loop.0"
67* node.name = "bluez_output.50_5E_5C_95_0B_A4.1"
68node.pause-on-idle = "false"
69* object.serial = "97"
70port.group = "stream.0"
71* priorit.driver = "1010"
72* priorit.session = "1010"
73session.suspend-timeout-seconds = "0"

wpctl inspect 84 node.name = "bluez_output.50_5E_5C_95_0B_A4.1" から、84 はシンクです。デバイス ID が変更されます。動的に変更されますが、node.name は通常変更されません。

上記の出力の最後に注意して見てください。「Default Configured Devices」という行があり、設定が成功したことを示しています。

wpctl とは何ですか? WirePlumber コマンドラインツールです。

WirePlumber とは何ですか? WirePlumber は、Linux システムでオーディオおよびビデオストリームを管理するためのセッションマネージャーです。以前の PulseAudio セッションマネージャーに代わるものであり、主にマルチメディアストリームのルーティングとポリシーを処理します。これは、インターネットエンタープライズにおけるゲートウェイの概念に似ています。

現在の Linux はすべて、Linux システムでオーディオとビデオを処理するための低レベルマルチメディアフレームワークである PireWire を使用しています。PipeWire は PulseAudio の代替として開発され、コンテナ化されたアプリケーションでのオーディオ出力やプロフェッショナルオーディオシナリオのサポートなどの機能を備えています。 簡単に言うと、この 2 つは連携して動作するため、名前に「wire」が含まれているのは当然です。

  • 上記のトラブルシューティングをすべて試しても、まだ音が出ない場合はどうすればいいですか?

一般的に、これはめったに発生しません。もし発生する場合は、デバイスが接続されており、シンクで正しいデバイスが選択されていることを確認してください。

bluetoothctl コマンドラインで、xxx を切断してから xxx を削除し、Bluetooth サービスを再起動して再接続してください。(アクション III にも同様のメカニズムがあります。長期間使用しないと切断されますが、再接続すると修復されます。)

最後に、こんな面倒なことをしている暇はないですよね?私はお金がないので、時間はほとんど無駄です。何か学ぶことはできますけどね 😅。私は地雷を敷設する先駆者です。そうすれば、他の人が被害に遭う心配はありません!実際に誰かがメールを書いて感謝してくれました。新しいことに挑戦するのはいつも誰かのようですし、ゲーム中に音が出ないという問題も本当に解決してくれます。

なぜゲームにWindowsを使わないのですか?私はWindowsが好きではありません。コマンドラインの方が好きです。カーネルを除けば、システム環境全体は完全にカスタマイズできます。多くの人が車の改造を楽しむのと同じです。自分でツールを作るのが一番便利です。

あなたは本当に無謀です。週末を犠牲にして記事を書いています。あなたの目的は何ですか?記事を書けば影響力が拡大し、広告はお金を生みます(私はまだ大金を稼いでいませんが、十分な収入を得たら引退し、他のことはやめて家に帰って遊ぶつもりです)。時間をかけて知識を記録し、学び、高め、中国語圏を豊かにすることもできます。まだ役に立ってるよ…

あなたの記事は誤字脱字だらけで、文章の流れもスムーズじゃない。手で入力した証拠だね。私も時々すごく不安になるし、週末の時間を犠牲にするのは大変だから、他のことがしたくてたまらなくなっちゃう。

最終更新日: Wednesday, August 13, 2025

このシリーズの投稿:

翻訳: