Broadcom43142 无线+蓝牙驱动问题

06:00.0 Network controller: Broadcom Corporation BCM43142 802.11b/g/n (rev 01)

无线 + 蓝牙 二合一模块
默认安装 openSUSE 42.1 完成后没有网卡驱动,需要
#zypper install broadcom-wl
网络可以用,但蓝牙模块用不了(No Adapters Available)。 反复折腾了很多次依旧没有解决,在些请教有相关经验的大神。

需要从 Windows 驱动中提取固件并转换。详见 arch wiki 相关页面

Broadcom BCM43142 在 openSUSE 系统中,无线网络正常,但是蓝牙功能不正常的解决办法:

  1. Root权限下,运行dmesg | grep -i Bluetooth,得到结果:

[ 4.919161] Bluetooth: Core ver 2.21
[ 4.919181] Bluetooth: HCI device and connection manager initialized
[ 4.919184] Bluetooth: HCI socket layer initialized
[ 4.919187] Bluetooth: L2CAP socket layer initialized
[ 4.919193] Bluetooth: SCO socket layer initialized
[ 5.004530] Bluetooth: hci0: BCM: chip id 70
[ 5.024768] Bluetooth: hci0: BCM43142A
[ 5.024773] Bluetooth: hci0: BCM (001.001.011) build 0000
[ 5.027877] bluetooth hci0: Direct firmware load for brcm/BCM.hcd failed with error -2
[ 5.027881] Bluetooth: hci0: BCM: Patch brcm/BCM.hcd not found
[ 5.971295] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 5.971298] Bluetooth: BNEP filters: protocol multicast
[ 5.971301] Bluetooth: BNEP socket layer initialized
[ 18.925020] Bluetooth: RFCOMM TTY layer initialized
[ 18.925025] Bluetooth: RFCOMM socket layer initialized
[ 18.925029] Bluetooth: RFCOMM ver 1.11

其中,以下为有效信息:


[ 5.004530] Bluetooth: hci0: BCM: chip id 70
[ 5.024768] Bluetooth: hci0: BCM43142A
[ 5.024773] Bluetooth: hci0: BCM (001.001.011) build 0000
[ 5.027877] bluetooth hci0: Direct firmware load for brcm/BCM.hcd failed with error -2
[ 5.027881] Bluetooth: hci0: BCM: Patch brcm/BCM.hcd not found

得出,brcm文件夹缺少BCM.hcd文件。

  1. 运行lsusb,得到结果:

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 0bda:57b4 Realtek Semiconductor Corp. 
Bus 001 Device 003: ID 04ca:2006 Lite-On Technology Corp. 
Bus 001 Device 002: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

其中,以下为有效信息:


Bus 001 Device 003: ID 04ca:2006 Lite-On Technology Corp. 

得出,BCM.hcd文件ID为04ca:2006。

  1. 在https://github.com/winterheart/broadcom-bt-firmware/tree/master/brcm中找到04ca:2006对应的hcd文件BCM43142A0-04ca-2006.hcd,并修改文件名为BCM.hcd。

  2. Root权限下,移动BCM.hcd文件到/lib/firmware/brcm/文件夹,重启系统。

1赞