User Tools

Site Tools


docs:tips_n_tricks:ubuntu:missing_bcm.hcd

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:

2)
As we're only interessted in the firmware, the bit-width of the OS doesn't matter
3)
Drivers provided by Fujitsu here are in .exe format only
4)
Used Perl Package Regexp::Grammars might not be compatible with Perl 5.18.2 used in Trusty
docs/tips_n_tricks/ubuntu/missing_bcm.hcd.txt · Last modified: 21.05.2018 01:51 CEST by peter