Broadcom BCM43142 是 Wi-Fi 蓝牙二合一的适配器,在 Ubuntu 的附加驱动里已经提供了无线网络的私有驱动,但是蓝牙的驱动还是个问题。默认情况下打开蓝牙并不能搜索到设备或被搜索到,无法正常使用。

上网搜索了一番,发现了解决方案。
首先使用 lsusb
命令,结果如下。
1 | Bus 004 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub |
没有描述的那一行,即为 BCM43142 设备。在部分机器上结果略有不同,有些描述会写明 Broadcom Corp. BCM43142 Bluetooth 4.0
。
接下来需要获取 Windows 下 .hex
格式驱动文件,到 C:\windows\system32\drivers
下寻找,文件名类似 BCM43xxxxxxx.hex
。也可以到设备管理器,蓝牙属性里的驱动详情查看文件位置。
还需要将获取到的 hex
文件转换为 hcd
文件。
1 | $ cd ~/bt |
最后重启机器。
注意
以上方法为原参考链接提供,针对 Ubuntu 14.04.2。在 Ubuntu 15.10 上测试时打开蓝牙,终端 dmesg
信息显示:
1 | Bluetooth: Direct firmware load for brcm/BCM.hcd failed with error -2 |
需将 hcd
文件的文件名改为 BCM.hcd
,并且上面最后一步应改为将 BCM.hcd
文件拷贝到 /lib/firmware/brcm
文件夹中,重启即可。

It works!
Update: 有时会遇到蓝牙无法打开的问题,原因未知,错误信息:
1 | Bluetooth: hci0 command 0x1001 tx timeout |
使用 rfkill unblock bluetooth
命令可成功启用蓝牙,原理不明,欢迎指教。