<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=YSS</id>
	<title>ArchWiki - 利用者の投稿記録 [ja]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=YSS"/>
	<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php/%E7%89%B9%E5%88%A5:%E6%8A%95%E7%A8%BF%E8%A8%98%E9%8C%B2/YSS"/>
	<updated>2026-04-11T04:03:57Z</updated>
	<subtitle>利用者の投稿記録</subtitle>
	<generator>MediaWiki 1.44.3</generator>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Bluetooth&amp;diff=40914</id>
		<title>Bluetooth</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Bluetooth&amp;diff=40914"/>
		<updated>2025-10-07T11:01:08Z</updated>

		<summary type="html">&lt;p&gt;YSS: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Bluetooth]]&lt;br /&gt;
[[de:Bluetooth]]&lt;br /&gt;
[[en:Bluetooth]]&lt;br /&gt;
[[es:Bluetooth]]&lt;br /&gt;
[[ru:Bluetooth]]&lt;br /&gt;
[[zh-hans:Bluetooth]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Bluetooth マウス}}&lt;br /&gt;
{{Related|Bluetooth キーボード}}&lt;br /&gt;
{{Related|Bluetooth ヘッドセット}}&lt;br /&gt;
{{Related|Blueman}}&lt;br /&gt;
{{Related|ObexFTP}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
[[Wikipedia:ja:Bluetooth|Bluetooth]] は携帯電話やコンピュータなどの電子デバイス用の近距離無線通信規格です。Linux においては、Bluetooth プロトコルスタックの実装として [http://www.bluez.org/ BlueZ] が標準的に使われています。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
# Bluetooth プロトコロスタックを提供する、{{Pkg|bluez}} パッケージを[[インストール]]します。&lt;br /&gt;
# {{ic|bluetoothctl}} ユーティリティを提供する、{{Pkg|bluez-utils}} を[[インストール]]します。または {{AUR|bluez-utils-compat}} を[[インストール]]して、[[#非推奨の BlueZ tools|非推奨の BlueZ tools]] を追加します。&lt;br /&gt;
# 一般的な Bluetooth ドライバは、{{ic|btusb}} カーネルモジュールです。このモジュールがロードされているかどうかを[[カーネルモジュール#情報を取得|確認]]してください。もしロードされていなければ、[[カーネルモジュール#手動でモジュールを扱う|モジュールをロード]]してください。&lt;br /&gt;
# {{ic|bluetooth.service}} を[[起動/有効化]]します。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* デフォルトでは bluetooth デーモンは {{ic|lp}} [[ユーザーとグループ#システムグループ|グループ]]のメンバーのユーザーだけに bnep0 デバイスを提供します。bluetooth テザリングに接続するときはユーザーをグループに追加しておいてください。必要なグループは {{ic|/etc/dbus-1/system.d/bluetooth.conf}} ファイルで変更することができます。&lt;br /&gt;
* Bluetooth アダプターには Wi-Fi カードがバンドルされているものもあります (例: [https://www.intel.com/content/www/us/en/wireless-products/centrino-advanced-n-6235.html Intel Centrino]{{Dead link|2023|09|16|status=404}})。これらの Bluetooth アダプターをカーネルから見えるようにするには、まず Wi-Fi カードを有効にする必要があります (大体はラップトップ上のキーボードショートカットを使う)。&lt;br /&gt;
* Bluetooth カードによってはネットワークアダプタと衝突することがあります (例: Broadcom)。したがって、ネットワークサービスを起動する前に Bluetooth デバイスを接続するようにしてください。&lt;br /&gt;
* hcitool や hciconfig などのツールは上流では非推奨となっており、{{Pkg|bluez-utils}} にはもはや含まれていません。アップデートされないことが決まっているため、スクリプトの中で使用している場合は使わないように書き換えることを推奨します。それでも使いたい場合は {{AUR|bluez-utils-compat}} をインストールしてください。詳しい情報は {{Bug|53110}} や [https://lore.kernel.org/linux-bluetooth/20170104133401.3636-1-luiz.dentz@gmail.com/ Bluez メーリングリスト] を参照。&lt;br /&gt;
* 2024年から、{{Pkg|bluez-obex}}と{{Pkg|bluez-mesh}}は{{Pkg|bluez}}から分離されました。よって、Bluetooth越しにファイルを転送したい場合は、{{Pkg|bluez-obex}}をインストールし、ユーザーサービス {{ic|obex.service}} を有効化する必要があります。}}&lt;br /&gt;
&lt;br /&gt;
=== フロントエンド ===&lt;br /&gt;
&lt;br /&gt;
==== コンソール ====&lt;br /&gt;
&lt;br /&gt;
* {{App|bluetoothctl|シェルからデバイスをペアリングすることは、最も単純で信頼性の高いオプションの一つです。|http://www.bluez.org/|{{Pkg|bluez-utils}}}}&lt;br /&gt;
* {{App|bluetuith|ターミナルユーザインターフェイスによる Bluetooth マネージャを提供します。OBEX ファイル転送とマウスのサポート付きで、デバイス/アダプタを簡単に管理できます。|https://www.github.com/darkhz/bluetuith|{{AUR|bluetuith}}}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|bluetoothctl コマンドを自動化するには、{{ic|echo -e &amp;quot;&#039;&#039;command1&#039;&#039;\n&#039;&#039;command2&#039;&#039;\n&amp;quot; {{!}} bluetoothctl}} または {{ic|bluetoothctl -- &#039;&#039;command&#039;&#039;}} を使用します。}}&lt;br /&gt;
&lt;br /&gt;
==== グラフィカル ====&lt;br /&gt;
&lt;br /&gt;
以下のパッケージでは、Bluetooth をカスタマイズするためのグラフィカルインターフェイスが利用可能です。&lt;br /&gt;
&lt;br /&gt;
* {{App|GNOME Bluetooth|[[GNOME]] の Bluetooth ツール。&lt;br /&gt;
** {{Pkg|gnome-bluetooth-3.0}} バックエンドを提供 ({{Pkg|gnome-bluetooth}} はレガシーです)&lt;br /&gt;
** {{Pkg|gnome-shell}} ステータスモニターアプレットを提供&lt;br /&gt;
** {{Pkg|gnome-control-center}} は設定用のフロントエンド GUI を提供しており、アクティビティ概要で  Bluetooth と入力するか、 {{ic|gnome-control-center bluetooth}} コマンドでアクセスすることができます。&lt;br /&gt;
** また、{{ic|bluetooth-sendto}} コマンドを直接起動して、リモートデバイスにファイルを送信することも可能です。&lt;br /&gt;
** {{AUR|nautilus-bluetooth}} は Nautilus の右クリックメニューに &amp;quot;Bluetoothで送信&amp;quot; エントリを追加します。&lt;br /&gt;
** ファイルを受信するには、Bluetooth 設定パネルを開きます。Bluetooth パネルが開いている間のみ受信できます。&lt;br /&gt;
** Thunar のファイルプロパティメニューの &#039;&#039;送信先&#039;&#039; メニューに Bluetooth エントリを追加するには、説明 [https://docs.xfce.org/xfce/thunar/send-to ここ] を参照してください。(設定が必要なコマンドは {{ic|bluetooth-sendto %F}} です)&lt;br /&gt;
|https://wiki.gnome.org/Projects/GnomeBluetooth|}}&lt;br /&gt;
* {{App|Bluedevil|[[KDE]] の Bluetooth ツール。 Dolphin やシステムトレイに Bluetooth のアイコンが表示されていない場合は、システムトレイオプションで有効にするか、ウィジェットを追加してください。アイコンをクリックすることで、Bluedevil の設定や Bluetooth デバイスの検出が可能です。KDE システム設定からもインターフェースが利用できます。|https://invent.kde.org/plasma/bluedevil|{{Pkg|bluedevil}}}}&lt;br /&gt;
* {{App|Blueberry|GNOME Bluetooth から Linux Mint でスピンオフした &#039;&#039;Blueberry&#039;&#039; は全てのデスクトップ環境で動作します。Obex Object Push によるファイル受信をサポートしていません。|https://github.com/linuxmint/blueberry|{{Pkg|blueberry}}}}&lt;br /&gt;
* {{App|[[Blueman]]|フル機能の Bluetooth マネージャー|https://github.com/blueman-project/blueman|{{Pkg|blueman}}}}&lt;br /&gt;
* {{App|[[ObexFTP]]|OBEX 対応のデバイスとの間でファイルを転送するツール。|http://dev.zuckschwerdt.org/openobex/wiki/ObexFtp|{{AUR|obexftp}}}}&lt;br /&gt;
&lt;br /&gt;
== ペアリング ==&lt;br /&gt;
&lt;br /&gt;
{{Note|Bluetooth デバイスを使用する前に、[[rfkill]] でブロックされていないことを確認してください。}}&lt;br /&gt;
&lt;br /&gt;
このセクションでは、&#039;&#039;bluetoothctl&#039;&#039; CLI を使って &#039;&#039;bluez5&#039;&#039; を直接設定する方法を説明しています。これは、代替のフロントエンドツール(例えば GNOME Bluetooth)を使用している場合は必要ないかもしれません。&lt;br /&gt;
&lt;br /&gt;
正確な手順は、利用するデバイスとその入力機能によります。以下は {{ic|bluetoothctl}} を使ってデバイスをペアリングする一般的な説明です。&lt;br /&gt;
&lt;br /&gt;
{{ic|bluetoothctl}} 対話コマンドを実行してください。{{ic|help}} と入力することで利用できるコマンドのリストを表示できます。&lt;br /&gt;
&lt;br /&gt;
# (任意) {{ic|select &#039;&#039;MAC Address&#039;&#039;}} と入力してデフォルトのコントローラを選択してください。&lt;br /&gt;
# (任意) デバイスがオフになっている場合、{{ic|power on}} と入力してコントローラへの電源供給をオンにしてください。デバイスはデフォルトでオンになっています ([[#アダプタのデフォルト電源状態]])。&lt;br /&gt;
# {{ic|devices}} と入力して、ペアリングしたいデバイスの MAC アドレスを取得してください。&lt;br /&gt;
# デバイスが表示されないときは {{ic|scan on}} コマンドでデバイス検出モードにしてください。&lt;br /&gt;
# {{ic|agent on}} でエージェントをオンにするか、特定のエージェントを選択してください: {{ic|agent}} の後にタブキーを2回押すと、利用可能なエージェントのリストが表示されるはずです。Bluetooth エージェントとは、Bluetooth の &#039;ペアリングコード&#039; を管理するもののことです。エージェントは、&#039;ペアリングコード&#039;の受信に応答したり、&#039;ペアリングコード&#039;を送信したりできます。ほとんどの場合、{{ic|default-agent}} を使うのが適切なはずです。[https://askubuntu.com/questions/763939/bluetoothctl-what-is-a-bluetooth-agent]&lt;br /&gt;
# {{ic|pair &#039;&#039;MAC Address&#039;&#039;}} と入力することでペアリングを実行します (タブ補完が使えます)。&lt;br /&gt;
# PIN がないデバイスを使う場合は、手動でデバイスを信頼する必要があるかもしれません。{{ic|trust &#039;&#039;MAC Address&#039;&#039;}} と入力してこれを行なって下さい。デバイスを信頼するには {{ic|trust &#039;&#039;MAC_address&#039;&#039;}} と入力してください。&lt;br /&gt;
# {{ic|connect &#039;&#039;MAC_address&#039;&#039;}} を使って接続を確立してください。&lt;br /&gt;
&lt;br /&gt;
セッションの例は以下のようになります:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ bluetoothctl|&lt;br /&gt;
[NEW] Controller 00:10:20:30:40:50 &#039;&#039;hostname&#039;&#039; [default]&lt;br /&gt;
[bluetooth]# agent KeyboardOnly&lt;br /&gt;
Agent registered&lt;br /&gt;
&lt;br /&gt;
[bluetooth]# default-agent&lt;br /&gt;
Default agent request successful&lt;br /&gt;
&lt;br /&gt;
[bluetooth]# power on&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[CHG] Controller 00:10:20:30:40:50 Powered: yes&lt;br /&gt;
&lt;br /&gt;
[bluetooth]# scan on&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 00:10:20:30:40:50 Discovering: yes&lt;br /&gt;
[NEW] Device 00:12:34:56:78:90 &#039;&#039;device name&#039;&#039;&lt;br /&gt;
[CHG] Device 00:12:34:56:78:90 LegacyPairing: yes&lt;br /&gt;
&lt;br /&gt;
[bluetooth]# pair 00:12:34:56:78:90&lt;br /&gt;
Attempting to pair with 00:12:34:56:78:90&lt;br /&gt;
[CHG] Device 00:12:34:56:78:90 Connected: yes&lt;br /&gt;
[CHG] Device 00:12:34:56:78:90 Connected: no&lt;br /&gt;
[CHG] Device 00:12:34:56:78:90 Connected: yes&lt;br /&gt;
Request PIN code&lt;br /&gt;
[agent] Enter PIN code: 1234&lt;br /&gt;
[CHG] Device 00:12:34:56:78:90 Paired: yes&lt;br /&gt;
Pairing successful&lt;br /&gt;
[CHG] Device 00:12:34:56:78:90 Connected: no&lt;br /&gt;
&lt;br /&gt;
[bluetooth]# connect 00:12:34:56:78:90&lt;br /&gt;
Attempting to connect to 00:12:34:56:78:90&lt;br /&gt;
[CHG] Device 00:12:34:56:78:90 Connected: yes&lt;br /&gt;
Connection successful&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== デュアルブートペアリング ===&lt;br /&gt;
&lt;br /&gt;
デュアルブート環境でデバイスをペアリングするには、Linux の方でペアリングキーを変更して Windows または macOS で使用されているペアリングキーと同じにする必要があります。&lt;br /&gt;
&lt;br /&gt;
このページでは、これを手動で行う方法のみを説明しています。この手順を自動化するには、[https://github.com/x2es/bt-dualboot bt-dualboot プロジェクト]や関連するリポジトリを参照してください。&lt;br /&gt;
&lt;br /&gt;
==== 設定方法 ====&lt;br /&gt;
&lt;br /&gt;
これを行うには、まず Arch Linux 上でデバイスのペアリングを行います。その後、もう一方の OS を再起動し、デバイスをペアリングします。ここでペアリング・キーを取り出す必要がありますが、まず Bluetooth デバイスの電源を切り、接続を試みないようにします。&lt;br /&gt;
&lt;br /&gt;
{{Note|([[Logitech MX Master]] や Logitech 604 Lightspeed などの) 一部の Logitech デバイスは、デバイスが新しいシステムとペアリングするたびに MAC アドレスの値を1つ増加させます。プロセスの最後にこれに対処するために、このケースに該当するかどうかを確認する必要があります。}}&lt;br /&gt;
&lt;br /&gt;
==== Windows の場合 ====&lt;br /&gt;
&lt;br /&gt;
===== Windows での展開 =====&lt;br /&gt;
&lt;br /&gt;
まず、Windows を起動してください。&lt;br /&gt;
&lt;br /&gt;
リンクキーを含むレジストリキーは、[https://docs.microsoft.com/en-us/windows/security/identity-protection/access-control/local-accounts#system SYSTEM アカウント]でしかアクセスできないため、ログインすることができません。そのため、{{ic|regedit.exe}} を {{ic|SYSTEM}} として実行するには、Windows Sysinternals 公式サイトにある Microsoft の [https://docs.microsoft.com/en-us/sysinternals/downloads/psexec PsExec] ツールが必要になります。&lt;br /&gt;
&lt;br /&gt;
[https://download.sysinternals.com/files/PSTools.zip PsTools] をダウンロードし、{{ic|PsExec64.exe}} を解凍します。&lt;br /&gt;
&lt;br /&gt;
[https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/windows-commands#command-shell-overview コマンドシェル] の管理者インスタンスで、解凍した EXE の場所からレジストリエディタを起動してください:&lt;br /&gt;
&lt;br /&gt;
 .\PsExec64.exe -s -i regedit.exe&lt;br /&gt;
&lt;br /&gt;
レジストリエディタで、以下のレジストリキーに移動します:&lt;br /&gt;
&lt;br /&gt;
 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Keys&lt;br /&gt;
&lt;br /&gt;
このキーの中に各 Bluetooth アダプターの MAC アドレス別のキーがあります。複数のキーがあり、どれを使えばいいかわからない場合は、[https://www.addictivetips.com/windows-tips/find-bluetooth-mac-address-windows-10/ このガイド]に従って、目的の Bluetooth アダプタの MAC アドレスを検索してください。&lt;br /&gt;
&lt;br /&gt;
目的のデバイスアダプタキーの中に、ペアリングされたデバイスのそれぞれに対してキーが、MAC アドレスと関連付けられて存在しています。&lt;br /&gt;
&lt;br /&gt;
インストール間で共有したい各ペアデバイスについて、キー全体を右クリックし、&#039;&#039;.reg&#039;&#039; ファイルとしてエクスポートしてください。これはテキストファイルで、このファイルからキーをコピーできます。&lt;br /&gt;
&lt;br /&gt;
このファイルにバイナリキーが1つだけ存在する場合、Bluetooth 5.1 デバイスではなく、そのペアリングキーが必要なもの全てであるということになります。&lt;br /&gt;
&lt;br /&gt;
ペアリングしたデバイスに複数のキー ({{ic|LTK}} や {{ic|IRK}} など) が存在する場合、これは Bluetooth 5.1 デバイスで&#039;&#039;ある&#039;&#039;ということになります。これらのキーを使う方法は [[#Bluetooth 5.1 キーの準備]] を見てください。&lt;br /&gt;
&lt;br /&gt;
最後に、キーを Linux 環境にインポートするために、Linux を起動して [[#終わりに]] へ進んでください。&lt;br /&gt;
&lt;br /&gt;
===== Linux での展開 =====&lt;br /&gt;
&lt;br /&gt;
{{Note|Windows パーティションが Bitlocker で暗号化されている場合、Linux から chntpw を使ってアクセスすることはできません。}}&lt;br /&gt;
&lt;br /&gt;
Arch をリブートしてください。{{Pkg|chntpw}} をインストールして、Windows システムドライブをマウントします。&lt;br /&gt;
&lt;br /&gt;
 $ cd &#039;&#039;/path/to/windows/system&#039;&#039;/Windows/System32/config&lt;br /&gt;
 $ chntpw -e SYSTEM&lt;br /&gt;
{{Note|CurrentControlSet の代わりに ControlSet00X（X は任意の数字）と表示されることがあります。ls コマンドで確認してください。}}&lt;br /&gt;
{{ic|chntpw}} 環境の中で以下を実行します。&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd CurrentControlSet\Services\BTHPORT\Parameters\Keys&lt;br /&gt;
もしくは&lt;br /&gt;
 &amp;gt; cd ControlSet00X\Services\BTHPORT\Parameters\Keys&lt;br /&gt;
&lt;br /&gt;
次に、Bluetooth アダプタの MAC アドレスを取得し、そのフォルダを入力します。&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; ls&lt;br /&gt;
 &amp;gt; cd &#039;&#039;your-device&#039;s-mac-address&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
ペアリングしているデバイスにも同じことをします。Bluetooth 5.1 デバイスで&#039;&#039;ない&#039;&#039;場合、ペアリングキーしか表示されません:&lt;br /&gt;
&lt;br /&gt;
{{hc|&amp;gt; ls|&lt;br /&gt;
Node has 0 subkeys and 1 values&lt;br /&gt;
size  type        value name    [value if type DWORD]&lt;br /&gt;
16    REG_BINARY &amp;lt;123456789876&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Bluetooth 5.1 デバイスである場合、{{ic|hex}} を通して、デバイスのキーを取得します。&lt;br /&gt;
&lt;br /&gt;
{{hc|&amp;gt; hex 123456789876|&lt;br /&gt;
:00000 XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX (いくつかの他の文字)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
”XX&amp;quot; はペアリング・キーです。どのキーがどの MAC アドレスにマッピングされているか、メモしておいてください。&lt;br /&gt;
&lt;br /&gt;
Bluetooth 5.1 デバイスで&#039;&#039;ある&#039;&#039;場合、1つのデバイスに対応するキーが複数表示されます。&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
Node has 0 subkeys and 8 values&lt;br /&gt;
  size     type              value name             [value if type DWORD]&lt;br /&gt;
    16  3 REG_BINARY         &amp;lt;LTK&amp;gt;&lt;br /&gt;
     4  4 REG_DWORD          &amp;lt;KeyLength&amp;gt;               16 [0x10]&lt;br /&gt;
     8  b REG_QWORD          &amp;lt;ERand&amp;gt;&lt;br /&gt;
     4  4 REG_DWORD          &amp;lt;EDIV&amp;gt;                 37520 [0x9290]&lt;br /&gt;
    16  3 REG_BINARY         &amp;lt;IRK&amp;gt;&lt;br /&gt;
     8  b REG_QWORD          &amp;lt;Address&amp;gt;&lt;br /&gt;
     4  4 REG_DWORD          &amp;lt;AddressType&amp;gt;              1 [0x1]&lt;br /&gt;
     4  4 REG_DWORD          &amp;lt;AuthReq&amp;gt;                 45 [0x2d]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
これらのキーを使う方法は [[#Bluetooth 5.1 キーの準備]] を見てください。必要な値を得るには {{ic|hex &#039;&#039;value_name&#039;&#039;}} を使います。&lt;br /&gt;
&lt;br /&gt;
最後に、キーを Linux 環境にインポートするために [[#終わりに]] へ進んでください。&lt;br /&gt;
&lt;br /&gt;
==== macOS の場合 ====&lt;br /&gt;
&lt;br /&gt;
macOS を起動し:&lt;br /&gt;
&lt;br /&gt;
* macOS Monterey 及びそれ以降の場合:&lt;br /&gt;
*# Keychain Access を開き、Bluetooth と検索してください。&lt;br /&gt;
*# 日付順でソートしてください。&lt;br /&gt;
*# 対象のデバイスを最近取り除いて再接続した場合、キーを変更日時順でソートして、最新のものを選べばよいです。キーはおそらく MobileBluetooth (古い Bluetooth デバイスの場合) という名前か、UUID (Bluetooth 5.1 以降) だけです。&lt;br /&gt;
*# 対象のエントリをダブルクリックしてください。Account フィールドの MAC アドレスが対象デバイスの MAC アドレスと一致することを確認してください。&lt;br /&gt;
*# &amp;quot;Show password&amp;quot; チェックボックスをクリックしてください。ここで、パスワードを2回入力する必要があります。&lt;br /&gt;
*# パスワードフィールド内のテキストをコピーしてください ({{ic|⌘+a}} {{ic|⌘+c}})。これは実際には XML ファイルです。&lt;br /&gt;
#* テキストをホームディレクトリ内の {{ic|bt_keys.txt}} ファイルにペーストしてください。&lt;br /&gt;
* High Sierra 及びそれ以降の場合、次のコマンドをターミナルで実行してください: {{bc|# defaults read /private/var/root/Library/Preferences/com.apple.bluetoothd.plist LinkKeys &amp;gt; ~/bt_keys.txt}}&lt;br /&gt;
* Sierra 及びそれ以前の場合、次のコマンドをターミナルで実行してください: {{bc|# defaults read /private/var/root/Library/Preferences/blued.plist LinkKeys &amp;gt; ~/bt_keys.txt}}&lt;br /&gt;
&lt;br /&gt;
すると、{{ic|~/.bt_keys.txt}} ファイルには、確立された Bluetooth キーが含まれています。古いバージョンの macOS (High Sierra 及びそれ以前) では、先に進む前にキーの並びを逆にする必要があります。例えば、{{ic|98 54 2f aa bb cc dd ee ff gg hh ii jj kk ll mm}} は {{ic|MM LL KK JJ GG FF EE DD CC BB AA 2F 54 98}} になります。&lt;br /&gt;
&lt;br /&gt;
{{Note|キーの並びを逆にするには、以下の [[Python]] コードを使用できます:&lt;br /&gt;
{{bc|1=&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; key = &amp;quot;98 54 2f aa bb cc dd ee ff gg hh ii jj kk ll mm&amp;quot;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; &amp;quot; &amp;quot;.join(reversed(key.strip().split()))&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Bluetooth 5.1 デバイスの場合、1つのデバイスに対して複数のキーが関連付けられています。それらのキーを使用する方法については [[#Bluetooth 5.1 キーの準備]] を見てください。&lt;br /&gt;
&lt;br /&gt;
最後に、キーを Linux 環境にインポートするために、Linux を起動し、[[#終わりに]] へ進んでください。&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth 5.1 キーの準備 ====&lt;br /&gt;
&lt;br /&gt;
[[#Windows の場合]] や [[#macOS の場合]] の章に従っていて Bluetooth 5.1 キーが存在していた場合、それらのキーを Linux にインポートする前に特定の変換をかける必要があります。[[#終わりに]] の章で使うために、要求されたファイルを適切に作成してください。この手順は対象デバイスによって異なり、キーの一部を操作する必要があります。これを行うためのユーティリティは以下で挙げられています。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! デバイス !! 元のキー及び変換 (Windows) !! 元のキー及び変換 (macOS) || キーの保存先ファイル&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
* Logitech MX Master 3&lt;br /&gt;
* Xbox One S Wireless Controller&lt;br /&gt;
|&lt;br /&gt;
* {{ic|IRK}} をコピー。&lt;br /&gt;
* 16進数の桁間のスペースを除去。&lt;br /&gt;
| {{Grey|?}}&lt;br /&gt;
| {{ic|IdentityResolvingKey.Key}}&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* {{ic|LTK}} をコピー。&lt;br /&gt;
* 16進数の桁間のスペースを除去。&lt;br /&gt;
| {{Grey|?}}&lt;br /&gt;
| {{ic|SlaveLongTermKey.Key}} と {{ic|PeripheralLongTermKey.Key}}&lt;br /&gt;
|-&lt;br /&gt;
|{{ic|ERand}} と {{ic|EDIV}} は {{ic|0}} にする必要あり。&lt;br /&gt;
|&#039;&#039;Random Number&#039;&#039; と &#039;&#039;Encrypted Diversifier&#039;&#039; は {{ic|0}} にする必要あり。&lt;br /&gt;
| {{-}}&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|&lt;br /&gt;
* ThinkPad TrackPoint Keyboard II&lt;br /&gt;
* Pebble M350 マウス&lt;br /&gt;
* Logitech G604 Lightspeed マウス&lt;br /&gt;
|&lt;br /&gt;
* {{ic|IRK}} をコピー&lt;br /&gt;
* バイトの順番を逆に。&lt;br /&gt;
|&lt;br /&gt;
* &#039;&#039;Remote IRK&#039;&#039; をコピー。&lt;br /&gt;
* Base64 から16進数に変換。&lt;br /&gt;
| {{ic|IdentityResolvingKey.Key}}&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* {{ic|LTK}} をコピー。&lt;br /&gt;
* 16進数の桁間のスペースを除去。&lt;br /&gt;
|&lt;br /&gt;
* &#039;&#039;Remote Encryption&#039;&#039; を &#039;&#039;Long-term Key&#039;&#039; にコピー。&lt;br /&gt;
* Base64 から16進数に変換。&lt;br /&gt;
| {{ic|LongTermKey.Key}}&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* {{ic|ERand}} をコピー。&lt;br /&gt;
* バイトの順番を逆に。&lt;br /&gt;
* 数値全体を10進数に変換。&lt;br /&gt;
|&lt;br /&gt;
* &#039;&#039;Remote Encryption&#039;&#039; を &#039;&#039;Random Number&#039;&#039; にコピー&lt;br /&gt;
* Base64 をリトルエンディアンの10進数に変換 (以下の Python コードを参照)。&lt;br /&gt;
| {{ic|LongTermKey.Rand}}&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* {{ic|EDIV}} をコピー。&lt;br /&gt;
* バイトの順番を逆に。&lt;br /&gt;
* 数値全体を10進数に変換。&lt;br /&gt;
|&lt;br /&gt;
* &#039;&#039;Remote Encryption&#039;&#039; を &#039;&#039;Encrypted Diversifier&#039;&#039; にコピー。&lt;br /&gt;
* Base64 からリトルエンディアンの10進数に変換 (以下の Python コードを参照)。&lt;br /&gt;
| {{ic|LongTermKey.EDiv}}&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;|他のデバイス&lt;br /&gt;
|&lt;br /&gt;
* {{ic|LTK}} をコピー。&lt;br /&gt;
* 16進数の桁間のスペースを除去。&lt;br /&gt;
|&lt;br /&gt;
* &#039;&#039;Remote IRK&#039;&#039; をコピー。&lt;br /&gt;
* Base64 から16進数に変換。&lt;br /&gt;
| {{ic|LongTermKey.Key}}&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* {{ic|ERand}} をコピー。&lt;br /&gt;
* バイトの順番を逆に。&lt;br /&gt;
* 数値全体を10進数に変換。&lt;br /&gt;
|&lt;br /&gt;
* &#039;&#039;Remote Encryption&#039;&#039; を &#039;&#039;Long-term Key&#039;&#039; にコピー。&lt;br /&gt;
* Base64 から16進数に変換。&lt;br /&gt;
| {{ic|LongTermKey.Rand}}&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* {{ic|EDIV}} をコピー。&lt;br /&gt;
* 16進数の桁間のスペースを除去。&lt;br /&gt;
|&lt;br /&gt;
* &#039;&#039;Remote Encryption&#039;&#039; を &#039;&#039;Encrypted Diversifier&#039;&#039; にコピー。&lt;br /&gt;
* Base64 から16進数に変換。&lt;br /&gt;
* バイトの順番を逆に。&lt;br /&gt;
| {{ic|LongTermKey.EDiv}}&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;|Xbox ワイヤレスコントローラ&lt;br /&gt;
|&lt;br /&gt;
* {{ic|LTK}} をコピー。&lt;br /&gt;
* 16進数の桁間のスペースを除去。&lt;br /&gt;
| {{Grey|?}}&lt;br /&gt;
| {{ic|SlaveLongTermKey.Key}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* 値からスペースを取り除くには、[https://www.browserling.com/tools/remove-all-whitespace このオンラインツール]や以下の [[Python]] コードを使用できます:&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; &amp;quot;&#039;&#039;key_value&#039;&#039;&amp;quot;.replace(&amp;quot; &amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
* 以下の Python コードはバイトの順番を逆にするだけです:&lt;br /&gt;
{{bc|1=&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; ERand=&amp;quot; 63 02 84 B8 5D 40 44 DF   &amp;quot;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; ERand=list(reversed(ERand.strip().split()))&lt;br /&gt;
}}&lt;br /&gt;
* 以下の Python コードは、一部で必要となる追加の10進数変換を行います:&lt;br /&gt;
{{bc|1=&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; int(&amp;quot;&amp;quot;.join(ERand), 16)&lt;br /&gt;
16088054540146049635&lt;br /&gt;
}}&lt;br /&gt;
* 以下の Python コードは base64 から16進数への変換を行います:&lt;br /&gt;
 binascii.hexlify(base64.decodebytes(b&#039;...&#039;)).upper()&lt;br /&gt;
* 以下の Python コードは完全な macOS Encrypted Diversifier の変換を行います:&lt;br /&gt;
 struct.unpack(&#039;&amp;lt;H&#039;, base64.decodebytes(b&#039;...&#039;))&lt;br /&gt;
* 以下の Python コードは完全な macOS Random Number の変換を行います:&lt;br /&gt;
 struct.unpack(&#039;&amp;amp;lt;Q&#039;, base64.decodebytes(b&#039;...&#039;))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
一般的なケースの例としては:&lt;br /&gt;
* {{ic|LTK}} の値 {{ic|48 4D AF CD 0F 92 22 88 0A 52 9A F4 76 DA 8B 94}} は、{{ic|LongTermKey.Key}} の値 {{ic|484DAFCD0F9222880A529AF476DA8B94}} となります。&lt;br /&gt;
* {{ic|ERand}} の値 {{ic|63 02 84 B8 5D 40 44 DF}} は、{{ic|Rand}} の値 {{ic|16088054540146049635}} となります。&lt;br /&gt;
* {{ic|EDIV}} の値 {{ic|37520}} は、{{ic|EDiv}} の値 {{ic|37520}} となります。&lt;br /&gt;
&lt;br /&gt;
==== 設定の保存  ====&lt;br /&gt;
&lt;br /&gt;
キーを手に入れたら、ユーザーを root に変更し、以下を実行してください:&lt;br /&gt;
&lt;br /&gt;
{{bc|# cd /var/lib/bluetooth/&#039;&#039;BT-Adapter-MAC-address&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
ここには、ペアリングした Bluetooth 機器ごとのフォルダがあります。Arch とデュアルブートでペアリングしたい各デバイスについて、以下を実行します:&lt;br /&gt;
&lt;br /&gt;
{{bc|# cd &#039;&#039;device-MAC-address&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
{{Note|この時点で、ペアリング時に MAC アドレスの値を増加させるデバイスを使用している場合、MAC アドレスのディレクトリを、値を増加させたパスへ移動させる必要があります。Windows から MAC アドレスをコピーするか、あるいは、各オクテットが2桁の[[Wikipedia:Hexadecimal|16進数]]であることに注意しながら自分で値を増加させてください。}}&lt;br /&gt;
&lt;br /&gt;
ペアリングキーを持っている場合 (つまり、これは Bluetooth 5.1 デバイスでない)、{{ic|info}} ファイルを編集し、{{ic|[LinkKey]}} 以下のキーを変更します。例えば:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=info|2=&lt;br /&gt;
[LinkKey]&lt;br /&gt;
Key=XXXXXXXXXXXXXXX&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|すべての文字が大文字であることを確認する必要があります。スペースはすべて削除してください。}}&lt;br /&gt;
&lt;br /&gt;
複数のキーが存在する場合 (Bluetooth 5.1 の場合)、以下の {{ic|info}} ファイルを編集して、全てのキーをそれぞれの値で置き換えてください。例えば、Xbox One S Wireless Controller の場合:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=info|2=&lt;br /&gt;
[IdentityResolvingKey]&lt;br /&gt;
Key=&amp;lt;IdentityResolvingKey.Key&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[PeripheralLongTermKey]&lt;br /&gt;
Key=&amp;lt;PeripheralLongTermKey.Key&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[SlaveLongTermKey]&lt;br /&gt;
Key=&amp;lt;SlaveLongTermKey.Key&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
次に、{{ic|bluetooth.service}} と {{ic|pulseaudio}} を[[再起動]]してください。({{ic|pulseaudio -k &amp;amp;&amp;amp; pulseaudio --start}} を使ってください。)&lt;br /&gt;
&lt;br /&gt;
これで、デバイスに接続できるはずです。&lt;br /&gt;
&lt;br /&gt;
{{Note|Bluetooth マネージャによっては、デバイスに再接続するために完全な再起動が必要な場合があります。}}&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
&lt;br /&gt;
=== アダプタのデフォルト電源状態 ===&lt;br /&gt;
&lt;br /&gt;
{{Pkg|bluez}} 5.65 以降、BlueZ はデフォルトで、サービスの起動時やサスペンドからの復帰時にすべての Bluetooth アダプタをオンにします。[https://github.com/bluez/bluez/commit/180cf09933b2d8eb03972c8638063429fe5fece5]&lt;br /&gt;
&lt;br /&gt;
アダプタを自動で有効化させたくない場合(例えば、ポータブルデバイスなどでバッテリを節約したい場合)、{{ic|/etc/bluetooth/main.conf}} の {{ic|[Policy]}} セクションで {{ic|1=AutoEnable=false}} を設定してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=/etc/bluetooth/main.conf|2=&lt;br /&gt;
[Policy]&lt;br /&gt;
AutoEnable=false&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
この設定を行っても、[[#ペアリング]] で説明されているように {{ic|power on}} を実行すれば、アダプタを手動でオンにできます。&lt;br /&gt;
&lt;br /&gt;
=== 起動時に発見可能にする ===&lt;br /&gt;
&lt;br /&gt;
デバイスが常に見えていて、かつ直接接続できる必要がある場合:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=/etc/bluetooth/main.conf|2=&lt;br /&gt;
[General]&lt;br /&gt;
DiscoverableTimeout = 0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== サスペンドからの復帰 ===&lt;br /&gt;
&lt;br /&gt;
Bluetooth キーボードやマウスなどをサスペンドから起動できるようにする。まず、bios の設定を確認し、サスペンドからの復帰 が無効になっていないことを確認します。多くの場合、マザーボードからの Bluetooth は USB デバイスです。&lt;br /&gt;
&lt;br /&gt;
bluetooth アダプターのベンダーコードとデバイス ID を確認してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ lsusb {{!}} grep bluetooth -i|&lt;br /&gt;
Bus 001 Device 002: ID 8087:0039 Intel Corp. AX200 Bluetooth&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
サスペンドからの復帰を有効にするために、ベンダコードとデバイス ID の新しい udev ルールを追加してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/udev/rules.d/91-keyboard-mouse-wakeup.rules|2=&lt;br /&gt;
SUBSYSTEM==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;8087&amp;quot;, ATTRS{idProduct}==&amp;quot;0039&amp;quot; RUN+=&amp;quot;/bin/sh -c &#039;echo enabled &amp;gt; /sys$env{DEVPATH}/../power/wakeup;&#039;&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
復帰後に Bluetooth キーボードを自動的に再設定して、例えば異なるキーマップやキーのリピート速度をもたせたりする(詳細は [[Xorg でのキーボード設定#typematic delay と rate の調整]] と [[xmodmap]])には、[[実行可能属性|実行可能]]なスクリプトを作成してください。&lt;br /&gt;
&lt;br /&gt;
{{hc|configure_keyboard.sh|2=&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
export DISPLAY=:0&lt;br /&gt;
xset r rate 220 30&lt;br /&gt;
xmodmap /&#039;&#039;your&#039;&#039;/&#039;&#039;path&#039;&#039;/&#039;&#039;to&#039;&#039;/.Xmodmap&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
そして、上記のような追加の udev ルールを作成してください。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/udev/rules.d/92-keyboard-reconfiguration-wakeup.rules|2=&lt;br /&gt;
SUBSYSTEM==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;8087&amp;quot;, ATTRS{idProduct}==&amp;quot;0039&amp;quot; RUN+=&amp;quot;/&#039;&#039;your&#039;&#039;/&#039;&#039;path&#039;&#039;/&#039;&#039;to&#039;&#039;/configure_keyboard.sh&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== 実験的な機能を有効化する ===&lt;br /&gt;
&lt;br /&gt;
Bluez スタックは、バグがあるかもしれない新しい機能を D-Bus 実験的オプションおよびカーネル実験的オプションに留めます。実験的な機能は最終的に、安定していると判断され、もはやオプションを必要としなくなるので、どのような実験的な機能が存在するかはバージョンによって異なります (例えば、現在 D-Bus の実験的なインターフェイスを有効化すると、古いヘッドセットのバッテリーレベルを報告できるようになります)。実験的な機能を有効化するには、設定の対応する行をアンコメントしてください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/bluetooth/main.conf|2=&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
# Enables D-Bus experimental interfaces&lt;br /&gt;
# Possible values: true or false&lt;br /&gt;
&#039;&#039;&#039;#Experimental = true&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Enables kernel experimental features, alternatively a list of UUIDs&lt;br /&gt;
# can be given.&lt;br /&gt;
# Possible values: true,false,&amp;lt;UUID List&amp;gt;&lt;br /&gt;
# Possible UUIDS:&lt;br /&gt;
...&lt;br /&gt;
# Defaults to false.&lt;br /&gt;
&#039;&#039;&#039;#KernelExperimental = true&#039;&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
あるいは、{{ic|bluetooth.service}} を[[編集]]して、{{ic|--experimental}} フラグあるいは {{ic|--kernel}} フラグを追加してください。例えば、以下の[[ドロップインファイル]]のように:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/system/bluetooth.service.d/override.conf|2=&lt;br /&gt;
[Service]&lt;br /&gt;
ExecStart=&lt;br /&gt;
ExecStart=/usr/lib/bluetooth/bluetoothd --experimental&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
いずれの場合でも、{{ic|bluetooth.service}} を[[再起動]]する必要があります。&lt;br /&gt;
&lt;br /&gt;
== オーディオ ==&lt;br /&gt;
&lt;br /&gt;
通常は、オーディオサーバーと Bluetooth を統合するために追加の手順を実行する必要があります。これについては、以下のセクションで説明します。&lt;br /&gt;
&lt;br /&gt;
Bluetooth オーディオや Bluetooth ヘッドセットなどの情報については [[Bluetooth ヘッドセット]] のページを見てください。&lt;br /&gt;
&lt;br /&gt;
=== PulseAudio ===&lt;br /&gt;
&lt;br /&gt;
Bluetooth ヘッドフォンやスピーカーのようなオーディオ機器を使うには {{Pkg|pulseaudio-bluetooth}} パッケージのインストールが必要です。インストールを反映させるために、pulseaudio を再起動してください: {{ic|pulseaudio -k}}。デフォルトの Pulseaudio インストールでは (具体的には、パッケージングされているデフォルトの {{ic|default.pa}} でユーザインスタンスを使用している場合)、即座に Bluetooth デバイスからスピーカーにオーディオをストリーミングできるはずです。[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/blob/stable-16.x/src/daemon/default.pa.in#L84-93]&lt;br /&gt;
&lt;br /&gt;
システム全体の PulseAudio 設定がある場合は、デーモンを実行しているユーザー（通常は {{ic|pulse}}) が {{ic|lp}} グループに属しており、PulseAudio 設定に Bluetooth モジュールをロードしていることを確認します:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/pulse/system.pa|2=&lt;br /&gt;
...&lt;br /&gt;
load-module module-bluetooth-policy&lt;br /&gt;
load-module module-bluetooth-discover&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
これは任意ですが、Bluetooth デバイスの接続時にすべてのオーディオをそのデバイスに自動で切り替えたい場合、{{ic|load-module module-switch-on-connect}} を追加してください。&lt;br /&gt;
&lt;br /&gt;
=== PipeWire ===&lt;br /&gt;
&lt;br /&gt;
v0.3.19 以降の PipeWire はデフォルトで Bluetooth をサポートしています。&lt;br /&gt;
&lt;br /&gt;
=== ALSA ===&lt;br /&gt;
&lt;br /&gt;
{{Note|Bluez5 は [[ALSA]] の直接統合を中止し、 [[PulseAudio]] のみをサポートします。 PulseAudio を使用できない場合、または使用しない場合は、次の手順に従ってください。}}&lt;br /&gt;
&lt;br /&gt;
まず、 Bluetooth オーディオデバイスが正しくペアリングされ、システムに接続されていることを確認します。&lt;br /&gt;
&lt;br /&gt;
次に、 {{AUR|bluez-alsa-git}} をインストールし、 {{ic|bluealsa}} サービスを開始(そして、有効に) し、ユーザーを {{ic|audio}} グループに追加します。&lt;br /&gt;
&lt;br /&gt;
次のコマンドを実行して、すべてが意図したとおりに動作しているかどうかを確認します({{ic|&#039;&#039;XX:XX:XX:XX:XX:XX&#039;&#039;}} と {{ic|&#039;&#039;FILE.wav&#039;&#039;}} の部分は置き換えてください):&lt;br /&gt;
&lt;br /&gt;
 $ aplay -D bluealsa:SRV=org.bluealsa,DEV=&#039;&#039;XX:XX:XX:XX:XX:XX&#039;&#039;,PROFILE=a2dp &#039;&#039;FILE.wav&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
最後に、 {{ic|~/.asoundrc}} に次の行を追加します。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.asoundrc|&lt;br /&gt;
defaults.bluealsa {&lt;br /&gt;
    service &amp;quot;org.bluealsa&amp;quot;&lt;br /&gt;
    device &amp;quot;XX:XX:XX:XX:XX:XX&amp;quot;&lt;br /&gt;
    profile &amp;quot;a2dp&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
これで、 {{ic|bluealsa}} デバイスを使って Bluetooth オーディオデバイスに接続できるようになります。ボリューム管理は {{ic|alsamixer}} とオプション {{ic|-D bluealsa}} を使って通常行われます。&lt;br /&gt;
&lt;br /&gt;
== Bluetooth シリアル ==&lt;br /&gt;
&lt;br /&gt;
Bluetooth-to-Serial modules (HC-05、HC-06) で Bluetooth シリアル通信が機能するようにするには、次の手順に従います:&lt;br /&gt;
&lt;br /&gt;
[[#ペアリング|上記]]で説明したように、 {{ic|bluetoothctl}} を使って Bluetooth デバイスを&#039;&#039;&#039;ペアリング&#039;&#039;&#039;します。&lt;br /&gt;
&lt;br /&gt;
{{Pkg|bluez-deprecated-tools}} をインストールします。新しいツールにはない機能があります。&lt;br /&gt;
&lt;br /&gt;
ペアになっているデバイスの MAC アドレスを tty 端末にバインドします:&lt;br /&gt;
&lt;br /&gt;
 # rfcomm bind rfcomm0 &#039;&#039;MAC_address_of_Bluetooth_device&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
これで、シリアル通信用に {{ic|/dev/rfcomm0}} を開くことができます:&lt;br /&gt;
&lt;br /&gt;
 $ picocom /dev/rfcomm0 -b 115200&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
{{Out of date|Replace hciconfig with newer commands.}}&lt;br /&gt;
&lt;br /&gt;
=== 一般的なトラブルシューティング ===&lt;br /&gt;
&lt;br /&gt;
==== デバッグ ====&lt;br /&gt;
&lt;br /&gt;
デバッグするには、最初に {{ic|bluetooth.service}} を[[停止]]します。&lt;br /&gt;
&lt;br /&gt;
そして {{ic|-d}} パラメーターを付けて開始します。&lt;br /&gt;
&lt;br /&gt;
 # /usr/lib/bluetooth/bluetoothd -n -d&lt;br /&gt;
&lt;br /&gt;
別のオプションとして、 {{ic|btmon}} ツールが有ります。&lt;br /&gt;
&lt;br /&gt;
==== 非推奨の BlueZ ツール ====&lt;br /&gt;
&lt;br /&gt;
8つの BlueZ ツールは[https://git.kernel.org/pub/scm/bluetooth/bluez.git/commit/?id=b1eb2c4cd057624312e0412f6c4be000f7fc3617 非推奨となり]、{{Pkg|bluez-utils}} から削除されましたが、それらのすべてが新しいツールに取って代わられたわけではありません。{{AUR|bluez-utils-compat}} パッケージは非推奨のツールを含む代替バージョンの {{Pkg|bluez-utils}} を提供します。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 非推奨のツール&lt;br /&gt;
! あり得る代替&lt;br /&gt;
|-&lt;br /&gt;
| [https://manpages.debian.org/latest/bluez/gatttool.1.en.html gatttool] || btgatt-client, [https://git.kernel.org/cgit/bluetooth/bluez.git/tree/doc/gatt-api.txt D-Bus Gatt API]{{Dead link|2023|10|29|status=404}}&lt;br /&gt;
|-&lt;br /&gt;
| [https://manpages.debian.org/latest/bluez/hciattach.1.en.html hciattach] || btattach&lt;br /&gt;
|-&lt;br /&gt;
| [https://manpages.debian.org/latest/bluez/hciconfig.1.en.html hciconfig] || btmgmt (そして bluetoothctl?)&lt;br /&gt;
|-&lt;br /&gt;
| [https://manpages.debian.org/latest/bluez-hcidump/hcidump.1.en.html hcidump] || btmon (そして btsnoop)&lt;br /&gt;
|-&lt;br /&gt;
| [https://manpages.debian.org/latest/bluez/hcitool.1.en.html hcitool] || なし、[https://git.kernel.org/cgit/bluetooth/bluez.git/tree/doc/device-api.txt D-Bus Device API]{{Dead link|2023|10|29|status=404}} が利用可能&lt;br /&gt;
|-&lt;br /&gt;
| [https://manpages.debian.org/latest/bluez/rfcomm.1.en.html rfcomm]&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | なし、[https://git.kernel.org/cgit/bluetooth/bluez.git/tree/doc/profile-api.txt D-Bus Profile1 API]{{Dead link|2023|10|29|status=404}} の実装?&lt;br /&gt;
|-&lt;br /&gt;
| [https://manpages.debian.org/latest/bluez/ciptool.1.en.html ciptool]&lt;br /&gt;
|-&lt;br /&gt;
|[https://manpages.debian.org/latest/bluez/sdptool.1.en.html sdptool]&lt;br /&gt;
| なし、機能が、異なる D-Bus オブジェクトに散らばっている模様: [https://git.kernel.org/cgit/bluetooth/bluez.git/tree/doc/profile-api.txt Profile]{{Dead link|2023|10|29|status=404}}、[https://git.kernel.org/cgit/bluetooth/bluez.git/tree/doc/advertising-api.txt Advertising]{{Dead link|2023|10|29|status=404}}、そして [https://git.kernel.org/cgit/bluetooth/bluez.git/tree/doc/device-api.txt device]{{Dead link|2023|10|29|status=404}} と [https://git.kernel.org/cgit/bluetooth/bluez.git/tree/doc/adapter-api.txt adapter]{{Dead link|2023|10|29|status=404}} の UUID の配列。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== サービスの問題 ===&lt;br /&gt;
&lt;br /&gt;
==== systemd: Condition check resulted in Bluetooth service being skipped ====&lt;br /&gt;
&lt;br /&gt;
{{ic|bluetooth.service}} は {{ic|/sys/class/bluetooth}} ディレクトリが存在することのみを要求します。このディレクトリは {{ic|bluetooth}} カーネルモジュールによって作成されるはずです。このカーネルモジュールは、{{ic|systemd-udev}} が動作している Bluetooth ハードウェアデバイスを発見した場合にのみ、{{ic|systemd-udev}} により自動的にロードされます。&lt;br /&gt;
&lt;br /&gt;
{{ic|/sys/class/bluetooth}} が存在しない場合、{{ic|lsmod}} コマンドを使って、Bluetooth カーネルモジュールがロードされているかどうかを確認してください。Bluetooth デバイスがあるにも関わらずロードされていない場合、[[カーネルモジュール#手動でモジュールを扱う|Bluetooth モジュールをロード]]し、{{ic|bluetooth.service}} を[[再起動]]することで、手動で起動できます。&lt;br /&gt;
&lt;br /&gt;
また、{{ic|bluetooth}} モジュールをロードする際に、対応するカーネル Bluetooth ドライバもロードする必要があります。{{ic|btusb}} が最も可能性がありますが、{{ic|btrtl,btintel,btbcm,bnep,btusb}} などの可能性もあります。&lt;br /&gt;
&lt;br /&gt;
{{ic|bluetooth.service}} の[[ユニットステータス]]を確認して、このサービスが起動しているかどうかを確認してください。&lt;br /&gt;
&lt;br /&gt;
[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=853207 Debian Bug report logs - #853207] も参照してください。&lt;br /&gt;
&lt;br /&gt;
{{ic|bluetooth.service}} の起動に成功したが、まだ Bluetooth を使えないことがあります (例: {{ic|scan on}} の時に {{ic|bluetoothctl}} が {{ic|org.Bluez.Error.NotReady}} のようなメッセージを発する)。この場合、コンピュータを再起動し、次のことをダブルチェックしてください: {{ic|/sys/class/bluetooth}} ディレクトリが存在するか; {{ic|lsmod}} の出力に正しい Bluetooth モジュールが含まれているか; [[journal]] のログを確認するなど。{{ic|systemd-udev}} は、また手動の変更をせずとも Bluetooth ハードウェアを自動的に認識するはずです。&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth が suspend-to-idle 中のデバイスを即座に立ち上げてしまう ====&lt;br /&gt;
&lt;br /&gt;
[[サスペンドとハイバネート|suspend-to-idle/S2idle/S0ix/Modern Standby]] する能力のあるシステムにおいては、Bluetooth コントローラがスリープ中も有効化されたままになります。通常、これにより、Bluetooth デバイスが接続されていると、システムが[https://bugzilla.kernel.org/show_bug.cgi?id=200039 スリープに移行した直後にスリープが解除されてしまいます]。&lt;br /&gt;
&lt;br /&gt;
これを防ぐには、スリープに移行する前に Bluetooth を完全に無効化できます。{{Pkg|bluez-utils}} をインストールし、以下のファイルを作成してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/system/bluetooth-disable-before-sleep.service|2=&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Disable Bluetooth before going to sleep&lt;br /&gt;
Before=sleep.target&lt;br /&gt;
Before=suspend.target&lt;br /&gt;
Before=hybrid-sleep.target&lt;br /&gt;
Before=suspend-then-hibernate.target&lt;br /&gt;
StopWhenUnneeded=yes&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=oneshot&lt;br /&gt;
RemainAfterExit=yes&lt;br /&gt;
&lt;br /&gt;
ExecStart=/usr/bin/bluetoothctl power off&lt;br /&gt;
ExecStop=/usr/bin/bluetoothctl power on&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=sleep.target&lt;br /&gt;
WantedBy=suspend.target&lt;br /&gt;
WantedBy=hybrid-sleep.target&lt;br /&gt;
WantedBy=suspend-then-hibernate.target&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
このサービスを[[有効化]]し、スリープに移行した時に Bluetooth デバイスが切断されることや、スリープからの復帰時に Bluetooth が再び接続されることを確認してください。&lt;br /&gt;
&lt;br /&gt;
この回避策を使用すると、[[#サスペンドからの復帰|Bluetooth マウス/キーボードを使ってシステムをスリープから復帰させること]]ができなくなります。&lt;br /&gt;
&lt;br /&gt;
==== ヘッドレス/サーバのシステムでログアウト後に Bluetooth がオフになる ====&lt;br /&gt;
&lt;br /&gt;
様々な原因が考えられます:&lt;br /&gt;
&lt;br /&gt;
* [[PulseAudio]] と [[PipeWire]] は両方ともデフォルトでユーザサービスとして動作します。よって、最後のセッションが終了するとこれらのサービスは終了されます。この問題を解決するには、対象のユーザに対して [[systemd/ユーザー#systemd のユーザーインスタンスを自動起動|Lingering (残留)]] を有効化してください。&lt;br /&gt;
* さらに、[[WirePlumber]] を [[PipeWire]] と共に実行している場合 (これはよくある環境です)、WirePlumber は &amp;quot;logind-monitor&amp;quot; を実行します。これは、Bluetooth をログイン時に有効化し、ログアウト時に無効化します。問題の解決方法は [[WirePlumber#ログアウト後も Bluetooth を実行し続ける/ヘッドレス Bluetooth]] を見てください。&lt;br /&gt;
&lt;br /&gt;
=== アダプタの問題 ===&lt;br /&gt;
&lt;br /&gt;
==== hcitool scan: Device not found ====&lt;br /&gt;
&lt;br /&gt;
* 一部のラップトップ (例: Dell Studio 15、Lenovo Thinkpad X1) では、Bluetooth モードを HID から HCI に切り替える必要があります。{{Pkg|bluez-hid2hci}} パッケージをインストールすれば、[[udev]] が自動的に切り替えを行うはずです。また、次のコマンドを実行して手動で HCI に切り替えることもできます:&lt;br /&gt;
&lt;br /&gt;
 # /usr/lib/udev/hid2hci&lt;br /&gt;
&lt;br /&gt;
* デバイスが表示されず、かつマシンに Windows オペレーティングシステムがある場合、Windows から bluetooth アダプターを有効にして見てください。&lt;br /&gt;
&lt;br /&gt;
* 場合によっては次のコマンドで問題が解決するかもしれません:&lt;br /&gt;
&lt;br /&gt;
 # bluetoothctl power on&lt;br /&gt;
&lt;br /&gt;
==== bluetoothctl: No default controller available ====&lt;br /&gt;
&lt;br /&gt;
一部のマザーボード Bluetooth コントローラにはバグがあります。バグがこの問題の原因であるか調べるには、{{ic|journalctl {{!}} grep hci}} を実行してください。このコマンドの出力に &amp;quot;command tx timeout&amp;quot; や &amp;quot;Reading Intel version command failed&amp;quot; のようなエントリが存在する場合、PC の電源を切り、電源ケーブルを物理的に外して数秒間放置してください。これにより、コントローラにファームウェアを再ロードさせます (通常の再起動では再ロードしません)。[https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1859592 こちら]のバグレポートを参照してください。&lt;br /&gt;
&lt;br /&gt;
デバイスが [[rfkill]] によってブロックされていないことを確認してください。&lt;br /&gt;
&lt;br /&gt;
また、一部の Intel カード (8260 など) は Bluetooth サービスによって正しく認識されないかもしれません。{{Pkg|bluez-utils}} の代わりに非推奨の {{AUR|bluez-utils-compat}} を使うことでこの問題が解決したというケースが報告されています。&lt;br /&gt;
&lt;br /&gt;
また、これは省電力機能が原因かもしれません。その場合、{{ic|1=btusb.enable_autosuspend=n}} [[カーネルパラメータ#設定|カーネルパラメータ]]により解決できる可能性があります。[https://bugzilla.redhat.com/show_bug.cgi?id=1573562 Red Hat Bugzilla – Bug 1573562] も参照してください。&lt;br /&gt;
&lt;br /&gt;
時々、{{ic|btusb}} をオプション無しでアンロード・ロードすればコントローラを元に戻せることがあります:&lt;br /&gt;
&lt;br /&gt;
 # modprobe -r btusb&lt;br /&gt;
 # modprobe btusb&lt;br /&gt;
&lt;br /&gt;
また、ドングルが [[#CSR ドングル 0a12:0001|CSR クローン]]である場合にもこの問題が発生することがあります。&lt;br /&gt;
&lt;br /&gt;
==== rfkill unblock: Do not unblock ====&lt;br /&gt;
&lt;br /&gt;
デバイスがソフトブロックされていて [[ConnMan]] を動作させている場合、次を試してみて下さい:&lt;br /&gt;
&lt;br /&gt;
 $ connmanctl enable bluetooth&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth USB ドングル ====&lt;br /&gt;
&lt;br /&gt;
USB ドングルを使う場合は、Bluetooth ドングルが認識されているか確認してください。USB ドングルを挿入する時に {{ic|journalctl -f}} を root として実行する(もしくは {{ic|/var/log/messages.log}} を調査する)ことで、そのことを確認できます。以下のような見た目であるはずです(hci を見てください)。&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
Feb 20 15:00:24 hostname kernel: [ 2661.349823] usb 4-1: new full-speed USB device number 3 using uhci_hcd&lt;br /&gt;
Feb 20 15:00:24 hostname bluetoothd[4568]: HCI dev 0 registered&lt;br /&gt;
Feb 20 15:00:24 hostname bluetoothd[4568]: Listening for HCI events on hci0&lt;br /&gt;
Feb 20 15:00:25 hostname bluetoothd[4568]: HCI dev 0 up&lt;br /&gt;
Feb 20 15:00:25 hostname bluetoothd[4568]: Adapter /org/bluez/4568/hci0 has been enabled&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
最初の2行しか表示されていなかった場合、デバイスは見つかっていますが、そのデバイスを立ち上げる必要があります。&lt;br /&gt;
例:&lt;br /&gt;
&lt;br /&gt;
{{hc|# btmgmt|&lt;br /&gt;
[mgmt]# info&lt;br /&gt;
Index list with 1 item&lt;br /&gt;
hci0:	Primary controller&lt;br /&gt;
	addr 00:1A:7D:DA:71:10 version 6 manufacturer 10 class 0x000000&lt;br /&gt;
	supported settings: powered connectable fast-connectable discoverable bondable link-security ssp br/edr hs le advertising secure-conn debug-keys privacy static-addr &lt;br /&gt;
	&#039;&#039;&#039;current settings:&#039;&#039;&#039; connectable discoverable bondable ssp br/edr le secure-conn &lt;br /&gt;
	name Mozart&lt;br /&gt;
	short name &lt;br /&gt;
&lt;br /&gt;
[mgmt]# select hci0&lt;br /&gt;
Selected index 0&lt;br /&gt;
&lt;br /&gt;
[hci0]# power up&lt;br /&gt;
hci0 Set Powered complete, settings: &#039;&#039;&#039;powered&#039;&#039;&#039; connectable discoverable bondable ssp br/edr le secure-conn&lt;br /&gt;
&lt;br /&gt;
[hci0]# info&lt;br /&gt;
hci0:	Primary controller&lt;br /&gt;
	addr 00:1A:7D:DA:71:10 version 6 manufacturer 10 class 0x1c0104&lt;br /&gt;
	supported settings: powered connectable fast-connectable discoverable bondable link-security ssp br/edr hs le advertising secure-conn debug-keys privacy static-addr &lt;br /&gt;
	&#039;&#039;&#039;current settings: powered&#039;&#039;&#039; connectable discoverable bondable ssp br/edr le secure-conn&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
または&lt;br /&gt;
&lt;br /&gt;
{{hc|# bluetoothctl|&lt;br /&gt;
[bluetooth]# show&lt;br /&gt;
Controller 00:1A:7D:DA:71:10 (public)&lt;br /&gt;
	Name: Mozart&lt;br /&gt;
	Alias: Mozart&lt;br /&gt;
	Class: 0x0000095c&lt;br /&gt;
	&#039;&#039;&#039;Powered: no&#039;&#039;&#039;&lt;br /&gt;
	Discoverable: yes&lt;br /&gt;
	Pairable: yes&lt;br /&gt;
&lt;br /&gt;
[bluetooth]# power on&lt;br /&gt;
[CHG] Controller 00:1A:7D:DA:71:10 Class: 0x001c0104&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[CHG] Controller 00:1A:7D:DA:71:10 &#039;&#039;&#039;Powered: yes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[bluetooth]# show&lt;br /&gt;
Controller 00:1A:7D:DA:71:10 (public)&lt;br /&gt;
	Name: Mozart&lt;br /&gt;
	Alias: Mozart&lt;br /&gt;
	Class: 0x001c0104&lt;br /&gt;
	&#039;&#039;&#039;Powered: yes&#039;&#039;&#039;&lt;br /&gt;
	Discoverable: yes&lt;br /&gt;
	Pairable: yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[https://www.bluetooth.com/specifications/assigned-numbers/host-controller-interface/ 公式の仕様表]に従って、Bluetooth のバージョンが HCI のバージョンにマップされていることを確認できます。例えば、先の出力では、HCI &#039;&#039;&#039;version 6&#039;&#039;&#039; が Bluetooth version 4.0 です。&lt;br /&gt;
&lt;br /&gt;
デバイスが検出されているか確認するために {{ic|bluez-utils}} に含まれている {{ic|hcitool}} を使うことができます。次のコマンドで利用可能なデバイスとその識別子・MAC アドレスのリストを表示することが可能です:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ btmgmt info|&lt;br /&gt;
Index list with 1 item&lt;br /&gt;
hci0:	Primary controller&lt;br /&gt;
	addr 00:1A:7D:DA:71:10 &#039;&#039;&#039;version 6&#039;&#039;&#039; manufacturer 10 class 0x1c0104&lt;br /&gt;
	supported settings: powered connectable fast-connectable discoverable bondable link-security ssp br/edr hs le advertising secure-conn debug-keys privacy static-addr&lt;br /&gt;
	current settings: powered connectable discoverable bondable ssp br/edr le secure-conn&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
デバイスに関するもっと詳細な情報は、非推奨の {{ic|hciconfig}} を使うことで取得できます。({{AUR|bluez-utils-compat}})&lt;br /&gt;
&lt;br /&gt;
{{hc|$ hciconfig -a hci0|&lt;br /&gt;
hci0:   Type: USB&lt;br /&gt;
        BD Address: 00:1B:DC:0F:DB:40 ACL MTU: 310:10 SCO MTU: 64:8&lt;br /&gt;
        UP RUNNING PSCAN ISCAN&lt;br /&gt;
        RX bytes:1226 acl:0 sco:0 events:27 errors:0&lt;br /&gt;
        TX bytes:351 acl:0 sco:0 commands:26 errors:0&lt;br /&gt;
        Features: 0xff 0xff 0x8f 0xfe 0x9b 0xf9 0x00 0x80&lt;br /&gt;
        Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3&lt;br /&gt;
        Link policy: RSWITCH HOLD SNIFF PARK&lt;br /&gt;
        Link mode: SLAVE ACCEPT&lt;br /&gt;
        Name: &#039;BlueZ (0)&#039;&lt;br /&gt;
        Class: 0x000100&lt;br /&gt;
        Service Classes: Unspecified&lt;br /&gt;
        Device Class: Computer, Uncategorized&lt;br /&gt;
        HCI Ver: 2.0 (0x3) HCI Rev: 0xc5c LMP Ver: 2.0 (0x3) LMP Subver: 0xc5c&lt;br /&gt;
        Manufacturer: Cambridge Silicon Radio (10)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===== ドングルから短距離にいるときにオーディオデバイスがおかしくなる =====&lt;br /&gt;
&lt;br /&gt;
他のデバイスと同一の USB ホストを共有している場合、[https://bbs.archlinux.org/viewtopic.php?pid=1440161#p1440161 オーディオデバイスとの通信に干渉] する可能性があります。オーディオデバイスがバスに接続されている唯一のデバイスであることを確認してください。例:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ lsusb|&lt;br /&gt;
Bus 002 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)&lt;br /&gt;
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
Bus 001 Device 004: ID 048d:1345 Integrated Technology Express, Inc. Multi Cardreader&lt;br /&gt;
Bus 001 Device 003: ID 0424:a700 Standard Microsystems Corp. 2 Port Hub&lt;br /&gt;
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub&lt;br /&gt;
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===== CSR ドングル 0a12:0001 =====&lt;br /&gt;
&lt;br /&gt;
デバイス {{ic|ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)}} にはリグレッションのバグがあり、現在、カーネルバージョン 5.17 及び &amp;lt; 6.0 でしか動作しません。詳細は、[https://bugzilla.kernel.org/show_bug.cgi?id=60824 Kernel Bug 60824] を参照してください。&lt;br /&gt;
&lt;br /&gt;
==== Logitech Bluetooth USB ドングル ====&lt;br /&gt;
&lt;br /&gt;
Logitech のドングルには Embedded と HCI という二つのモードで動作するものがあります (例: Logitech MX5000)。embedded モードではドングルは USB デバイスをエミュレートするので PC は普通の USB マウス・キーボードを使っていると認識します。&lt;br /&gt;
&lt;br /&gt;
USB BT ミニレシーバの小さな赤いボタンを押すと他のモードが有効になります。BT ドングルの赤いボタンを押しながらコンピュータに接続してください。ボタンを押して3-5秒で、Bluetooth アイコンがシステムトレイに表示されます ([https://ubuntuforums.org/showthread.php?t=1332197 議論])。&lt;br /&gt;
&lt;br /&gt;
また、{{Pkg|bluez-hid2hci}} パッケージをインストールすることもできます。Logitech のドングルを接続すると自動的に切り替えます。&lt;br /&gt;
&lt;br /&gt;
==== Foxconn / Hon Hai / Lite-On の Broadcom デバイス ====&lt;br /&gt;
&lt;br /&gt;
一部のデバイスでは、起動時にファームウェアを書き込む必要があります。&lt;br /&gt;
&lt;br /&gt;
一部のファームウェアは、[[AUR]] で [https://aur.archlinux.org/packages?K=broadcom broadcom] と検索すると入手できます。特出すべきパッケージは {{AUR|broadcom-bt-firmware}} です。これは、[https://github.com/winterheart/broadcom-bt-firmware/blob/master/DEVICES.md 様々なカード]用のファイルを提供します。&lt;br /&gt;
&lt;br /&gt;
または、[https://github.com/jessesung/hex2hcd hex2hcd] ({{Pkg|bluez-utils}} でインストールされます) を使ってファームウェアを Microsoft Windows の &#039;&#039;.hex&#039;&#039; ファイルから &#039;&#039;.hcd&#039;&#039; ファイルに変換することもできます。&lt;br /&gt;
&lt;br /&gt;
正しい &#039;&#039;.hex&#039;&#039; ファイルを取得するために、&#039;&#039;lsusb&#039;&#039; でデバイスの vendor:product コードを検索してください。例:&lt;br /&gt;
&lt;br /&gt;
 Bus 002 Device 004: ID &#039;&#039;&#039;04ca:2006&#039;&#039;&#039; Lite-On Technology Corp. Broadcom BCM43142A0 Bluetooth Device&lt;br /&gt;
&lt;br /&gt;
または:&lt;br /&gt;
&lt;br /&gt;
 Bus 004 Device 004: Id &#039;&#039;&#039;0489:e031&#039;&#039;&#039; Foxconn / Hon Hai&lt;br /&gt;
&lt;br /&gt;
もしくは、Windows (仮想マシンでもかまいません) を起動して Device Manager ユーティリティからファームウェアの名前を取得してください。デバイスのモデルを知りたいのに &#039;&#039;lsusb&#039;&#039; で表示されない場合、&#039;&#039;lsusb -v&#039;&#039; の {{ic|iProduct}} でわかることがあります。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;.hex&#039;&#039; ファイルはダウンロードした Windows ドライバーから抽出することができます。Windows を実行する必要はありません。適切なドライバーをダウンロードしてください (例えば、[http://www.fujitsupc.com/downloads/mobile/BLUETOOTH_WIDCOMM_V6.5.0.3100_WIN7-32_FPC46-1771-01.EXE Bluetooth Widcomm]{{Dead link|2023|09|16|status=domain name not resolved}})。フォーマットにも依りますが、ファイルの展開には{{Pkg|unrar}} か {{Pkg|cabextract}} が必要である場合があります。多数の &#039;&#039;.hex&#039;&#039; ファイルの中から必要なファイルを見つけるには、{{ic|Win32/bcbtums-win7x86-brcm.inf}} ファイルの中身を確認して {{ic|[RAMUSB&#039;&#039;&#039;E031&#039;&#039;&#039;.CopyList]}} を検索してください。{{ic|E031}} はあなたの使っているデバイスの product コード (大文字) に置き換えて下さい (&#039;&#039;lsusb&#039;&#039; で確認できる2番目の16進数)。その下に、必要な &#039;&#039;.hex&#039;&#039; ファイルの名前が書かれているはずです。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;.hcd&#039;&#039; ファイルを手に入れたら、{{ic|/lib/firmware/brcm/BCM.hcd}} にコピーしてください - このファイル名は [[dmesg]] からわかります。あなたのマシンでは異なっている可能性があるため &#039;&#039;dmesg&#039;&#039; の出力で確認してください。そして &#039;&#039;btusb&#039;&#039; モジュールをリロードしてください:&lt;br /&gt;
&lt;br /&gt;
 # rmmod btusb&lt;br /&gt;
 # modprobe btusb&lt;br /&gt;
&lt;br /&gt;
これでデバイスが使えるようになるはずです。以上の設定を永続化させる方法は [https://bbs.archlinux.org/viewtopic.php?id=162688 BBS#162688] を参照。&lt;br /&gt;
&lt;br /&gt;
==== Intel の複合 WiFi と Bluetooth カード ====&lt;br /&gt;
&lt;br /&gt;
[[ネットワーク設定/ワイヤレス#Bluetooth の共存]] を見てください。&lt;br /&gt;
&lt;br /&gt;
==== Windows とのデュアルブート環境における Mediatek MT7921 や MT7961 ====&lt;br /&gt;
&lt;br /&gt;
デュアルブートシステムでは、Bluetooth のファームウェアバージョンが Windows と Linux とで異なる場合、Windows を起動した後に Bluetooth アダプタが動作しなくなります。&lt;br /&gt;
&lt;br /&gt;
これを防ぐ最も良い方法は、各 OS 用の Bluetooth ドライバ (特にファームウェア) を最新にすることです。&lt;br /&gt;
&lt;br /&gt;
Windows 用の最新バージョンのドライバ (またはファームウェア) を見つけられない場合、最新のファームウェアファイル {{ic|/usr/lib/firmware/mediatek/BT_RAM_CODE_MT7961_1_2_hdr.bin.xz}} を Arch Linux からコピーし、Windows へ展開することができます (例えば、{{ic|C:\WINDOWS\system32\DRIVERS\}}。Windows でのファームウェアファイルへのパスはデバイスマネージャから確認できます)。&lt;br /&gt;
&lt;br /&gt;
==== サスペンド/復帰後にアダプタが消える ====&lt;br /&gt;
&lt;br /&gt;
まず、アダプタのベンダーと製品 ID を見つけてください。例:&lt;br /&gt;
&lt;br /&gt;
First, find vendor and product ID of the adapter. For example:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ lsusb -tv|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M&lt;br /&gt;
    ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
    ...&lt;br /&gt;
    |__ Port 3: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M&lt;br /&gt;
        ID 8087:0025 Intel Corp. &lt;br /&gt;
    |__ Port 3: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M&lt;br /&gt;
        ID 8087:0025 Intel Corp. &lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
この場合、ベンダー ID は 8087 で、製品 ID は 0025 です。&lt;br /&gt;
&lt;br /&gt;
次に、 {{pkg|usb_modeswitch}} を使用してアダプタをリセットします:&lt;br /&gt;
&lt;br /&gt;
 # usb_modeswitch -R -v &#039;&#039;vendor_ID&#039;&#039; -p &#039;&#039;product_ID&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== ペアリングと接続の問題 ===&lt;br /&gt;
&lt;br /&gt;
==== コンピュータが表示されない ====&lt;br /&gt;
&lt;br /&gt;
携帯からコンピュータが表示されないときは、discoverable モードを有効にしてください:&lt;br /&gt;
&lt;br /&gt;
 # bluetoothctl discoverable on&lt;br /&gt;
&lt;br /&gt;
discoverable モードがオンになっていることを確認してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|# bluetoothctl show|&lt;br /&gt;
	Powered: yes&lt;br /&gt;
	Discoverable: yes&lt;br /&gt;
	Pairable: yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|/etc/bluetooth/main.conf}} の {{ic|PairableTimeout}} と {{ic|DiscoverableTimeout}} を確認してください。}}&lt;br /&gt;
&lt;br /&gt;
まだコンピュータが表示されない場合、以下のように {{ic|/etc/bluetooth/main.conf}} 内のデバイスクラスを変更してみて下さい:&lt;br /&gt;
&lt;br /&gt;
 # Default device class. Only the major and minor device class bits are&lt;br /&gt;
 # considered.&lt;br /&gt;
 #Class = 0x000100 # Computer Type (from default config)&lt;br /&gt;
 Class = 0x100100 # (Object-Transfer Service &amp;amp; Computer Type)&lt;br /&gt;
&lt;br /&gt;
{{Note|場合によっては、{{ic|main.conf}} 内の {{ic|Class}} はデバイスの初期化後に上書きされます。なので、{{ic|hciconfig hci0 class 100100}} のようにクラスを直接設定してください。}}&lt;br /&gt;
&lt;br /&gt;
あるユーザは、携帯からコンピュータを見られるようにするためにはこうするしか無いと報告しています。LG TV(そして、一部の他の機器)はオーディオデバイスから発見可能です。なので、{{ic|000414}} (soundbar クラス)を使用することでそのようなデバイスを発見できるようにできます。&lt;br /&gt;
&lt;br /&gt;
Bluetooth デバイス/サービスのクラスを生成するには https://bluetooth-pentest.narod.ru/software/bluetooth_class_of_device-service_generator.html を見てください。&lt;br /&gt;
&lt;br /&gt;
==== デバイスを接続した数秒後に切断してしまう ====&lt;br /&gt;
&lt;br /&gt;
デバイスを接続したすぐ後に切断が発生し、ジャーナルの出力に以下のようなメッセージが確認できる場合:&lt;br /&gt;
&lt;br /&gt;
 bluetoothd: Unable to get connect data for Headset Voice gateway: getpeername: Transport endpoint is not connected (107)&lt;br /&gt;
 bluetoothd: connect error: Connection refused (111)&lt;br /&gt;
&lt;br /&gt;
おそらく別のオペレーティングシステムで同一の Bluetooth アダプタを使ってデバイスがペアリングされていることが原因です (例: デュアルブート)。一部のデバイスは同一の MAC アドレス (例: Bluetooth アダプタ) に対して複数のペアリングを関連付けた場合に対処できません。この問題を解決するには [[#デュアルブートペアリング]] の指示に従ってください。&lt;br /&gt;
&lt;br /&gt;
==== スキャンしてもデバイスが表示されない ====&lt;br /&gt;
&lt;br /&gt;
Bluetooth Low Energy を使用しているデバイスは bluetoothctl でスキャンしても表示されないことがあります (例: [[Logitech MX Master]])。{{ic|transport le}} を使ってスキャンすることができます。&lt;br /&gt;
&lt;br /&gt;
{{hc|# bluetoothctl|&lt;br /&gt;
[bluetooth]# menu scan&lt;br /&gt;
[bluetooth]# transport le&lt;br /&gt;
[bluetooth]# back&lt;br /&gt;
[bluetooth]# scan on&lt;br /&gt;
[bluetooth]# devices&lt;br /&gt;
...&lt;br /&gt;
Device XX:XX:XX:XX:XX:XX DA V2 X &amp;lt;---- 低消費電力なデバイス&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
もう一つの方法は、{{aur|bluez-utils-compat}} をインストールし、{{ic|bluetooth.service}} を[[開始]]し、以下を実行することです:&lt;br /&gt;
&lt;br /&gt;
{{hc|# bluetoothctl|&lt;br /&gt;
[NEW] Controller (MAC) myhostname [default]&lt;br /&gt;
&lt;br /&gt;
[bluetooth]# power on&lt;br /&gt;
[CHG] Controller (MAC) Class: 0x0c010c&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[CHG] Controller (MAC) Powered: yes&lt;br /&gt;
&lt;br /&gt;
[bluetooth]# scan on&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller (MAC) Discovering: yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
他のターミナルで:&lt;br /&gt;
&lt;br /&gt;
 # hcitool lescan&lt;br /&gt;
&lt;br /&gt;
デバイスが表示されるまで待機してから hcitool を {{ic|Ctrl+c}} で閉じてください。bluetoothctl からデバイスが認識されたら通常通りにペアリングできます。&lt;br /&gt;
&lt;br /&gt;
==== Intel Corp. AX200 Bluetooth で BLE デバイスが見つからない ====&lt;br /&gt;
&lt;br /&gt;
どうやら、このデバイスでは BLE のパッシブスキャンが壊れているようです。詳細は[https://community.intel.com/t5/Wireless/AX200-Passive-BLE-scan-linux/m-p/1227456 上流のバグレポート]を見てください。&lt;br /&gt;
&lt;br /&gt;
==== スリープ後に再接続できない ====&lt;br /&gt;
&lt;br /&gt;
スリープ後や、コンピュータがスリープから復帰した後に、デバイスが自動的に再接続されないことがあります。&lt;br /&gt;
&lt;br /&gt;
この時、ログに以下のエラーが記録されます:&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
bluetoothd[487]: Authentication attempt without agent&lt;br /&gt;
bluetoothd[487]: Access denied: org.bluez.Error.Rejected&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
これは、デバイスが &#039;&#039;trusted&#039;&#039; としてマークされていないことが原因です。[[#ペアリング]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== デバイス固有の問題 ===&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth マウスのラグ / 接続断 / 応答なし ====&lt;br /&gt;
&lt;br /&gt;
[[Bluetooth マウス#トラブルシューティング]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
==== オーディオデバイスが br-connection-profile-unavailable で接続に失敗する ====&lt;br /&gt;
&lt;br /&gt;
PipeWire (pulseaudio-bluetooth ではない) が使用されているが、PipeWire のインスタンスが実行されていない場合、bluetooth オーディオデバイスは接続に失敗します。PipeWire デーモンを開始するには、{{ic|pipewire.service}} [[ユーザーユニット]]を[[開始]]するか、何らかの音声を再生してください。その後、オーディオデバイスをもう一度接続してみてください。&lt;br /&gt;
&lt;br /&gt;
==== ヘッドホンとマウスの干渉 ====&lt;br /&gt;
&lt;br /&gt;
Bluetooth マウスとキーボードを同時に使用しているときに音声が途切れる場合は #23 https://bugs.launchpad.net/ubuntu/+source/bluez/+bug/424215 で参照されているように、次を試してくみてださい:&lt;br /&gt;
&lt;br /&gt;
 # hciconfig hci0 lm ACCEPT,MASTER&lt;br /&gt;
 # hciconfig hci0 lp HOLD,SNIFF,PARK&lt;br /&gt;
&lt;br /&gt;
==== TP-LINK UB400 と Xbox のコントローラが接続/切断を繰り返す ====&lt;br /&gt;
&lt;br /&gt;
以下の設定を使用してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/bluetooth/main.conf|2=&lt;br /&gt;
...&lt;br /&gt;
[General]&lt;br /&gt;
JustWorksRepairing = always&lt;br /&gt;
FastConnectable = true&lt;br /&gt;
Class = 0x000100&lt;br /&gt;
...&lt;br /&gt;
[GATT]&lt;br /&gt;
ReconnectIntervals=1,1,2,3,5,8,13,21,34,55&lt;br /&gt;
AutoEnable=true&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
そして、{{ic|bluetooth.service}} を[[再起動]]してください。&lt;br /&gt;
&lt;br /&gt;
関連する [https://github.com/atar-axis/xpadneo/issues/166 xpadneo に関する議論]を見ることができますが、xpadneo のドライバは必要ありません。&lt;br /&gt;
&lt;br /&gt;
=== ファイル転送の問題 ===&lt;br /&gt;
&lt;br /&gt;
==== gnome-bluetooth ====&lt;br /&gt;
&lt;br /&gt;
bluetooth-properties でファイルの受信を有効にしようとしたときに以下のメッセージが表示される場合:&lt;br /&gt;
&lt;br /&gt;
 Bluetooth OBEX start failed: Invalid path&lt;br /&gt;
 Bluetooth FTP start failed: Invalid path&lt;br /&gt;
&lt;br /&gt;
[[XDG ユーザーディレクトリ]]が存在することを確認してください。&lt;br /&gt;
&lt;br /&gt;
==== シンボリックリンクのせいで、転送されたファイルを受信できない ====&lt;br /&gt;
&lt;br /&gt;
有効な Bluetooth 接続でファイルの受信に失敗する場合、問題はファイルの転送パス内のシンボリックリンクである場合があります。ジャーナルに以下のようなログが現れます:&lt;br /&gt;
&lt;br /&gt;
 Jun 18 11:18:13 ember obexd[3338969]: open(/home/me/.cache/obexd/MOC740): Operation not permitted (1)&lt;br /&gt;
&lt;br /&gt;
エラーメッセージに表示されれたパス内にシンボリックリンクが含まれている場合、obexd はデフォルトで[https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/obexd/plugins/filesystem.c#n90 それを拒否します]。この挙動は、[[ドロップインファイル]]を {{ic|obex.service}} [[systemd/ユーザー|ユーザサービス]]に対して使うことにより初期化時に上書きできます:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/systemd/user/obex.service.d/10-symlink.conf|2=&lt;br /&gt;
[Service]&lt;br /&gt;
ExecStart=&lt;br /&gt;
ExecStart=/usr/lib/bluetooth/obexd --symlinks&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
その後、ユーザの &#039;&#039;systemd&#039;&#039; マネージャの設定を[[リロード]]し、{{ic|obex.service}} ユーザユニットを[[再起動]]してください。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [https://averylarsen.com/2019/12/20/keeping-bluetooth-devices-paired-between-linux-and-windows/ Keeping Bluetooth devices paired between Linux and Windows]&lt;br /&gt;
* [https://nullroute.eu.org/~grawity/bluetooth-key-sharing.html Bluetooth link keys on dual-boot systems]&lt;br /&gt;
&lt;br /&gt;
{{TranslationStatus|Bluetooth|2023-11-03|791392}}&lt;/div&gt;</summary>
		<author><name>YSS</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Bluetooth&amp;diff=40913</id>
		<title>Bluetooth</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Bluetooth&amp;diff=40913"/>
		<updated>2025-10-07T11:00:19Z</updated>

		<summary type="html">&lt;p&gt;YSS: 英語版wikiからの追加&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Bluetooth]]&lt;br /&gt;
[[de:Bluetooth]]&lt;br /&gt;
[[en:Bluetooth]]&lt;br /&gt;
[[es:Bluetooth]]&lt;br /&gt;
[[ru:Bluetooth]]&lt;br /&gt;
[[zh-hans:Bluetooth]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Bluetooth マウス}}&lt;br /&gt;
{{Related|Bluetooth キーボード}}&lt;br /&gt;
{{Related|Bluetooth ヘッドセット}}&lt;br /&gt;
{{Related|Blueman}}&lt;br /&gt;
{{Related|ObexFTP}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
[[Wikipedia:ja:Bluetooth|Bluetooth]] は携帯電話やコンピュータなどの電子デバイス用の近距離無線通信規格です。Linux においては、Bluetooth プロトコルスタックの実装として [http://www.bluez.org/ BlueZ] が標準的に使われています。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
# Bluetooth プロトコロスタックを提供する、{{Pkg|bluez}} パッケージを[[インストール]]します。&lt;br /&gt;
# {{ic|bluetoothctl}} ユーティリティを提供する、{{Pkg|bluez-utils}} を[[インストール]]します。または {{AUR|bluez-utils-compat}} を[[インストール]]して、[[#非推奨の BlueZ tools|非推奨の BlueZ tools]] を追加します。&lt;br /&gt;
# 一般的な Bluetooth ドライバは、{{ic|btusb}} カーネルモジュールです。このモジュールがロードされているかどうかを[[カーネルモジュール#情報を取得|確認]]してください。もしロードされていなければ、[[カーネルモジュール#手動でモジュールを扱う|モジュールをロード]]してください。&lt;br /&gt;
# {{ic|bluetooth.service}} を[[起動/有効化]]します。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* デフォルトでは bluetooth デーモンは {{ic|lp}} [[ユーザーとグループ#システムグループ|グループ]]のメンバーのユーザーだけに bnep0 デバイスを提供します。bluetooth テザリングに接続するときはユーザーをグループに追加しておいてください。必要なグループは {{ic|/etc/dbus-1/system.d/bluetooth.conf}} ファイルで変更することができます。&lt;br /&gt;
* Bluetooth アダプターには Wi-Fi カードがバンドルされているものもあります (例: [https://www.intel.com/content/www/us/en/wireless-products/centrino-advanced-n-6235.html Intel Centrino]{{Dead link|2023|09|16|status=404}})。これらの Bluetooth アダプターをカーネルから見えるようにするには、まず Wi-Fi カードを有効にする必要があります (大体はラップトップ上のキーボードショートカットを使う)。&lt;br /&gt;
* Bluetooth カードによってはネットワークアダプタと衝突することがあります (例: Broadcom)。したがって、ネットワークサービスを起動する前に Bluetooth デバイスを接続するようにしてください。&lt;br /&gt;
* hcitool や hciconfig などのツールは上流では非推奨となっており、{{Pkg|bluez-utils}} にはもはや含まれていません。アップデートされないことが決まっているため、スクリプトの中で使用している場合は使わないように書き換えることを推奨します。それでも使いたい場合は {{AUR|bluez-utils-compat}} をインストールしてください。詳しい情報は {{Bug|53110}} や [https://lore.kernel.org/linux-bluetooth/20170104133401.3636-1-luiz.dentz@gmail.com/ Bluez メーリングリスト] を参照。&lt;br /&gt;
* 2024年から、{{Pkg|bluez-obex}}と{{Pkg|bluez-mesh}}は{{Pkg|bluez}}から分離されました。よって、Bluetooth越しにファイルを転送したい場合は、{{Pkg|bluez-obex}}をインストールし、ユーザーサービス {{ic|obex.service}} を有効化する必要があります。}}}}&lt;br /&gt;
&lt;br /&gt;
=== フロントエンド ===&lt;br /&gt;
&lt;br /&gt;
==== コンソール ====&lt;br /&gt;
&lt;br /&gt;
* {{App|bluetoothctl|シェルからデバイスをペアリングすることは、最も単純で信頼性の高いオプションの一つです。|http://www.bluez.org/|{{Pkg|bluez-utils}}}}&lt;br /&gt;
* {{App|bluetuith|ターミナルユーザインターフェイスによる Bluetooth マネージャを提供します。OBEX ファイル転送とマウスのサポート付きで、デバイス/アダプタを簡単に管理できます。|https://www.github.com/darkhz/bluetuith|{{AUR|bluetuith}}}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|bluetoothctl コマンドを自動化するには、{{ic|echo -e &amp;quot;&#039;&#039;command1&#039;&#039;\n&#039;&#039;command2&#039;&#039;\n&amp;quot; {{!}} bluetoothctl}} または {{ic|bluetoothctl -- &#039;&#039;command&#039;&#039;}} を使用します。}}&lt;br /&gt;
&lt;br /&gt;
==== グラフィカル ====&lt;br /&gt;
&lt;br /&gt;
以下のパッケージでは、Bluetooth をカスタマイズするためのグラフィカルインターフェイスが利用可能です。&lt;br /&gt;
&lt;br /&gt;
* {{App|GNOME Bluetooth|[[GNOME]] の Bluetooth ツール。&lt;br /&gt;
** {{Pkg|gnome-bluetooth-3.0}} バックエンドを提供 ({{Pkg|gnome-bluetooth}} はレガシーです)&lt;br /&gt;
** {{Pkg|gnome-shell}} ステータスモニターアプレットを提供&lt;br /&gt;
** {{Pkg|gnome-control-center}} は設定用のフロントエンド GUI を提供しており、アクティビティ概要で  Bluetooth と入力するか、 {{ic|gnome-control-center bluetooth}} コマンドでアクセスすることができます。&lt;br /&gt;
** また、{{ic|bluetooth-sendto}} コマンドを直接起動して、リモートデバイスにファイルを送信することも可能です。&lt;br /&gt;
** {{AUR|nautilus-bluetooth}} は Nautilus の右クリックメニューに &amp;quot;Bluetoothで送信&amp;quot; エントリを追加します。&lt;br /&gt;
** ファイルを受信するには、Bluetooth 設定パネルを開きます。Bluetooth パネルが開いている間のみ受信できます。&lt;br /&gt;
** Thunar のファイルプロパティメニューの &#039;&#039;送信先&#039;&#039; メニューに Bluetooth エントリを追加するには、説明 [https://docs.xfce.org/xfce/thunar/send-to ここ] を参照してください。(設定が必要なコマンドは {{ic|bluetooth-sendto %F}} です)&lt;br /&gt;
|https://wiki.gnome.org/Projects/GnomeBluetooth|}}&lt;br /&gt;
* {{App|Bluedevil|[[KDE]] の Bluetooth ツール。 Dolphin やシステムトレイに Bluetooth のアイコンが表示されていない場合は、システムトレイオプションで有効にするか、ウィジェットを追加してください。アイコンをクリックすることで、Bluedevil の設定や Bluetooth デバイスの検出が可能です。KDE システム設定からもインターフェースが利用できます。|https://invent.kde.org/plasma/bluedevil|{{Pkg|bluedevil}}}}&lt;br /&gt;
* {{App|Blueberry|GNOME Bluetooth から Linux Mint でスピンオフした &#039;&#039;Blueberry&#039;&#039; は全てのデスクトップ環境で動作します。Obex Object Push によるファイル受信をサポートしていません。|https://github.com/linuxmint/blueberry|{{Pkg|blueberry}}}}&lt;br /&gt;
* {{App|[[Blueman]]|フル機能の Bluetooth マネージャー|https://github.com/blueman-project/blueman|{{Pkg|blueman}}}}&lt;br /&gt;
* {{App|[[ObexFTP]]|OBEX 対応のデバイスとの間でファイルを転送するツール。|http://dev.zuckschwerdt.org/openobex/wiki/ObexFtp|{{AUR|obexftp}}}}&lt;br /&gt;
&lt;br /&gt;
== ペアリング ==&lt;br /&gt;
&lt;br /&gt;
{{Note|Bluetooth デバイスを使用する前に、[[rfkill]] でブロックされていないことを確認してください。}}&lt;br /&gt;
&lt;br /&gt;
このセクションでは、&#039;&#039;bluetoothctl&#039;&#039; CLI を使って &#039;&#039;bluez5&#039;&#039; を直接設定する方法を説明しています。これは、代替のフロントエンドツール(例えば GNOME Bluetooth)を使用している場合は必要ないかもしれません。&lt;br /&gt;
&lt;br /&gt;
正確な手順は、利用するデバイスとその入力機能によります。以下は {{ic|bluetoothctl}} を使ってデバイスをペアリングする一般的な説明です。&lt;br /&gt;
&lt;br /&gt;
{{ic|bluetoothctl}} 対話コマンドを実行してください。{{ic|help}} と入力することで利用できるコマンドのリストを表示できます。&lt;br /&gt;
&lt;br /&gt;
# (任意) {{ic|select &#039;&#039;MAC Address&#039;&#039;}} と入力してデフォルトのコントローラを選択してください。&lt;br /&gt;
# (任意) デバイスがオフになっている場合、{{ic|power on}} と入力してコントローラへの電源供給をオンにしてください。デバイスはデフォルトでオンになっています ([[#アダプタのデフォルト電源状態]])。&lt;br /&gt;
# {{ic|devices}} と入力して、ペアリングしたいデバイスの MAC アドレスを取得してください。&lt;br /&gt;
# デバイスが表示されないときは {{ic|scan on}} コマンドでデバイス検出モードにしてください。&lt;br /&gt;
# {{ic|agent on}} でエージェントをオンにするか、特定のエージェントを選択してください: {{ic|agent}} の後にタブキーを2回押すと、利用可能なエージェントのリストが表示されるはずです。Bluetooth エージェントとは、Bluetooth の &#039;ペアリングコード&#039; を管理するもののことです。エージェントは、&#039;ペアリングコード&#039;の受信に応答したり、&#039;ペアリングコード&#039;を送信したりできます。ほとんどの場合、{{ic|default-agent}} を使うのが適切なはずです。[https://askubuntu.com/questions/763939/bluetoothctl-what-is-a-bluetooth-agent]&lt;br /&gt;
# {{ic|pair &#039;&#039;MAC Address&#039;&#039;}} と入力することでペアリングを実行します (タブ補完が使えます)。&lt;br /&gt;
# PIN がないデバイスを使う場合は、手動でデバイスを信頼する必要があるかもしれません。{{ic|trust &#039;&#039;MAC Address&#039;&#039;}} と入力してこれを行なって下さい。デバイスを信頼するには {{ic|trust &#039;&#039;MAC_address&#039;&#039;}} と入力してください。&lt;br /&gt;
# {{ic|connect &#039;&#039;MAC_address&#039;&#039;}} を使って接続を確立してください。&lt;br /&gt;
&lt;br /&gt;
セッションの例は以下のようになります:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ bluetoothctl|&lt;br /&gt;
[NEW] Controller 00:10:20:30:40:50 &#039;&#039;hostname&#039;&#039; [default]&lt;br /&gt;
[bluetooth]# agent KeyboardOnly&lt;br /&gt;
Agent registered&lt;br /&gt;
&lt;br /&gt;
[bluetooth]# default-agent&lt;br /&gt;
Default agent request successful&lt;br /&gt;
&lt;br /&gt;
[bluetooth]# power on&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[CHG] Controller 00:10:20:30:40:50 Powered: yes&lt;br /&gt;
&lt;br /&gt;
[bluetooth]# scan on&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller 00:10:20:30:40:50 Discovering: yes&lt;br /&gt;
[NEW] Device 00:12:34:56:78:90 &#039;&#039;device name&#039;&#039;&lt;br /&gt;
[CHG] Device 00:12:34:56:78:90 LegacyPairing: yes&lt;br /&gt;
&lt;br /&gt;
[bluetooth]# pair 00:12:34:56:78:90&lt;br /&gt;
Attempting to pair with 00:12:34:56:78:90&lt;br /&gt;
[CHG] Device 00:12:34:56:78:90 Connected: yes&lt;br /&gt;
[CHG] Device 00:12:34:56:78:90 Connected: no&lt;br /&gt;
[CHG] Device 00:12:34:56:78:90 Connected: yes&lt;br /&gt;
Request PIN code&lt;br /&gt;
[agent] Enter PIN code: 1234&lt;br /&gt;
[CHG] Device 00:12:34:56:78:90 Paired: yes&lt;br /&gt;
Pairing successful&lt;br /&gt;
[CHG] Device 00:12:34:56:78:90 Connected: no&lt;br /&gt;
&lt;br /&gt;
[bluetooth]# connect 00:12:34:56:78:90&lt;br /&gt;
Attempting to connect to 00:12:34:56:78:90&lt;br /&gt;
[CHG] Device 00:12:34:56:78:90 Connected: yes&lt;br /&gt;
Connection successful&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== デュアルブートペアリング ===&lt;br /&gt;
&lt;br /&gt;
デュアルブート環境でデバイスをペアリングするには、Linux の方でペアリングキーを変更して Windows または macOS で使用されているペアリングキーと同じにする必要があります。&lt;br /&gt;
&lt;br /&gt;
このページでは、これを手動で行う方法のみを説明しています。この手順を自動化するには、[https://github.com/x2es/bt-dualboot bt-dualboot プロジェクト]や関連するリポジトリを参照してください。&lt;br /&gt;
&lt;br /&gt;
==== 設定方法 ====&lt;br /&gt;
&lt;br /&gt;
これを行うには、まず Arch Linux 上でデバイスのペアリングを行います。その後、もう一方の OS を再起動し、デバイスをペアリングします。ここでペアリング・キーを取り出す必要がありますが、まず Bluetooth デバイスの電源を切り、接続を試みないようにします。&lt;br /&gt;
&lt;br /&gt;
{{Note|([[Logitech MX Master]] や Logitech 604 Lightspeed などの) 一部の Logitech デバイスは、デバイスが新しいシステムとペアリングするたびに MAC アドレスの値を1つ増加させます。プロセスの最後にこれに対処するために、このケースに該当するかどうかを確認する必要があります。}}&lt;br /&gt;
&lt;br /&gt;
==== Windows の場合 ====&lt;br /&gt;
&lt;br /&gt;
===== Windows での展開 =====&lt;br /&gt;
&lt;br /&gt;
まず、Windows を起動してください。&lt;br /&gt;
&lt;br /&gt;
リンクキーを含むレジストリキーは、[https://docs.microsoft.com/en-us/windows/security/identity-protection/access-control/local-accounts#system SYSTEM アカウント]でしかアクセスできないため、ログインすることができません。そのため、{{ic|regedit.exe}} を {{ic|SYSTEM}} として実行するには、Windows Sysinternals 公式サイトにある Microsoft の [https://docs.microsoft.com/en-us/sysinternals/downloads/psexec PsExec] ツールが必要になります。&lt;br /&gt;
&lt;br /&gt;
[https://download.sysinternals.com/files/PSTools.zip PsTools] をダウンロードし、{{ic|PsExec64.exe}} を解凍します。&lt;br /&gt;
&lt;br /&gt;
[https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/windows-commands#command-shell-overview コマンドシェル] の管理者インスタンスで、解凍した EXE の場所からレジストリエディタを起動してください:&lt;br /&gt;
&lt;br /&gt;
 .\PsExec64.exe -s -i regedit.exe&lt;br /&gt;
&lt;br /&gt;
レジストリエディタで、以下のレジストリキーに移動します:&lt;br /&gt;
&lt;br /&gt;
 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Keys&lt;br /&gt;
&lt;br /&gt;
このキーの中に各 Bluetooth アダプターの MAC アドレス別のキーがあります。複数のキーがあり、どれを使えばいいかわからない場合は、[https://www.addictivetips.com/windows-tips/find-bluetooth-mac-address-windows-10/ このガイド]に従って、目的の Bluetooth アダプタの MAC アドレスを検索してください。&lt;br /&gt;
&lt;br /&gt;
目的のデバイスアダプタキーの中に、ペアリングされたデバイスのそれぞれに対してキーが、MAC アドレスと関連付けられて存在しています。&lt;br /&gt;
&lt;br /&gt;
インストール間で共有したい各ペアデバイスについて、キー全体を右クリックし、&#039;&#039;.reg&#039;&#039; ファイルとしてエクスポートしてください。これはテキストファイルで、このファイルからキーをコピーできます。&lt;br /&gt;
&lt;br /&gt;
このファイルにバイナリキーが1つだけ存在する場合、Bluetooth 5.1 デバイスではなく、そのペアリングキーが必要なもの全てであるということになります。&lt;br /&gt;
&lt;br /&gt;
ペアリングしたデバイスに複数のキー ({{ic|LTK}} や {{ic|IRK}} など) が存在する場合、これは Bluetooth 5.1 デバイスで&#039;&#039;ある&#039;&#039;ということになります。これらのキーを使う方法は [[#Bluetooth 5.1 キーの準備]] を見てください。&lt;br /&gt;
&lt;br /&gt;
最後に、キーを Linux 環境にインポートするために、Linux を起動して [[#終わりに]] へ進んでください。&lt;br /&gt;
&lt;br /&gt;
===== Linux での展開 =====&lt;br /&gt;
&lt;br /&gt;
{{Note|Windows パーティションが Bitlocker で暗号化されている場合、Linux から chntpw を使ってアクセスすることはできません。}}&lt;br /&gt;
&lt;br /&gt;
Arch をリブートしてください。{{Pkg|chntpw}} をインストールして、Windows システムドライブをマウントします。&lt;br /&gt;
&lt;br /&gt;
 $ cd &#039;&#039;/path/to/windows/system&#039;&#039;/Windows/System32/config&lt;br /&gt;
 $ chntpw -e SYSTEM&lt;br /&gt;
{{Note|CurrentControlSet の代わりに ControlSet00X（X は任意の数字）と表示されることがあります。ls コマンドで確認してください。}}&lt;br /&gt;
{{ic|chntpw}} 環境の中で以下を実行します。&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd CurrentControlSet\Services\BTHPORT\Parameters\Keys&lt;br /&gt;
もしくは&lt;br /&gt;
 &amp;gt; cd ControlSet00X\Services\BTHPORT\Parameters\Keys&lt;br /&gt;
&lt;br /&gt;
次に、Bluetooth アダプタの MAC アドレスを取得し、そのフォルダを入力します。&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; ls&lt;br /&gt;
 &amp;gt; cd &#039;&#039;your-device&#039;s-mac-address&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
ペアリングしているデバイスにも同じことをします。Bluetooth 5.1 デバイスで&#039;&#039;ない&#039;&#039;場合、ペアリングキーしか表示されません:&lt;br /&gt;
&lt;br /&gt;
{{hc|&amp;gt; ls|&lt;br /&gt;
Node has 0 subkeys and 1 values&lt;br /&gt;
size  type        value name    [value if type DWORD]&lt;br /&gt;
16    REG_BINARY &amp;lt;123456789876&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Bluetooth 5.1 デバイスである場合、{{ic|hex}} を通して、デバイスのキーを取得します。&lt;br /&gt;
&lt;br /&gt;
{{hc|&amp;gt; hex 123456789876|&lt;br /&gt;
:00000 XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX (いくつかの他の文字)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
”XX&amp;quot; はペアリング・キーです。どのキーがどの MAC アドレスにマッピングされているか、メモしておいてください。&lt;br /&gt;
&lt;br /&gt;
Bluetooth 5.1 デバイスで&#039;&#039;ある&#039;&#039;場合、1つのデバイスに対応するキーが複数表示されます。&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
Node has 0 subkeys and 8 values&lt;br /&gt;
  size     type              value name             [value if type DWORD]&lt;br /&gt;
    16  3 REG_BINARY         &amp;lt;LTK&amp;gt;&lt;br /&gt;
     4  4 REG_DWORD          &amp;lt;KeyLength&amp;gt;               16 [0x10]&lt;br /&gt;
     8  b REG_QWORD          &amp;lt;ERand&amp;gt;&lt;br /&gt;
     4  4 REG_DWORD          &amp;lt;EDIV&amp;gt;                 37520 [0x9290]&lt;br /&gt;
    16  3 REG_BINARY         &amp;lt;IRK&amp;gt;&lt;br /&gt;
     8  b REG_QWORD          &amp;lt;Address&amp;gt;&lt;br /&gt;
     4  4 REG_DWORD          &amp;lt;AddressType&amp;gt;              1 [0x1]&lt;br /&gt;
     4  4 REG_DWORD          &amp;lt;AuthReq&amp;gt;                 45 [0x2d]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
これらのキーを使う方法は [[#Bluetooth 5.1 キーの準備]] を見てください。必要な値を得るには {{ic|hex &#039;&#039;value_name&#039;&#039;}} を使います。&lt;br /&gt;
&lt;br /&gt;
最後に、キーを Linux 環境にインポートするために [[#終わりに]] へ進んでください。&lt;br /&gt;
&lt;br /&gt;
==== macOS の場合 ====&lt;br /&gt;
&lt;br /&gt;
macOS を起動し:&lt;br /&gt;
&lt;br /&gt;
* macOS Monterey 及びそれ以降の場合:&lt;br /&gt;
*# Keychain Access を開き、Bluetooth と検索してください。&lt;br /&gt;
*# 日付順でソートしてください。&lt;br /&gt;
*# 対象のデバイスを最近取り除いて再接続した場合、キーを変更日時順でソートして、最新のものを選べばよいです。キーはおそらく MobileBluetooth (古い Bluetooth デバイスの場合) という名前か、UUID (Bluetooth 5.1 以降) だけです。&lt;br /&gt;
*# 対象のエントリをダブルクリックしてください。Account フィールドの MAC アドレスが対象デバイスの MAC アドレスと一致することを確認してください。&lt;br /&gt;
*# &amp;quot;Show password&amp;quot; チェックボックスをクリックしてください。ここで、パスワードを2回入力する必要があります。&lt;br /&gt;
*# パスワードフィールド内のテキストをコピーしてください ({{ic|⌘+a}} {{ic|⌘+c}})。これは実際には XML ファイルです。&lt;br /&gt;
#* テキストをホームディレクトリ内の {{ic|bt_keys.txt}} ファイルにペーストしてください。&lt;br /&gt;
* High Sierra 及びそれ以降の場合、次のコマンドをターミナルで実行してください: {{bc|# defaults read /private/var/root/Library/Preferences/com.apple.bluetoothd.plist LinkKeys &amp;gt; ~/bt_keys.txt}}&lt;br /&gt;
* Sierra 及びそれ以前の場合、次のコマンドをターミナルで実行してください: {{bc|# defaults read /private/var/root/Library/Preferences/blued.plist LinkKeys &amp;gt; ~/bt_keys.txt}}&lt;br /&gt;
&lt;br /&gt;
すると、{{ic|~/.bt_keys.txt}} ファイルには、確立された Bluetooth キーが含まれています。古いバージョンの macOS (High Sierra 及びそれ以前) では、先に進む前にキーの並びを逆にする必要があります。例えば、{{ic|98 54 2f aa bb cc dd ee ff gg hh ii jj kk ll mm}} は {{ic|MM LL KK JJ GG FF EE DD CC BB AA 2F 54 98}} になります。&lt;br /&gt;
&lt;br /&gt;
{{Note|キーの並びを逆にするには、以下の [[Python]] コードを使用できます:&lt;br /&gt;
{{bc|1=&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; key = &amp;quot;98 54 2f aa bb cc dd ee ff gg hh ii jj kk ll mm&amp;quot;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; &amp;quot; &amp;quot;.join(reversed(key.strip().split()))&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Bluetooth 5.1 デバイスの場合、1つのデバイスに対して複数のキーが関連付けられています。それらのキーを使用する方法については [[#Bluetooth 5.1 キーの準備]] を見てください。&lt;br /&gt;
&lt;br /&gt;
最後に、キーを Linux 環境にインポートするために、Linux を起動し、[[#終わりに]] へ進んでください。&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth 5.1 キーの準備 ====&lt;br /&gt;
&lt;br /&gt;
[[#Windows の場合]] や [[#macOS の場合]] の章に従っていて Bluetooth 5.1 キーが存在していた場合、それらのキーを Linux にインポートする前に特定の変換をかける必要があります。[[#終わりに]] の章で使うために、要求されたファイルを適切に作成してください。この手順は対象デバイスによって異なり、キーの一部を操作する必要があります。これを行うためのユーティリティは以下で挙げられています。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! デバイス !! 元のキー及び変換 (Windows) !! 元のキー及び変換 (macOS) || キーの保存先ファイル&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;|&lt;br /&gt;
* Logitech MX Master 3&lt;br /&gt;
* Xbox One S Wireless Controller&lt;br /&gt;
|&lt;br /&gt;
* {{ic|IRK}} をコピー。&lt;br /&gt;
* 16進数の桁間のスペースを除去。&lt;br /&gt;
| {{Grey|?}}&lt;br /&gt;
| {{ic|IdentityResolvingKey.Key}}&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
* {{ic|LTK}} をコピー。&lt;br /&gt;
* 16進数の桁間のスペースを除去。&lt;br /&gt;
| {{Grey|?}}&lt;br /&gt;
| {{ic|SlaveLongTermKey.Key}} と {{ic|PeripheralLongTermKey.Key}}&lt;br /&gt;
|-&lt;br /&gt;
|{{ic|ERand}} と {{ic|EDIV}} は {{ic|0}} にする必要あり。&lt;br /&gt;
|&#039;&#039;Random Number&#039;&#039; と &#039;&#039;Encrypted Diversifier&#039;&#039; は {{ic|0}} にする必要あり。&lt;br /&gt;
| {{-}}&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|&lt;br /&gt;
* ThinkPad TrackPoint Keyboard II&lt;br /&gt;
* Pebble M350 マウス&lt;br /&gt;
* Logitech G604 Lightspeed マウス&lt;br /&gt;
|&lt;br /&gt;
* {{ic|IRK}} をコピー&lt;br /&gt;
* バイトの順番を逆に。&lt;br /&gt;
|&lt;br /&gt;
* &#039;&#039;Remote IRK&#039;&#039; をコピー。&lt;br /&gt;
* Base64 から16進数に変換。&lt;br /&gt;
| {{ic|IdentityResolvingKey.Key}}&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* {{ic|LTK}} をコピー。&lt;br /&gt;
* 16進数の桁間のスペースを除去。&lt;br /&gt;
|&lt;br /&gt;
* &#039;&#039;Remote Encryption&#039;&#039; を &#039;&#039;Long-term Key&#039;&#039; にコピー。&lt;br /&gt;
* Base64 から16進数に変換。&lt;br /&gt;
| {{ic|LongTermKey.Key}}&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* {{ic|ERand}} をコピー。&lt;br /&gt;
* バイトの順番を逆に。&lt;br /&gt;
* 数値全体を10進数に変換。&lt;br /&gt;
|&lt;br /&gt;
* &#039;&#039;Remote Encryption&#039;&#039; を &#039;&#039;Random Number&#039;&#039; にコピー&lt;br /&gt;
* Base64 をリトルエンディアンの10進数に変換 (以下の Python コードを参照)。&lt;br /&gt;
| {{ic|LongTermKey.Rand}}&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* {{ic|EDIV}} をコピー。&lt;br /&gt;
* バイトの順番を逆に。&lt;br /&gt;
* 数値全体を10進数に変換。&lt;br /&gt;
|&lt;br /&gt;
* &#039;&#039;Remote Encryption&#039;&#039; を &#039;&#039;Encrypted Diversifier&#039;&#039; にコピー。&lt;br /&gt;
* Base64 からリトルエンディアンの10進数に変換 (以下の Python コードを参照)。&lt;br /&gt;
| {{ic|LongTermKey.EDiv}}&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;|他のデバイス&lt;br /&gt;
|&lt;br /&gt;
* {{ic|LTK}} をコピー。&lt;br /&gt;
* 16進数の桁間のスペースを除去。&lt;br /&gt;
|&lt;br /&gt;
* &#039;&#039;Remote IRK&#039;&#039; をコピー。&lt;br /&gt;
* Base64 から16進数に変換。&lt;br /&gt;
| {{ic|LongTermKey.Key}}&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* {{ic|ERand}} をコピー。&lt;br /&gt;
* バイトの順番を逆に。&lt;br /&gt;
* 数値全体を10進数に変換。&lt;br /&gt;
|&lt;br /&gt;
* &#039;&#039;Remote Encryption&#039;&#039; を &#039;&#039;Long-term Key&#039;&#039; にコピー。&lt;br /&gt;
* Base64 から16進数に変換。&lt;br /&gt;
| {{ic|LongTermKey.Rand}}&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* {{ic|EDIV}} をコピー。&lt;br /&gt;
* 16進数の桁間のスペースを除去。&lt;br /&gt;
|&lt;br /&gt;
* &#039;&#039;Remote Encryption&#039;&#039; を &#039;&#039;Encrypted Diversifier&#039;&#039; にコピー。&lt;br /&gt;
* Base64 から16進数に変換。&lt;br /&gt;
* バイトの順番を逆に。&lt;br /&gt;
| {{ic|LongTermKey.EDiv}}&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;|Xbox ワイヤレスコントローラ&lt;br /&gt;
|&lt;br /&gt;
* {{ic|LTK}} をコピー。&lt;br /&gt;
* 16進数の桁間のスペースを除去。&lt;br /&gt;
| {{Grey|?}}&lt;br /&gt;
| {{ic|SlaveLongTermKey.Key}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* 値からスペースを取り除くには、[https://www.browserling.com/tools/remove-all-whitespace このオンラインツール]や以下の [[Python]] コードを使用できます:&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; &amp;quot;&#039;&#039;key_value&#039;&#039;&amp;quot;.replace(&amp;quot; &amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
* 以下の Python コードはバイトの順番を逆にするだけです:&lt;br /&gt;
{{bc|1=&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; ERand=&amp;quot; 63 02 84 B8 5D 40 44 DF   &amp;quot;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; ERand=list(reversed(ERand.strip().split()))&lt;br /&gt;
}}&lt;br /&gt;
* 以下の Python コードは、一部で必要となる追加の10進数変換を行います:&lt;br /&gt;
{{bc|1=&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; int(&amp;quot;&amp;quot;.join(ERand), 16)&lt;br /&gt;
16088054540146049635&lt;br /&gt;
}}&lt;br /&gt;
* 以下の Python コードは base64 から16進数への変換を行います:&lt;br /&gt;
 binascii.hexlify(base64.decodebytes(b&#039;...&#039;)).upper()&lt;br /&gt;
* 以下の Python コードは完全な macOS Encrypted Diversifier の変換を行います:&lt;br /&gt;
 struct.unpack(&#039;&amp;lt;H&#039;, base64.decodebytes(b&#039;...&#039;))&lt;br /&gt;
* 以下の Python コードは完全な macOS Random Number の変換を行います:&lt;br /&gt;
 struct.unpack(&#039;&amp;amp;lt;Q&#039;, base64.decodebytes(b&#039;...&#039;))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
一般的なケースの例としては:&lt;br /&gt;
* {{ic|LTK}} の値 {{ic|48 4D AF CD 0F 92 22 88 0A 52 9A F4 76 DA 8B 94}} は、{{ic|LongTermKey.Key}} の値 {{ic|484DAFCD0F9222880A529AF476DA8B94}} となります。&lt;br /&gt;
* {{ic|ERand}} の値 {{ic|63 02 84 B8 5D 40 44 DF}} は、{{ic|Rand}} の値 {{ic|16088054540146049635}} となります。&lt;br /&gt;
* {{ic|EDIV}} の値 {{ic|37520}} は、{{ic|EDiv}} の値 {{ic|37520}} となります。&lt;br /&gt;
&lt;br /&gt;
==== 設定の保存  ====&lt;br /&gt;
&lt;br /&gt;
キーを手に入れたら、ユーザーを root に変更し、以下を実行してください:&lt;br /&gt;
&lt;br /&gt;
{{bc|# cd /var/lib/bluetooth/&#039;&#039;BT-Adapter-MAC-address&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
ここには、ペアリングした Bluetooth 機器ごとのフォルダがあります。Arch とデュアルブートでペアリングしたい各デバイスについて、以下を実行します:&lt;br /&gt;
&lt;br /&gt;
{{bc|# cd &#039;&#039;device-MAC-address&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
{{Note|この時点で、ペアリング時に MAC アドレスの値を増加させるデバイスを使用している場合、MAC アドレスのディレクトリを、値を増加させたパスへ移動させる必要があります。Windows から MAC アドレスをコピーするか、あるいは、各オクテットが2桁の[[Wikipedia:Hexadecimal|16進数]]であることに注意しながら自分で値を増加させてください。}}&lt;br /&gt;
&lt;br /&gt;
ペアリングキーを持っている場合 (つまり、これは Bluetooth 5.1 デバイスでない)、{{ic|info}} ファイルを編集し、{{ic|[LinkKey]}} 以下のキーを変更します。例えば:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=info|2=&lt;br /&gt;
[LinkKey]&lt;br /&gt;
Key=XXXXXXXXXXXXXXX&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|すべての文字が大文字であることを確認する必要があります。スペースはすべて削除してください。}}&lt;br /&gt;
&lt;br /&gt;
複数のキーが存在する場合 (Bluetooth 5.1 の場合)、以下の {{ic|info}} ファイルを編集して、全てのキーをそれぞれの値で置き換えてください。例えば、Xbox One S Wireless Controller の場合:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=info|2=&lt;br /&gt;
[IdentityResolvingKey]&lt;br /&gt;
Key=&amp;lt;IdentityResolvingKey.Key&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[PeripheralLongTermKey]&lt;br /&gt;
Key=&amp;lt;PeripheralLongTermKey.Key&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[SlaveLongTermKey]&lt;br /&gt;
Key=&amp;lt;SlaveLongTermKey.Key&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
次に、{{ic|bluetooth.service}} と {{ic|pulseaudio}} を[[再起動]]してください。({{ic|pulseaudio -k &amp;amp;&amp;amp; pulseaudio --start}} を使ってください。)&lt;br /&gt;
&lt;br /&gt;
これで、デバイスに接続できるはずです。&lt;br /&gt;
&lt;br /&gt;
{{Note|Bluetooth マネージャによっては、デバイスに再接続するために完全な再起動が必要な場合があります。}}&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
&lt;br /&gt;
=== アダプタのデフォルト電源状態 ===&lt;br /&gt;
&lt;br /&gt;
{{Pkg|bluez}} 5.65 以降、BlueZ はデフォルトで、サービスの起動時やサスペンドからの復帰時にすべての Bluetooth アダプタをオンにします。[https://github.com/bluez/bluez/commit/180cf09933b2d8eb03972c8638063429fe5fece5]&lt;br /&gt;
&lt;br /&gt;
アダプタを自動で有効化させたくない場合(例えば、ポータブルデバイスなどでバッテリを節約したい場合)、{{ic|/etc/bluetooth/main.conf}} の {{ic|[Policy]}} セクションで {{ic|1=AutoEnable=false}} を設定してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=/etc/bluetooth/main.conf|2=&lt;br /&gt;
[Policy]&lt;br /&gt;
AutoEnable=false&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
この設定を行っても、[[#ペアリング]] で説明されているように {{ic|power on}} を実行すれば、アダプタを手動でオンにできます。&lt;br /&gt;
&lt;br /&gt;
=== 起動時に発見可能にする ===&lt;br /&gt;
&lt;br /&gt;
デバイスが常に見えていて、かつ直接接続できる必要がある場合:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=/etc/bluetooth/main.conf|2=&lt;br /&gt;
[General]&lt;br /&gt;
DiscoverableTimeout = 0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== サスペンドからの復帰 ===&lt;br /&gt;
&lt;br /&gt;
Bluetooth キーボードやマウスなどをサスペンドから起動できるようにする。まず、bios の設定を確認し、サスペンドからの復帰 が無効になっていないことを確認します。多くの場合、マザーボードからの Bluetooth は USB デバイスです。&lt;br /&gt;
&lt;br /&gt;
bluetooth アダプターのベンダーコードとデバイス ID を確認してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ lsusb {{!}} grep bluetooth -i|&lt;br /&gt;
Bus 001 Device 002: ID 8087:0039 Intel Corp. AX200 Bluetooth&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
サスペンドからの復帰を有効にするために、ベンダコードとデバイス ID の新しい udev ルールを追加してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/udev/rules.d/91-keyboard-mouse-wakeup.rules|2=&lt;br /&gt;
SUBSYSTEM==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;8087&amp;quot;, ATTRS{idProduct}==&amp;quot;0039&amp;quot; RUN+=&amp;quot;/bin/sh -c &#039;echo enabled &amp;gt; /sys$env{DEVPATH}/../power/wakeup;&#039;&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
復帰後に Bluetooth キーボードを自動的に再設定して、例えば異なるキーマップやキーのリピート速度をもたせたりする(詳細は [[Xorg でのキーボード設定#typematic delay と rate の調整]] と [[xmodmap]])には、[[実行可能属性|実行可能]]なスクリプトを作成してください。&lt;br /&gt;
&lt;br /&gt;
{{hc|configure_keyboard.sh|2=&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
export DISPLAY=:0&lt;br /&gt;
xset r rate 220 30&lt;br /&gt;
xmodmap /&#039;&#039;your&#039;&#039;/&#039;&#039;path&#039;&#039;/&#039;&#039;to&#039;&#039;/.Xmodmap&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
そして、上記のような追加の udev ルールを作成してください。&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/udev/rules.d/92-keyboard-reconfiguration-wakeup.rules|2=&lt;br /&gt;
SUBSYSTEM==&amp;quot;usb&amp;quot;, ATTRS{idVendor}==&amp;quot;8087&amp;quot;, ATTRS{idProduct}==&amp;quot;0039&amp;quot; RUN+=&amp;quot;/&#039;&#039;your&#039;&#039;/&#039;&#039;path&#039;&#039;/&#039;&#039;to&#039;&#039;/configure_keyboard.sh&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== 実験的な機能を有効化する ===&lt;br /&gt;
&lt;br /&gt;
Bluez スタックは、バグがあるかもしれない新しい機能を D-Bus 実験的オプションおよびカーネル実験的オプションに留めます。実験的な機能は最終的に、安定していると判断され、もはやオプションを必要としなくなるので、どのような実験的な機能が存在するかはバージョンによって異なります (例えば、現在 D-Bus の実験的なインターフェイスを有効化すると、古いヘッドセットのバッテリーレベルを報告できるようになります)。実験的な機能を有効化するには、設定の対応する行をアンコメントしてください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/bluetooth/main.conf|2=&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
# Enables D-Bus experimental interfaces&lt;br /&gt;
# Possible values: true or false&lt;br /&gt;
&#039;&#039;&#039;#Experimental = true&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Enables kernel experimental features, alternatively a list of UUIDs&lt;br /&gt;
# can be given.&lt;br /&gt;
# Possible values: true,false,&amp;lt;UUID List&amp;gt;&lt;br /&gt;
# Possible UUIDS:&lt;br /&gt;
...&lt;br /&gt;
# Defaults to false.&lt;br /&gt;
&#039;&#039;&#039;#KernelExperimental = true&#039;&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
あるいは、{{ic|bluetooth.service}} を[[編集]]して、{{ic|--experimental}} フラグあるいは {{ic|--kernel}} フラグを追加してください。例えば、以下の[[ドロップインファイル]]のように:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/system/bluetooth.service.d/override.conf|2=&lt;br /&gt;
[Service]&lt;br /&gt;
ExecStart=&lt;br /&gt;
ExecStart=/usr/lib/bluetooth/bluetoothd --experimental&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
いずれの場合でも、{{ic|bluetooth.service}} を[[再起動]]する必要があります。&lt;br /&gt;
&lt;br /&gt;
== オーディオ ==&lt;br /&gt;
&lt;br /&gt;
通常は、オーディオサーバーと Bluetooth を統合するために追加の手順を実行する必要があります。これについては、以下のセクションで説明します。&lt;br /&gt;
&lt;br /&gt;
Bluetooth オーディオや Bluetooth ヘッドセットなどの情報については [[Bluetooth ヘッドセット]] のページを見てください。&lt;br /&gt;
&lt;br /&gt;
=== PulseAudio ===&lt;br /&gt;
&lt;br /&gt;
Bluetooth ヘッドフォンやスピーカーのようなオーディオ機器を使うには {{Pkg|pulseaudio-bluetooth}} パッケージのインストールが必要です。インストールを反映させるために、pulseaudio を再起動してください: {{ic|pulseaudio -k}}。デフォルトの Pulseaudio インストールでは (具体的には、パッケージングされているデフォルトの {{ic|default.pa}} でユーザインスタンスを使用している場合)、即座に Bluetooth デバイスからスピーカーにオーディオをストリーミングできるはずです。[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/blob/stable-16.x/src/daemon/default.pa.in#L84-93]&lt;br /&gt;
&lt;br /&gt;
システム全体の PulseAudio 設定がある場合は、デーモンを実行しているユーザー（通常は {{ic|pulse}}) が {{ic|lp}} グループに属しており、PulseAudio 設定に Bluetooth モジュールをロードしていることを確認します:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/pulse/system.pa|2=&lt;br /&gt;
...&lt;br /&gt;
load-module module-bluetooth-policy&lt;br /&gt;
load-module module-bluetooth-discover&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
これは任意ですが、Bluetooth デバイスの接続時にすべてのオーディオをそのデバイスに自動で切り替えたい場合、{{ic|load-module module-switch-on-connect}} を追加してください。&lt;br /&gt;
&lt;br /&gt;
=== PipeWire ===&lt;br /&gt;
&lt;br /&gt;
v0.3.19 以降の PipeWire はデフォルトで Bluetooth をサポートしています。&lt;br /&gt;
&lt;br /&gt;
=== ALSA ===&lt;br /&gt;
&lt;br /&gt;
{{Note|Bluez5 は [[ALSA]] の直接統合を中止し、 [[PulseAudio]] のみをサポートします。 PulseAudio を使用できない場合、または使用しない場合は、次の手順に従ってください。}}&lt;br /&gt;
&lt;br /&gt;
まず、 Bluetooth オーディオデバイスが正しくペアリングされ、システムに接続されていることを確認します。&lt;br /&gt;
&lt;br /&gt;
次に、 {{AUR|bluez-alsa-git}} をインストールし、 {{ic|bluealsa}} サービスを開始(そして、有効に) し、ユーザーを {{ic|audio}} グループに追加します。&lt;br /&gt;
&lt;br /&gt;
次のコマンドを実行して、すべてが意図したとおりに動作しているかどうかを確認します({{ic|&#039;&#039;XX:XX:XX:XX:XX:XX&#039;&#039;}} と {{ic|&#039;&#039;FILE.wav&#039;&#039;}} の部分は置き換えてください):&lt;br /&gt;
&lt;br /&gt;
 $ aplay -D bluealsa:SRV=org.bluealsa,DEV=&#039;&#039;XX:XX:XX:XX:XX:XX&#039;&#039;,PROFILE=a2dp &#039;&#039;FILE.wav&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
最後に、 {{ic|~/.asoundrc}} に次の行を追加します。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.asoundrc|&lt;br /&gt;
defaults.bluealsa {&lt;br /&gt;
    service &amp;quot;org.bluealsa&amp;quot;&lt;br /&gt;
    device &amp;quot;XX:XX:XX:XX:XX:XX&amp;quot;&lt;br /&gt;
    profile &amp;quot;a2dp&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
これで、 {{ic|bluealsa}} デバイスを使って Bluetooth オーディオデバイスに接続できるようになります。ボリューム管理は {{ic|alsamixer}} とオプション {{ic|-D bluealsa}} を使って通常行われます。&lt;br /&gt;
&lt;br /&gt;
== Bluetooth シリアル ==&lt;br /&gt;
&lt;br /&gt;
Bluetooth-to-Serial modules (HC-05、HC-06) で Bluetooth シリアル通信が機能するようにするには、次の手順に従います:&lt;br /&gt;
&lt;br /&gt;
[[#ペアリング|上記]]で説明したように、 {{ic|bluetoothctl}} を使って Bluetooth デバイスを&#039;&#039;&#039;ペアリング&#039;&#039;&#039;します。&lt;br /&gt;
&lt;br /&gt;
{{Pkg|bluez-deprecated-tools}} をインストールします。新しいツールにはない機能があります。&lt;br /&gt;
&lt;br /&gt;
ペアになっているデバイスの MAC アドレスを tty 端末にバインドします:&lt;br /&gt;
&lt;br /&gt;
 # rfcomm bind rfcomm0 &#039;&#039;MAC_address_of_Bluetooth_device&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
これで、シリアル通信用に {{ic|/dev/rfcomm0}} を開くことができます:&lt;br /&gt;
&lt;br /&gt;
 $ picocom /dev/rfcomm0 -b 115200&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
{{Out of date|Replace hciconfig with newer commands.}}&lt;br /&gt;
&lt;br /&gt;
=== 一般的なトラブルシューティング ===&lt;br /&gt;
&lt;br /&gt;
==== デバッグ ====&lt;br /&gt;
&lt;br /&gt;
デバッグするには、最初に {{ic|bluetooth.service}} を[[停止]]します。&lt;br /&gt;
&lt;br /&gt;
そして {{ic|-d}} パラメーターを付けて開始します。&lt;br /&gt;
&lt;br /&gt;
 # /usr/lib/bluetooth/bluetoothd -n -d&lt;br /&gt;
&lt;br /&gt;
別のオプションとして、 {{ic|btmon}} ツールが有ります。&lt;br /&gt;
&lt;br /&gt;
==== 非推奨の BlueZ ツール ====&lt;br /&gt;
&lt;br /&gt;
8つの BlueZ ツールは[https://git.kernel.org/pub/scm/bluetooth/bluez.git/commit/?id=b1eb2c4cd057624312e0412f6c4be000f7fc3617 非推奨となり]、{{Pkg|bluez-utils}} から削除されましたが、それらのすべてが新しいツールに取って代わられたわけではありません。{{AUR|bluez-utils-compat}} パッケージは非推奨のツールを含む代替バージョンの {{Pkg|bluez-utils}} を提供します。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 非推奨のツール&lt;br /&gt;
! あり得る代替&lt;br /&gt;
|-&lt;br /&gt;
| [https://manpages.debian.org/latest/bluez/gatttool.1.en.html gatttool] || btgatt-client, [https://git.kernel.org/cgit/bluetooth/bluez.git/tree/doc/gatt-api.txt D-Bus Gatt API]{{Dead link|2023|10|29|status=404}}&lt;br /&gt;
|-&lt;br /&gt;
| [https://manpages.debian.org/latest/bluez/hciattach.1.en.html hciattach] || btattach&lt;br /&gt;
|-&lt;br /&gt;
| [https://manpages.debian.org/latest/bluez/hciconfig.1.en.html hciconfig] || btmgmt (そして bluetoothctl?)&lt;br /&gt;
|-&lt;br /&gt;
| [https://manpages.debian.org/latest/bluez-hcidump/hcidump.1.en.html hcidump] || btmon (そして btsnoop)&lt;br /&gt;
|-&lt;br /&gt;
| [https://manpages.debian.org/latest/bluez/hcitool.1.en.html hcitool] || なし、[https://git.kernel.org/cgit/bluetooth/bluez.git/tree/doc/device-api.txt D-Bus Device API]{{Dead link|2023|10|29|status=404}} が利用可能&lt;br /&gt;
|-&lt;br /&gt;
| [https://manpages.debian.org/latest/bluez/rfcomm.1.en.html rfcomm]&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | なし、[https://git.kernel.org/cgit/bluetooth/bluez.git/tree/doc/profile-api.txt D-Bus Profile1 API]{{Dead link|2023|10|29|status=404}} の実装?&lt;br /&gt;
|-&lt;br /&gt;
| [https://manpages.debian.org/latest/bluez/ciptool.1.en.html ciptool]&lt;br /&gt;
|-&lt;br /&gt;
|[https://manpages.debian.org/latest/bluez/sdptool.1.en.html sdptool]&lt;br /&gt;
| なし、機能が、異なる D-Bus オブジェクトに散らばっている模様: [https://git.kernel.org/cgit/bluetooth/bluez.git/tree/doc/profile-api.txt Profile]{{Dead link|2023|10|29|status=404}}、[https://git.kernel.org/cgit/bluetooth/bluez.git/tree/doc/advertising-api.txt Advertising]{{Dead link|2023|10|29|status=404}}、そして [https://git.kernel.org/cgit/bluetooth/bluez.git/tree/doc/device-api.txt device]{{Dead link|2023|10|29|status=404}} と [https://git.kernel.org/cgit/bluetooth/bluez.git/tree/doc/adapter-api.txt adapter]{{Dead link|2023|10|29|status=404}} の UUID の配列。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== サービスの問題 ===&lt;br /&gt;
&lt;br /&gt;
==== systemd: Condition check resulted in Bluetooth service being skipped ====&lt;br /&gt;
&lt;br /&gt;
{{ic|bluetooth.service}} は {{ic|/sys/class/bluetooth}} ディレクトリが存在することのみを要求します。このディレクトリは {{ic|bluetooth}} カーネルモジュールによって作成されるはずです。このカーネルモジュールは、{{ic|systemd-udev}} が動作している Bluetooth ハードウェアデバイスを発見した場合にのみ、{{ic|systemd-udev}} により自動的にロードされます。&lt;br /&gt;
&lt;br /&gt;
{{ic|/sys/class/bluetooth}} が存在しない場合、{{ic|lsmod}} コマンドを使って、Bluetooth カーネルモジュールがロードされているかどうかを確認してください。Bluetooth デバイスがあるにも関わらずロードされていない場合、[[カーネルモジュール#手動でモジュールを扱う|Bluetooth モジュールをロード]]し、{{ic|bluetooth.service}} を[[再起動]]することで、手動で起動できます。&lt;br /&gt;
&lt;br /&gt;
また、{{ic|bluetooth}} モジュールをロードする際に、対応するカーネル Bluetooth ドライバもロードする必要があります。{{ic|btusb}} が最も可能性がありますが、{{ic|btrtl,btintel,btbcm,bnep,btusb}} などの可能性もあります。&lt;br /&gt;
&lt;br /&gt;
{{ic|bluetooth.service}} の[[ユニットステータス]]を確認して、このサービスが起動しているかどうかを確認してください。&lt;br /&gt;
&lt;br /&gt;
[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=853207 Debian Bug report logs - #853207] も参照してください。&lt;br /&gt;
&lt;br /&gt;
{{ic|bluetooth.service}} の起動に成功したが、まだ Bluetooth を使えないことがあります (例: {{ic|scan on}} の時に {{ic|bluetoothctl}} が {{ic|org.Bluez.Error.NotReady}} のようなメッセージを発する)。この場合、コンピュータを再起動し、次のことをダブルチェックしてください: {{ic|/sys/class/bluetooth}} ディレクトリが存在するか; {{ic|lsmod}} の出力に正しい Bluetooth モジュールが含まれているか; [[journal]] のログを確認するなど。{{ic|systemd-udev}} は、また手動の変更をせずとも Bluetooth ハードウェアを自動的に認識するはずです。&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth が suspend-to-idle 中のデバイスを即座に立ち上げてしまう ====&lt;br /&gt;
&lt;br /&gt;
[[サスペンドとハイバネート|suspend-to-idle/S2idle/S0ix/Modern Standby]] する能力のあるシステムにおいては、Bluetooth コントローラがスリープ中も有効化されたままになります。通常、これにより、Bluetooth デバイスが接続されていると、システムが[https://bugzilla.kernel.org/show_bug.cgi?id=200039 スリープに移行した直後にスリープが解除されてしまいます]。&lt;br /&gt;
&lt;br /&gt;
これを防ぐには、スリープに移行する前に Bluetooth を完全に無効化できます。{{Pkg|bluez-utils}} をインストールし、以下のファイルを作成してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/systemd/system/bluetooth-disable-before-sleep.service|2=&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Disable Bluetooth before going to sleep&lt;br /&gt;
Before=sleep.target&lt;br /&gt;
Before=suspend.target&lt;br /&gt;
Before=hybrid-sleep.target&lt;br /&gt;
Before=suspend-then-hibernate.target&lt;br /&gt;
StopWhenUnneeded=yes&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=oneshot&lt;br /&gt;
RemainAfterExit=yes&lt;br /&gt;
&lt;br /&gt;
ExecStart=/usr/bin/bluetoothctl power off&lt;br /&gt;
ExecStop=/usr/bin/bluetoothctl power on&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=sleep.target&lt;br /&gt;
WantedBy=suspend.target&lt;br /&gt;
WantedBy=hybrid-sleep.target&lt;br /&gt;
WantedBy=suspend-then-hibernate.target&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
このサービスを[[有効化]]し、スリープに移行した時に Bluetooth デバイスが切断されることや、スリープからの復帰時に Bluetooth が再び接続されることを確認してください。&lt;br /&gt;
&lt;br /&gt;
この回避策を使用すると、[[#サスペンドからの復帰|Bluetooth マウス/キーボードを使ってシステムをスリープから復帰させること]]ができなくなります。&lt;br /&gt;
&lt;br /&gt;
==== ヘッドレス/サーバのシステムでログアウト後に Bluetooth がオフになる ====&lt;br /&gt;
&lt;br /&gt;
様々な原因が考えられます:&lt;br /&gt;
&lt;br /&gt;
* [[PulseAudio]] と [[PipeWire]] は両方ともデフォルトでユーザサービスとして動作します。よって、最後のセッションが終了するとこれらのサービスは終了されます。この問題を解決するには、対象のユーザに対して [[systemd/ユーザー#systemd のユーザーインスタンスを自動起動|Lingering (残留)]] を有効化してください。&lt;br /&gt;
* さらに、[[WirePlumber]] を [[PipeWire]] と共に実行している場合 (これはよくある環境です)、WirePlumber は &amp;quot;logind-monitor&amp;quot; を実行します。これは、Bluetooth をログイン時に有効化し、ログアウト時に無効化します。問題の解決方法は [[WirePlumber#ログアウト後も Bluetooth を実行し続ける/ヘッドレス Bluetooth]] を見てください。&lt;br /&gt;
&lt;br /&gt;
=== アダプタの問題 ===&lt;br /&gt;
&lt;br /&gt;
==== hcitool scan: Device not found ====&lt;br /&gt;
&lt;br /&gt;
* 一部のラップトップ (例: Dell Studio 15、Lenovo Thinkpad X1) では、Bluetooth モードを HID から HCI に切り替える必要があります。{{Pkg|bluez-hid2hci}} パッケージをインストールすれば、[[udev]] が自動的に切り替えを行うはずです。また、次のコマンドを実行して手動で HCI に切り替えることもできます:&lt;br /&gt;
&lt;br /&gt;
 # /usr/lib/udev/hid2hci&lt;br /&gt;
&lt;br /&gt;
* デバイスが表示されず、かつマシンに Windows オペレーティングシステムがある場合、Windows から bluetooth アダプターを有効にして見てください。&lt;br /&gt;
&lt;br /&gt;
* 場合によっては次のコマンドで問題が解決するかもしれません:&lt;br /&gt;
&lt;br /&gt;
 # bluetoothctl power on&lt;br /&gt;
&lt;br /&gt;
==== bluetoothctl: No default controller available ====&lt;br /&gt;
&lt;br /&gt;
一部のマザーボード Bluetooth コントローラにはバグがあります。バグがこの問題の原因であるか調べるには、{{ic|journalctl {{!}} grep hci}} を実行してください。このコマンドの出力に &amp;quot;command tx timeout&amp;quot; や &amp;quot;Reading Intel version command failed&amp;quot; のようなエントリが存在する場合、PC の電源を切り、電源ケーブルを物理的に外して数秒間放置してください。これにより、コントローラにファームウェアを再ロードさせます (通常の再起動では再ロードしません)。[https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1859592 こちら]のバグレポートを参照してください。&lt;br /&gt;
&lt;br /&gt;
デバイスが [[rfkill]] によってブロックされていないことを確認してください。&lt;br /&gt;
&lt;br /&gt;
また、一部の Intel カード (8260 など) は Bluetooth サービスによって正しく認識されないかもしれません。{{Pkg|bluez-utils}} の代わりに非推奨の {{AUR|bluez-utils-compat}} を使うことでこの問題が解決したというケースが報告されています。&lt;br /&gt;
&lt;br /&gt;
また、これは省電力機能が原因かもしれません。その場合、{{ic|1=btusb.enable_autosuspend=n}} [[カーネルパラメータ#設定|カーネルパラメータ]]により解決できる可能性があります。[https://bugzilla.redhat.com/show_bug.cgi?id=1573562 Red Hat Bugzilla – Bug 1573562] も参照してください。&lt;br /&gt;
&lt;br /&gt;
時々、{{ic|btusb}} をオプション無しでアンロード・ロードすればコントローラを元に戻せることがあります:&lt;br /&gt;
&lt;br /&gt;
 # modprobe -r btusb&lt;br /&gt;
 # modprobe btusb&lt;br /&gt;
&lt;br /&gt;
また、ドングルが [[#CSR ドングル 0a12:0001|CSR クローン]]である場合にもこの問題が発生することがあります。&lt;br /&gt;
&lt;br /&gt;
==== rfkill unblock: Do not unblock ====&lt;br /&gt;
&lt;br /&gt;
デバイスがソフトブロックされていて [[ConnMan]] を動作させている場合、次を試してみて下さい:&lt;br /&gt;
&lt;br /&gt;
 $ connmanctl enable bluetooth&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth USB ドングル ====&lt;br /&gt;
&lt;br /&gt;
USB ドングルを使う場合は、Bluetooth ドングルが認識されているか確認してください。USB ドングルを挿入する時に {{ic|journalctl -f}} を root として実行する(もしくは {{ic|/var/log/messages.log}} を調査する)ことで、そのことを確認できます。以下のような見た目であるはずです(hci を見てください)。&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
Feb 20 15:00:24 hostname kernel: [ 2661.349823] usb 4-1: new full-speed USB device number 3 using uhci_hcd&lt;br /&gt;
Feb 20 15:00:24 hostname bluetoothd[4568]: HCI dev 0 registered&lt;br /&gt;
Feb 20 15:00:24 hostname bluetoothd[4568]: Listening for HCI events on hci0&lt;br /&gt;
Feb 20 15:00:25 hostname bluetoothd[4568]: HCI dev 0 up&lt;br /&gt;
Feb 20 15:00:25 hostname bluetoothd[4568]: Adapter /org/bluez/4568/hci0 has been enabled&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
最初の2行しか表示されていなかった場合、デバイスは見つかっていますが、そのデバイスを立ち上げる必要があります。&lt;br /&gt;
例:&lt;br /&gt;
&lt;br /&gt;
{{hc|# btmgmt|&lt;br /&gt;
[mgmt]# info&lt;br /&gt;
Index list with 1 item&lt;br /&gt;
hci0:	Primary controller&lt;br /&gt;
	addr 00:1A:7D:DA:71:10 version 6 manufacturer 10 class 0x000000&lt;br /&gt;
	supported settings: powered connectable fast-connectable discoverable bondable link-security ssp br/edr hs le advertising secure-conn debug-keys privacy static-addr &lt;br /&gt;
	&#039;&#039;&#039;current settings:&#039;&#039;&#039; connectable discoverable bondable ssp br/edr le secure-conn &lt;br /&gt;
	name Mozart&lt;br /&gt;
	short name &lt;br /&gt;
&lt;br /&gt;
[mgmt]# select hci0&lt;br /&gt;
Selected index 0&lt;br /&gt;
&lt;br /&gt;
[hci0]# power up&lt;br /&gt;
hci0 Set Powered complete, settings: &#039;&#039;&#039;powered&#039;&#039;&#039; connectable discoverable bondable ssp br/edr le secure-conn&lt;br /&gt;
&lt;br /&gt;
[hci0]# info&lt;br /&gt;
hci0:	Primary controller&lt;br /&gt;
	addr 00:1A:7D:DA:71:10 version 6 manufacturer 10 class 0x1c0104&lt;br /&gt;
	supported settings: powered connectable fast-connectable discoverable bondable link-security ssp br/edr hs le advertising secure-conn debug-keys privacy static-addr &lt;br /&gt;
	&#039;&#039;&#039;current settings: powered&#039;&#039;&#039; connectable discoverable bondable ssp br/edr le secure-conn&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
または&lt;br /&gt;
&lt;br /&gt;
{{hc|# bluetoothctl|&lt;br /&gt;
[bluetooth]# show&lt;br /&gt;
Controller 00:1A:7D:DA:71:10 (public)&lt;br /&gt;
	Name: Mozart&lt;br /&gt;
	Alias: Mozart&lt;br /&gt;
	Class: 0x0000095c&lt;br /&gt;
	&#039;&#039;&#039;Powered: no&#039;&#039;&#039;&lt;br /&gt;
	Discoverable: yes&lt;br /&gt;
	Pairable: yes&lt;br /&gt;
&lt;br /&gt;
[bluetooth]# power on&lt;br /&gt;
[CHG] Controller 00:1A:7D:DA:71:10 Class: 0x001c0104&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[CHG] Controller 00:1A:7D:DA:71:10 &#039;&#039;&#039;Powered: yes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[bluetooth]# show&lt;br /&gt;
Controller 00:1A:7D:DA:71:10 (public)&lt;br /&gt;
	Name: Mozart&lt;br /&gt;
	Alias: Mozart&lt;br /&gt;
	Class: 0x001c0104&lt;br /&gt;
	&#039;&#039;&#039;Powered: yes&#039;&#039;&#039;&lt;br /&gt;
	Discoverable: yes&lt;br /&gt;
	Pairable: yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[https://www.bluetooth.com/specifications/assigned-numbers/host-controller-interface/ 公式の仕様表]に従って、Bluetooth のバージョンが HCI のバージョンにマップされていることを確認できます。例えば、先の出力では、HCI &#039;&#039;&#039;version 6&#039;&#039;&#039; が Bluetooth version 4.0 です。&lt;br /&gt;
&lt;br /&gt;
デバイスが検出されているか確認するために {{ic|bluez-utils}} に含まれている {{ic|hcitool}} を使うことができます。次のコマンドで利用可能なデバイスとその識別子・MAC アドレスのリストを表示することが可能です:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ btmgmt info|&lt;br /&gt;
Index list with 1 item&lt;br /&gt;
hci0:	Primary controller&lt;br /&gt;
	addr 00:1A:7D:DA:71:10 &#039;&#039;&#039;version 6&#039;&#039;&#039; manufacturer 10 class 0x1c0104&lt;br /&gt;
	supported settings: powered connectable fast-connectable discoverable bondable link-security ssp br/edr hs le advertising secure-conn debug-keys privacy static-addr&lt;br /&gt;
	current settings: powered connectable discoverable bondable ssp br/edr le secure-conn&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
デバイスに関するもっと詳細な情報は、非推奨の {{ic|hciconfig}} を使うことで取得できます。({{AUR|bluez-utils-compat}})&lt;br /&gt;
&lt;br /&gt;
{{hc|$ hciconfig -a hci0|&lt;br /&gt;
hci0:   Type: USB&lt;br /&gt;
        BD Address: 00:1B:DC:0F:DB:40 ACL MTU: 310:10 SCO MTU: 64:8&lt;br /&gt;
        UP RUNNING PSCAN ISCAN&lt;br /&gt;
        RX bytes:1226 acl:0 sco:0 events:27 errors:0&lt;br /&gt;
        TX bytes:351 acl:0 sco:0 commands:26 errors:0&lt;br /&gt;
        Features: 0xff 0xff 0x8f 0xfe 0x9b 0xf9 0x00 0x80&lt;br /&gt;
        Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3&lt;br /&gt;
        Link policy: RSWITCH HOLD SNIFF PARK&lt;br /&gt;
        Link mode: SLAVE ACCEPT&lt;br /&gt;
        Name: &#039;BlueZ (0)&#039;&lt;br /&gt;
        Class: 0x000100&lt;br /&gt;
        Service Classes: Unspecified&lt;br /&gt;
        Device Class: Computer, Uncategorized&lt;br /&gt;
        HCI Ver: 2.0 (0x3) HCI Rev: 0xc5c LMP Ver: 2.0 (0x3) LMP Subver: 0xc5c&lt;br /&gt;
        Manufacturer: Cambridge Silicon Radio (10)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===== ドングルから短距離にいるときにオーディオデバイスがおかしくなる =====&lt;br /&gt;
&lt;br /&gt;
他のデバイスと同一の USB ホストを共有している場合、[https://bbs.archlinux.org/viewtopic.php?pid=1440161#p1440161 オーディオデバイスとの通信に干渉] する可能性があります。オーディオデバイスがバスに接続されている唯一のデバイスであることを確認してください。例:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ lsusb|&lt;br /&gt;
Bus 002 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)&lt;br /&gt;
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
Bus 001 Device 004: ID 048d:1345 Integrated Technology Express, Inc. Multi Cardreader&lt;br /&gt;
Bus 001 Device 003: ID 0424:a700 Standard Microsystems Corp. 2 Port Hub&lt;br /&gt;
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub&lt;br /&gt;
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===== CSR ドングル 0a12:0001 =====&lt;br /&gt;
&lt;br /&gt;
デバイス {{ic|ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)}} にはリグレッションのバグがあり、現在、カーネルバージョン 5.17 及び &amp;lt; 6.0 でしか動作しません。詳細は、[https://bugzilla.kernel.org/show_bug.cgi?id=60824 Kernel Bug 60824] を参照してください。&lt;br /&gt;
&lt;br /&gt;
==== Logitech Bluetooth USB ドングル ====&lt;br /&gt;
&lt;br /&gt;
Logitech のドングルには Embedded と HCI という二つのモードで動作するものがあります (例: Logitech MX5000)。embedded モードではドングルは USB デバイスをエミュレートするので PC は普通の USB マウス・キーボードを使っていると認識します。&lt;br /&gt;
&lt;br /&gt;
USB BT ミニレシーバの小さな赤いボタンを押すと他のモードが有効になります。BT ドングルの赤いボタンを押しながらコンピュータに接続してください。ボタンを押して3-5秒で、Bluetooth アイコンがシステムトレイに表示されます ([https://ubuntuforums.org/showthread.php?t=1332197 議論])。&lt;br /&gt;
&lt;br /&gt;
また、{{Pkg|bluez-hid2hci}} パッケージをインストールすることもできます。Logitech のドングルを接続すると自動的に切り替えます。&lt;br /&gt;
&lt;br /&gt;
==== Foxconn / Hon Hai / Lite-On の Broadcom デバイス ====&lt;br /&gt;
&lt;br /&gt;
一部のデバイスでは、起動時にファームウェアを書き込む必要があります。&lt;br /&gt;
&lt;br /&gt;
一部のファームウェアは、[[AUR]] で [https://aur.archlinux.org/packages?K=broadcom broadcom] と検索すると入手できます。特出すべきパッケージは {{AUR|broadcom-bt-firmware}} です。これは、[https://github.com/winterheart/broadcom-bt-firmware/blob/master/DEVICES.md 様々なカード]用のファイルを提供します。&lt;br /&gt;
&lt;br /&gt;
または、[https://github.com/jessesung/hex2hcd hex2hcd] ({{Pkg|bluez-utils}} でインストールされます) を使ってファームウェアを Microsoft Windows の &#039;&#039;.hex&#039;&#039; ファイルから &#039;&#039;.hcd&#039;&#039; ファイルに変換することもできます。&lt;br /&gt;
&lt;br /&gt;
正しい &#039;&#039;.hex&#039;&#039; ファイルを取得するために、&#039;&#039;lsusb&#039;&#039; でデバイスの vendor:product コードを検索してください。例:&lt;br /&gt;
&lt;br /&gt;
 Bus 002 Device 004: ID &#039;&#039;&#039;04ca:2006&#039;&#039;&#039; Lite-On Technology Corp. Broadcom BCM43142A0 Bluetooth Device&lt;br /&gt;
&lt;br /&gt;
または:&lt;br /&gt;
&lt;br /&gt;
 Bus 004 Device 004: Id &#039;&#039;&#039;0489:e031&#039;&#039;&#039; Foxconn / Hon Hai&lt;br /&gt;
&lt;br /&gt;
もしくは、Windows (仮想マシンでもかまいません) を起動して Device Manager ユーティリティからファームウェアの名前を取得してください。デバイスのモデルを知りたいのに &#039;&#039;lsusb&#039;&#039; で表示されない場合、&#039;&#039;lsusb -v&#039;&#039; の {{ic|iProduct}} でわかることがあります。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;.hex&#039;&#039; ファイルはダウンロードした Windows ドライバーから抽出することができます。Windows を実行する必要はありません。適切なドライバーをダウンロードしてください (例えば、[http://www.fujitsupc.com/downloads/mobile/BLUETOOTH_WIDCOMM_V6.5.0.3100_WIN7-32_FPC46-1771-01.EXE Bluetooth Widcomm]{{Dead link|2023|09|16|status=domain name not resolved}})。フォーマットにも依りますが、ファイルの展開には{{Pkg|unrar}} か {{Pkg|cabextract}} が必要である場合があります。多数の &#039;&#039;.hex&#039;&#039; ファイルの中から必要なファイルを見つけるには、{{ic|Win32/bcbtums-win7x86-brcm.inf}} ファイルの中身を確認して {{ic|[RAMUSB&#039;&#039;&#039;E031&#039;&#039;&#039;.CopyList]}} を検索してください。{{ic|E031}} はあなたの使っているデバイスの product コード (大文字) に置き換えて下さい (&#039;&#039;lsusb&#039;&#039; で確認できる2番目の16進数)。その下に、必要な &#039;&#039;.hex&#039;&#039; ファイルの名前が書かれているはずです。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;.hcd&#039;&#039; ファイルを手に入れたら、{{ic|/lib/firmware/brcm/BCM.hcd}} にコピーしてください - このファイル名は [[dmesg]] からわかります。あなたのマシンでは異なっている可能性があるため &#039;&#039;dmesg&#039;&#039; の出力で確認してください。そして &#039;&#039;btusb&#039;&#039; モジュールをリロードしてください:&lt;br /&gt;
&lt;br /&gt;
 # rmmod btusb&lt;br /&gt;
 # modprobe btusb&lt;br /&gt;
&lt;br /&gt;
これでデバイスが使えるようになるはずです。以上の設定を永続化させる方法は [https://bbs.archlinux.org/viewtopic.php?id=162688 BBS#162688] を参照。&lt;br /&gt;
&lt;br /&gt;
==== Intel の複合 WiFi と Bluetooth カード ====&lt;br /&gt;
&lt;br /&gt;
[[ネットワーク設定/ワイヤレス#Bluetooth の共存]] を見てください。&lt;br /&gt;
&lt;br /&gt;
==== Windows とのデュアルブート環境における Mediatek MT7921 や MT7961 ====&lt;br /&gt;
&lt;br /&gt;
デュアルブートシステムでは、Bluetooth のファームウェアバージョンが Windows と Linux とで異なる場合、Windows を起動した後に Bluetooth アダプタが動作しなくなります。&lt;br /&gt;
&lt;br /&gt;
これを防ぐ最も良い方法は、各 OS 用の Bluetooth ドライバ (特にファームウェア) を最新にすることです。&lt;br /&gt;
&lt;br /&gt;
Windows 用の最新バージョンのドライバ (またはファームウェア) を見つけられない場合、最新のファームウェアファイル {{ic|/usr/lib/firmware/mediatek/BT_RAM_CODE_MT7961_1_2_hdr.bin.xz}} を Arch Linux からコピーし、Windows へ展開することができます (例えば、{{ic|C:\WINDOWS\system32\DRIVERS\}}。Windows でのファームウェアファイルへのパスはデバイスマネージャから確認できます)。&lt;br /&gt;
&lt;br /&gt;
==== サスペンド/復帰後にアダプタが消える ====&lt;br /&gt;
&lt;br /&gt;
まず、アダプタのベンダーと製品 ID を見つけてください。例:&lt;br /&gt;
&lt;br /&gt;
First, find vendor and product ID of the adapter. For example:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ lsusb -tv|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M&lt;br /&gt;
    ID 1d6b:0002 Linux Foundation 2.0 root hub&lt;br /&gt;
    ...&lt;br /&gt;
    |__ Port 3: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M&lt;br /&gt;
        ID 8087:0025 Intel Corp. &lt;br /&gt;
    |__ Port 3: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M&lt;br /&gt;
        ID 8087:0025 Intel Corp. &lt;br /&gt;
    ...&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
この場合、ベンダー ID は 8087 で、製品 ID は 0025 です。&lt;br /&gt;
&lt;br /&gt;
次に、 {{pkg|usb_modeswitch}} を使用してアダプタをリセットします:&lt;br /&gt;
&lt;br /&gt;
 # usb_modeswitch -R -v &#039;&#039;vendor_ID&#039;&#039; -p &#039;&#039;product_ID&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== ペアリングと接続の問題 ===&lt;br /&gt;
&lt;br /&gt;
==== コンピュータが表示されない ====&lt;br /&gt;
&lt;br /&gt;
携帯からコンピュータが表示されないときは、discoverable モードを有効にしてください:&lt;br /&gt;
&lt;br /&gt;
 # bluetoothctl discoverable on&lt;br /&gt;
&lt;br /&gt;
discoverable モードがオンになっていることを確認してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|# bluetoothctl show|&lt;br /&gt;
	Powered: yes&lt;br /&gt;
	Discoverable: yes&lt;br /&gt;
	Pairable: yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|/etc/bluetooth/main.conf}} の {{ic|PairableTimeout}} と {{ic|DiscoverableTimeout}} を確認してください。}}&lt;br /&gt;
&lt;br /&gt;
まだコンピュータが表示されない場合、以下のように {{ic|/etc/bluetooth/main.conf}} 内のデバイスクラスを変更してみて下さい:&lt;br /&gt;
&lt;br /&gt;
 # Default device class. Only the major and minor device class bits are&lt;br /&gt;
 # considered.&lt;br /&gt;
 #Class = 0x000100 # Computer Type (from default config)&lt;br /&gt;
 Class = 0x100100 # (Object-Transfer Service &amp;amp; Computer Type)&lt;br /&gt;
&lt;br /&gt;
{{Note|場合によっては、{{ic|main.conf}} 内の {{ic|Class}} はデバイスの初期化後に上書きされます。なので、{{ic|hciconfig hci0 class 100100}} のようにクラスを直接設定してください。}}&lt;br /&gt;
&lt;br /&gt;
あるユーザは、携帯からコンピュータを見られるようにするためにはこうするしか無いと報告しています。LG TV(そして、一部の他の機器)はオーディオデバイスから発見可能です。なので、{{ic|000414}} (soundbar クラス)を使用することでそのようなデバイスを発見できるようにできます。&lt;br /&gt;
&lt;br /&gt;
Bluetooth デバイス/サービスのクラスを生成するには https://bluetooth-pentest.narod.ru/software/bluetooth_class_of_device-service_generator.html を見てください。&lt;br /&gt;
&lt;br /&gt;
==== デバイスを接続した数秒後に切断してしまう ====&lt;br /&gt;
&lt;br /&gt;
デバイスを接続したすぐ後に切断が発生し、ジャーナルの出力に以下のようなメッセージが確認できる場合:&lt;br /&gt;
&lt;br /&gt;
 bluetoothd: Unable to get connect data for Headset Voice gateway: getpeername: Transport endpoint is not connected (107)&lt;br /&gt;
 bluetoothd: connect error: Connection refused (111)&lt;br /&gt;
&lt;br /&gt;
おそらく別のオペレーティングシステムで同一の Bluetooth アダプタを使ってデバイスがペアリングされていることが原因です (例: デュアルブート)。一部のデバイスは同一の MAC アドレス (例: Bluetooth アダプタ) に対して複数のペアリングを関連付けた場合に対処できません。この問題を解決するには [[#デュアルブートペアリング]] の指示に従ってください。&lt;br /&gt;
&lt;br /&gt;
==== スキャンしてもデバイスが表示されない ====&lt;br /&gt;
&lt;br /&gt;
Bluetooth Low Energy を使用しているデバイスは bluetoothctl でスキャンしても表示されないことがあります (例: [[Logitech MX Master]])。{{ic|transport le}} を使ってスキャンすることができます。&lt;br /&gt;
&lt;br /&gt;
{{hc|# bluetoothctl|&lt;br /&gt;
[bluetooth]# menu scan&lt;br /&gt;
[bluetooth]# transport le&lt;br /&gt;
[bluetooth]# back&lt;br /&gt;
[bluetooth]# scan on&lt;br /&gt;
[bluetooth]# devices&lt;br /&gt;
...&lt;br /&gt;
Device XX:XX:XX:XX:XX:XX DA V2 X &amp;lt;---- 低消費電力なデバイス&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
もう一つの方法は、{{aur|bluez-utils-compat}} をインストールし、{{ic|bluetooth.service}} を[[開始]]し、以下を実行することです:&lt;br /&gt;
&lt;br /&gt;
{{hc|# bluetoothctl|&lt;br /&gt;
[NEW] Controller (MAC) myhostname [default]&lt;br /&gt;
&lt;br /&gt;
[bluetooth]# power on&lt;br /&gt;
[CHG] Controller (MAC) Class: 0x0c010c&lt;br /&gt;
Changing power on succeeded&lt;br /&gt;
[CHG] Controller (MAC) Powered: yes&lt;br /&gt;
&lt;br /&gt;
[bluetooth]# scan on&lt;br /&gt;
Discovery started&lt;br /&gt;
[CHG] Controller (MAC) Discovering: yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
他のターミナルで:&lt;br /&gt;
&lt;br /&gt;
 # hcitool lescan&lt;br /&gt;
&lt;br /&gt;
デバイスが表示されるまで待機してから hcitool を {{ic|Ctrl+c}} で閉じてください。bluetoothctl からデバイスが認識されたら通常通りにペアリングできます。&lt;br /&gt;
&lt;br /&gt;
==== Intel Corp. AX200 Bluetooth で BLE デバイスが見つからない ====&lt;br /&gt;
&lt;br /&gt;
どうやら、このデバイスでは BLE のパッシブスキャンが壊れているようです。詳細は[https://community.intel.com/t5/Wireless/AX200-Passive-BLE-scan-linux/m-p/1227456 上流のバグレポート]を見てください。&lt;br /&gt;
&lt;br /&gt;
==== スリープ後に再接続できない ====&lt;br /&gt;
&lt;br /&gt;
スリープ後や、コンピュータがスリープから復帰した後に、デバイスが自動的に再接続されないことがあります。&lt;br /&gt;
&lt;br /&gt;
この時、ログに以下のエラーが記録されます:&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
bluetoothd[487]: Authentication attempt without agent&lt;br /&gt;
bluetoothd[487]: Access denied: org.bluez.Error.Rejected&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
これは、デバイスが &#039;&#039;trusted&#039;&#039; としてマークされていないことが原因です。[[#ペアリング]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== デバイス固有の問題 ===&lt;br /&gt;
&lt;br /&gt;
==== Bluetooth マウスのラグ / 接続断 / 応答なし ====&lt;br /&gt;
&lt;br /&gt;
[[Bluetooth マウス#トラブルシューティング]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
==== オーディオデバイスが br-connection-profile-unavailable で接続に失敗する ====&lt;br /&gt;
&lt;br /&gt;
PipeWire (pulseaudio-bluetooth ではない) が使用されているが、PipeWire のインスタンスが実行されていない場合、bluetooth オーディオデバイスは接続に失敗します。PipeWire デーモンを開始するには、{{ic|pipewire.service}} [[ユーザーユニット]]を[[開始]]するか、何らかの音声を再生してください。その後、オーディオデバイスをもう一度接続してみてください。&lt;br /&gt;
&lt;br /&gt;
==== ヘッドホンとマウスの干渉 ====&lt;br /&gt;
&lt;br /&gt;
Bluetooth マウスとキーボードを同時に使用しているときに音声が途切れる場合は #23 https://bugs.launchpad.net/ubuntu/+source/bluez/+bug/424215 で参照されているように、次を試してくみてださい:&lt;br /&gt;
&lt;br /&gt;
 # hciconfig hci0 lm ACCEPT,MASTER&lt;br /&gt;
 # hciconfig hci0 lp HOLD,SNIFF,PARK&lt;br /&gt;
&lt;br /&gt;
==== TP-LINK UB400 と Xbox のコントローラが接続/切断を繰り返す ====&lt;br /&gt;
&lt;br /&gt;
以下の設定を使用してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/bluetooth/main.conf|2=&lt;br /&gt;
...&lt;br /&gt;
[General]&lt;br /&gt;
JustWorksRepairing = always&lt;br /&gt;
FastConnectable = true&lt;br /&gt;
Class = 0x000100&lt;br /&gt;
...&lt;br /&gt;
[GATT]&lt;br /&gt;
ReconnectIntervals=1,1,2,3,5,8,13,21,34,55&lt;br /&gt;
AutoEnable=true&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
そして、{{ic|bluetooth.service}} を[[再起動]]してください。&lt;br /&gt;
&lt;br /&gt;
関連する [https://github.com/atar-axis/xpadneo/issues/166 xpadneo に関する議論]を見ることができますが、xpadneo のドライバは必要ありません。&lt;br /&gt;
&lt;br /&gt;
=== ファイル転送の問題 ===&lt;br /&gt;
&lt;br /&gt;
==== gnome-bluetooth ====&lt;br /&gt;
&lt;br /&gt;
bluetooth-properties でファイルの受信を有効にしようとしたときに以下のメッセージが表示される場合:&lt;br /&gt;
&lt;br /&gt;
 Bluetooth OBEX start failed: Invalid path&lt;br /&gt;
 Bluetooth FTP start failed: Invalid path&lt;br /&gt;
&lt;br /&gt;
[[XDG ユーザーディレクトリ]]が存在することを確認してください。&lt;br /&gt;
&lt;br /&gt;
==== シンボリックリンクのせいで、転送されたファイルを受信できない ====&lt;br /&gt;
&lt;br /&gt;
有効な Bluetooth 接続でファイルの受信に失敗する場合、問題はファイルの転送パス内のシンボリックリンクである場合があります。ジャーナルに以下のようなログが現れます:&lt;br /&gt;
&lt;br /&gt;
 Jun 18 11:18:13 ember obexd[3338969]: open(/home/me/.cache/obexd/MOC740): Operation not permitted (1)&lt;br /&gt;
&lt;br /&gt;
エラーメッセージに表示されれたパス内にシンボリックリンクが含まれている場合、obexd はデフォルトで[https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/obexd/plugins/filesystem.c#n90 それを拒否します]。この挙動は、[[ドロップインファイル]]を {{ic|obex.service}} [[systemd/ユーザー|ユーザサービス]]に対して使うことにより初期化時に上書きできます:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/systemd/user/obex.service.d/10-symlink.conf|2=&lt;br /&gt;
[Service]&lt;br /&gt;
ExecStart=&lt;br /&gt;
ExecStart=/usr/lib/bluetooth/obexd --symlinks&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
その後、ユーザの &#039;&#039;systemd&#039;&#039; マネージャの設定を[[リロード]]し、{{ic|obex.service}} ユーザユニットを[[再起動]]してください。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [https://averylarsen.com/2019/12/20/keeping-bluetooth-devices-paired-between-linux-and-windows/ Keeping Bluetooth devices paired between Linux and Windows]&lt;br /&gt;
* [https://nullroute.eu.org/~grawity/bluetooth-key-sharing.html Bluetooth link keys on dual-boot systems]&lt;br /&gt;
&lt;br /&gt;
{{TranslationStatus|Bluetooth|2023-11-03|791392}}&lt;/div&gt;</summary>
		<author><name>YSS</name></author>
	</entry>
</feed>