← Back to team overview

kernel-packages team mailing list archive

[Bug 1065400] Re: Support for loading Broadcom bluetooth firmware


I'm on up-to-date Raring (stock 3.8.0-30.44 generic kernel) and my
Thinkpad Helix (Broadcom BCM20702A0) may (or may not) be affected by
this issue. Christophe, is your 3.8.0-31 Raring kernel from one of
Jesse's "+bt01" packages at
http://people.canonical.com/~jesse/lp1065400/ ? Or from Raring's
"proposed" repo? Or custom? While I'm not sure it will make a
difference, I'd like to be using a known-to-work kernel before I do
additional testing with the firmware image itself. But I'm not yet ready
to upgrade to Saucy....

Anyway, I'm getting "can't load firmware, may not work correctly" errors
(as I have for a while). I assume this same error cover both of the
following failure-cases: 1) kernel does not attempt to load firmware,
and 2) there is no appropriate firmware in /lib/firmware. Is that

Following the instructions in Karl's post (#84), I created a fw-
0a5c_21e6.hcd, placed it in /lib/firmware (not /lib/firmware/brcm) and
rebooted. It does appear to load, but breaks bluetooth even worse. (I
had to reboot into Windows and "upgrade" the bluetooth driver, which got
me back where I started.) After reading post #95, I tried loading the
firmware manually (sudo brcm_patchram_plus --patchram fw-0a5c_21e6.hcd
hci0), but that failed as well ("port hci0 could not be opened, error

So, three questions:

1) Am i already on a known-to-work Raring kernel? And, if not, how can I
get one?

2) If/when I _am_ on a working kernel, do I still have to roll my own
fw-0a5c_21e6.hcd and put it in /lib/firmware?

3) If so, is there a more reliable way for me to obtain that  .hcd file?
The [Wine -> SetupBtwDownloadSE.exe -> extract
BCM20702A1_001.002.014.0889.0897.hex from Temp -> hex2hcd] method does
not appear to be working for me.

Meanwhile, thanks to everybody (especially Jesse) for all of your help
with this issue.

You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.

  Support for loading Broadcom bluetooth firmware

Status in “linux” package in Ubuntu:
  Fix Released
Status in “linux” source package in Precise:
  Fix Released
Status in “linux” source package in Quantal:
  Fix Committed
Status in “linux” source package in Raring:
  Fix Committed
Status in “linux” source package in Saucy:
  Fix Released

Bug description:
  Broadcom bluetooth chips require a tool called patchram uploader [1]
  to load firmware. This applies to at least BCM20702 and BCM43142.
  Although some of the devices have an OTPROM that contains required
  firmware, but it is found that these devices would not have HFP/HSP
  support unless a upgraded firmware is loaded via patchram uploader.

  This tool requires hci device to do the firmware loading, but this may
  cause some race condition between patchram tool and bluetoothd or
  something that also works on hci interface.

  Also it needs some hooks to make firmware loads after bootup, s3,  s4,
  rfkill, and device hotplug events. Implement this loader in kernel
  module would make things more easier.

  [1] http://marc.info/?l=linux-bluetooth&m=132039175324993&w=2

To manage notifications about this bug go to: