Ubuntu 18.04 中未检测到 Broadcom BCM43242A0 蓝牙适配器

jas*_*son 3 bluetooth broadcom 18.04

我的笔记本电脑有一个 Broadcom BCM43242A0 蓝牙适配器,不适用于 Kubuntu 18.04。

lsusb | grep Bluetooth 
Bus 002 Device 004: ID 0a5c:216c Broadcom Corp. BCM43142A0 Bluetooth Device
Run Code Online (Sandbox Code Playgroud)

我已经尝试通过从https://github.com/winterheart/broadcom-bt-firmware/tree/master/brcm下载固件 并将其复制到 /lib/firmware/brcm/BCM.hcd 来修复它,因为输出

dmesg | grep bluetooth
Run Code Online (Sandbox Code Playgroud)

曾是

[ 12.314809] bluetooth hci0: Direct firmware load for brcm/BCM.hcd failed with error -2
Run Code Online (Sandbox Code Playgroud)

之后,在系统设置->蓝牙中不再识别蓝牙适配器,并且dmesg | grep bluetooth不返回。输出

uname -r; lsusb; lspci -nnk | grep -iA2 net; rfkill list all; hciconfig -a; dmesg | egrep -i 'blue|firm'
Run Code Online (Sandbox Code Playgroud)

4.15.0-22-generic
Bus 001 Device 002: ID 8087:8001 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 004: ID 0a5c:216c Broadcom Corp. BCM43142A0 Bluetooth Device
Bus 002 Device 003: ID 04f2:b40e Chicony Electronics Co., Ltd HP Truevision HD camera
Bus 002 Device 002: ID 046d:c00c Logitech, Inc. Optical Wheel Mouse
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
08:00.0 Network controller [0280]: Broadcom Limited BCM43142 802.11b/g/n [14e4:4365] (rev 01)
        Subsystem: Hewlett-Packard Company BCM43142 802.11b/g/n [103c:2230]
        Kernel driver in use: wl
--
09:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8101/2/6E PCI Express Fast/Gigabit Ethernet controller [10ec:8136] (rev 08)
        Subsystem: Hewlett-Packard Company RTL810xE PCI Express Fast Ethernet controller [103c:2297]
        Kernel driver in use: r8169
        Kernel modules: r8169
0: hci0: Bluetooth
        Soft blocked: no
        Hard blocked: no
1: phy0: Wireless LAN
        Soft blocked: no
        Hard blocked: no
2: brcmwl-0: Wireless LAN
        Soft blocked: no
        Hard blocked: no
hci0:   Type: Primary  Bus: USB
        BD Address: 00:00:00:00:00:00  ACL MTU: 0:0  SCO MTU: 0:0
        DOWN 
        RX bytes:312 acl:0 sco:0 events:7 errors:0
        TX bytes:37 acl:0 sco:0 commands:9 errors:0
        Features: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
        Packet type: DM1 DH1 HV1 
        Link policy: 
        Link mode: SLAVE ACCEPT 

[    0.000000] [Firmware Bug]: TSC_DEADLINE disabled due to Errata; please update microcode to version: 0x25 (or later)
[    0.049786] ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored
[    1.167623] [Firmware Bug]: Invalid critical threshold (0)
[    2.822033] [Firmware Bug]: ACPI(PXSX) defines _DOD but not _DOS
[   21.550566] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[   21.611269] Bluetooth: Core ver 2.22
[   21.611297] Bluetooth: HCI device and connection manager initialized
[   21.611302] Bluetooth: HCI socket layer initialized
[   21.611306] Bluetooth: L2CAP socket layer initialized
[   21.611316] Bluetooth: SCO socket layer initialized
[   21.749781] Bluetooth: hci0: BCM: chip id 70
[   21.750785] Bluetooth: hci0: BCM: features 0x06
[   21.766795] Bluetooth: hci0: BCM43142A
[   21.766798] Bluetooth: hci0: BCM (001.001.011) build 0000
[   23.900113] Bluetooth: hci0: command 0x0a0a tx timeout
[   27.050123] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   27.050125] Bluetooth: BNEP filters: protocol multicast
[   27.050128] Bluetooth: BNEP socket layer initialized
[   31.964068] Bluetooth: hci0: BCM: Patch command 0a0a failed (-110)
[   34.076050] Bluetooth: hci0: command 0x1001 tx timeout
[   42.204067] Bluetooth: hci0: BCM: Reading local version info failed (-110)
Run Code Online (Sandbox Code Playgroud)

我不知道这意味着什么,但从https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1483101我了解到这个错误已被更新的 Linux 内核修复。我的内核版本是4.15.0-22-generic,但问题仍然存在。我怎样才能让蓝牙工作?

Tar*_*yan 6

修复步骤:

  1. 转至 repo Winterheart/broadcom-bt-firmware并下载文件 BCM43142A0-0a5c-216c.hcd(根据您的蓝牙芯片组)。
  2. 将该文件移至/lib/firmware/brcm(如果不起作用:将文件重命名为BCM.hcd
  3. 关闭并打开电脑

PS这也适用于其他Broadcom.hcd适配器,只需要获取正确的文件: grep Bluetooth Device and ID with command lsusb | grep Bluetooth

编辑此蓝牙问题解决方案也适用于 Ubuntu 20.04。

来源https://dev-pages.info/ubuntu-bluetooth/