Table of Contents
Missing BCM.hcd
Problem
Bluetooth was not working on Mint 17.3 (based on Ubuntu Trusty Thar) on a Fujitsu Lifebook S 761. First examinations shows
(root@lifebook-s761) ~ # dmesg | fgrep firmware [ 13.152244] iwlwifi 0000:02:00.0: loaded firmware version 18.168.6.1 op_mode iwldvm [ 15.098651] bluetooth hci0: Direct firmware load for brcm/BCM.hcd failed with error -2 (root@lifebook-s761) ~ #
and
(root@lifebook-s761) ~ # lsusb Bus 002 Device 005: ID 1199:9011 Sierra Wireless, Inc. Bus 002 Device 004: ID 0489:e031 Foxconn / Hon Hai Bus 002 Device 003: ID 04f2:b240 Chicony Electronics Co., Ltd Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 002: ID 046d:c05b Logitech, Inc. M-U0004 810-001317 [B110 Optical USB Mouse] Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 003: ID 08ff:2683 AuthenTec, Inc. Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub (root@lifebook-s761) ~ #
There has been a bug open regarding this BT chip, but it was declared closed1).
Getting driver and tools
There are several pointers to https://github.com/winterheart/broadcom-bt-firmware/tree/master/brcm, but it lacks the driver for USB ID 0489:e031.
I found a windows drivers package2) at the Broadcom site3).
Unfortunately the perl script provided by winterheart from the git repository mentioned above to identify and convert the firmware did not run4). Also, the utility hex2hcd is not available for Ubuntu Trusty Thar. But the binary in the bluez package for Xenial is sufficient - you don't need to install the package, unpacking by
dpkg --extract <package> .
is sufficient.
Applying the solution
grep -i '0489.*e031' *.inf
reveals the .inf file to be examined. The line shows the device description “RAMUSBE031”. Searching for that in the file leads to the section
[RAMUSBE031.CopyList] bcbtums.sys btwampfl.sys BCM20702A0_001.001.024.0156.0204.hex
which is pointing to the file BCM20702A0_001.001.024.0156.0204.hex. This needs to be converted and deployed:
hex2hcd BCM20702A0_001.001.024.0156.0204.hex mv -iv BCM20702A0_001.001.024.0156.0204.hcd /lib/firmware/brcm/BCM.hcd rmmod btusb modprobe btusb
did the trick.
References: