Broadcom Bluetooth

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Broadcom Bluetooth and the translation is 100% complete.
Other languages:

この記事では、主に BCM20702、BCM4354、および BCM4356 チップセットベースの Broadcom Bluetooth 4.x デバイスの詳細なセットアップについて解説します。これらの bluetooth チップセットは、USB ドングルやハイブリッド WIFI+Bluetooth 組み込みチップセット等を含む、さまざまなデバイスでも使用されています。

ハードウェア

対応デバイスのほぼ完全な一覧は上流で確認できます。

デバイス モデル 状態 Vendor ID / Product ID カーネルドライバ カーネルバージョン 備考
USB ドングル Asus BT-400 USB Works 0b05:17cb btbcm 4.2 ファームウェアが必要です
USB ドングル Targus ACB75AU Works 0a5c:21e8 btbcm 3.4+ ファームウェア brcm/BCM20702A1-0a5c-21e8.hcd が必要です

セキュリティの考慮事項

近年 Bluetooth スタック内で、CVE-2018-5383CVE-2019-9506 (KNOB)、CVE-2020-10135 (BIAS) 等の、複数の脆弱性が発見されました。Broadcom は消費者向けデバイスのための活発なサポートを停止しているため、このソフトウェアを活用するシステムはセキュリティリスクに晒されるかもしれません。リポジトリメンテナはセキュリティパッチを提供できないので、先に進む前にリスク評価を行っておくのが賢明です。

インストール

カーネル

Broadcom Bluetooth デバイスは btbcm カーネルモジュールを必要とします。これは次のカーネルオプションでビルドすることができます:

カーネル Broadcom Bluetooth 対応
[*] Networking support  --->
    <M>   Bluetooth subsystem support  --->
        Bluetooth device drivers  --->
            <M> HCI USB driver
            [*]   Broadcom protocol support
            [*] Broadcom protocol support

ファームウェア

Broadcom Bluetooth スタックは、Windows ドライバとともに提供される外部のファームウェアを必要とする場合がほとんどです。次のコマンドによって、ファームウェアを確認することができます:

user $dmesg | grep -i bluetooth
Bluetooth: hci1: BCM: chip id 63
Bluetooth: hci1: BCM20702A
Bluetooth: hci1: BCM20702A1 (001.002.014) build 0000
bluetooth hci1: Direct firmware load for brcm/BCM20702A1-0b05-17cb.hcd failed with error -2
Bluetooth: hci1: BCM: Patch brcm/BCM20702A1-0b05-17cb.hcd not found

幸運なことに、sys-firmware/broadcom-bt-firmware パッケージを利用することで、Broadcom Bluetooth のための最新のファームウェアファイルをインストールすることができます:

root #emerge --ask sys-firmware/broadcom-bt-firmware

インストール後はファームウェアを適用するために、Bluetooth デバイスを再接続するか、システムを再起動してください。再起動後、出力は次のようになっているはずです:

user $dmesg | grep -i bluetooth
Bluetooth: hci1: BCM: chip id 63
Bluetooth: hci1: BCM20702A
Bluetooth: hci1: BCM20702A1 (001.002.014) build 0000
Bluetooth: hci1: BCM20702A1 (001.002.014) build 1467
Bluetooth: hci1: Broadcom Bluetooth Device

構成設定

カーネルオプションを有効化して、ファームウェアのインストールが完了したら、Bluetooth の記事に進んでください。

トラブルシューティング

カーネルが BCM.hcd または BCM<CHIPSET>.hcd を要求している

VID/PID がカーネルドライバ内でまだ定義されていないことにより、btbcm がデバイスを正しく識別できないことがあります:

user $dmesg | grep -i bluetooth
Bluetooth: hci1: BCM: chip id 63
Bluetooth: hci1: BCM20702A
Bluetooth: hci1: BCM20702A1 (001.002.014) build 0000
bluetooth hci1: Direct firmware load for brcm/BCM.hcd failed with error -2
Bluetooth: hci1: BCM: Patch brcm/BCM.hcd not found

この場合は、lspci または lsusb コマンドによって手動で VID/PID を取得できるでしょう:

user $lsusb
...
Bus 003 Device 005: ID 0b05:17cb ASUSTek Computer, Inc. Broadcom BCM20702A0 Bluetooth
...

ここでは、0b05:17cb が VID/PID です。次に、 デバイスリストを確認して、適切なファームウェアを選択してください。その後、ファームウェアファイルをカーネルが要求する名前の場所にコピーするだけです:

root #cd /lib/firmware/brcm
root #cp BCM20702A1-0b05-17cb.hcd BCM.hcd

その後、デバイスを再挿入するか、システムを再起動してください。

ファームウェアをインストールしたが、まだデバイスが動作しない

一部の Bluetooth コントローラ (例えば、BCM4354 と BCM4356) は WiFi チップセット (これは BCM43XX 802.11ac Wireless Network Adapter または generic Broadcom PCIE Wireless であるかもしれません) と統合されています。これらのデバイスは、WiFi 向けと Bluetooth 向けの 2 種類のファームウェアを必要とします。WiFi ファームウェアが無いと Bluetooth も初期化されず、正しく動作しないでしょう。WiFi 向けのファームウェアはすでにカーネルに含まれていますが、正しい NVRAM を配置するために追加の作業が必要になるかもしれません。

出力例は次のようなものです (brcm/brcmfmac4356-pcie.txt がロードされていることに注意してください - これがカスタマイズされた NVRAM です):

user $dmesg
usbcore: registered new interface driver brcmfmac
brcmfmac 0000:02:00.0: firmware: direct-loading firmware brcm/brcmfmac4356-pcie.bin
brcmfmac 0000:02:00.0: firmware: direct-loading firmware brcm/brcmfmac4356-pcie.txt
Bluetooth: hci0: BCM: chip id 101
Bluetooth: hci0: N360-11
Bluetooth: hci0: BCM4354A2 (001.003.015) build 0000
bluetooth hci0: firmware: direct-loading firmware brcm/BCM4354A2-13d3-3485.hcd

関連項目

  • Bluetooth — Bluetooth コントローラーとデバイスの設定・使用について説明します。

参照