Linux博通(Broadcom)无线网卡蓝牙无法使用问题解决记录

旧笔记本安装ArchLinux后发现蓝牙无法使用,记录一下解决办法。

解决方法记录

笔记本的无线网卡和蓝牙是一起的,lspci命令查看网卡型号
08:00.0 Network controller: Broadcom Inc. and subsidiaries BCM43142 802.11b/g/n (rev 01)
以上可以看到是博通(Broadcom) BCM43142这一个系列型号的网卡

使用dmesg查看蓝牙相关信息
$ sudo dmesg | grep -i bluetooth

...
[ 6.688643] Bluetooth: hci0: BCM: chip id 70
[ 6.690787] Bluetooth: hci0: BCM: features 0x06
[ 6.706677] Bluetooth: hci0: BCM43142A0 (001.001.011) build 0000
[ 6.710354] Bluetooth: hci0: BCM: firmware Patch file not found, tried:
[ 6.710938] Bluetooth: hci0: BCM: 'brcm/BCM43142A0-04ca-2009.hcd'
[ 6.711451] Bluetooth: hci0: BCM: 'brcm/BCM-04ca-2009.hcd'
[ 7.389596] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 7.389602] Bluetooth: BNEP filters: protocol multicast
[ 7.389606] Bluetooth: BNEP socket layer initialized
[ 8.910445] Bluetooth: hci0: command 0x1003 tx timeout
[ 8.910448] Bluetooth: hci0: Opcode 0x1003 failed: -110
...

发现一个Bluetooth: hci0: BCM: firmware Patch file not found的错误。
然后在网上一通寻找,最终在github上找到一个仓库:https://github.com/winterheart/broadcom-bt-firmware,里面描述的错误类似。
按照仓库里README说明的方法找到对应型号网卡的firmware补丁,我根据dmesg的错误提示找到了BCM43142A0-04ca-2009.hcd这个文件,将这个文件放入/lib/firmware/brcm目录中,重启。

再次使用dmesg查看

[ 6.709279] Bluetooth: hci0: BCM: chip id 70
[ 6.710271] Bluetooth: hci0: BCM: features 0x06
[ 6.726308] Bluetooth: hci0: BCM43142A0 (001.001.011) build 0000
[ 6.729887] Bluetooth: hci0: BCM43142A0 'brcm/BCM43142A0-04ca-2009.hcd' Patch
[ 7.414959] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 7.414965] Bluetooth: BNEP filters: protocol multicast
[ 7.414969] Bluetooth: BNEP socket layer initialized
[ 7.422287] Bluetooth: hci0: BCM: features 0x06
[ 7.438287] Bluetooth: hci0: Bluetooth USB module
[ 7.438294] Bluetooth: hci0: BCM43142A0 (001.001.011) build 0330

原先的错误已不见,然后使用bluetoothctl连接蓝牙,蓝牙已可以正常使用。

其他说明

ArchLinux的话也可以去aur仓库搜索broadcom-bt-firmware,安装aur包,这方法我还没试过如果上面步骤没用可以尝试下,看包里面的说明也是从https://github.com/winterheart/broadcom-bt-firmware这个仓库获取的补丁。

作者:xxj19原文地址:https://www.cnblogs.com/xxj19/p/17275464.html

%s 个评论

要回复文章请先登录注册