Ubuntu

Support for loading Broadcom bluetooth firmware

Reported by Jesse Sung on 2012-10-11
310
This bug affects 66 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Medium
Jesse Sung
Nominated for Trusty by Jesse Sung
Precise
Medium
Jesse Sung
Quantal
Medium
Jesse Sung
Raring
Medium
Jesse Sung
Saucy
Medium
Jesse Sung

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

Jesse Sung (wenchien) wrote :
Jesse Sung (wenchien) wrote :
Changed in linux (Ubuntu):
assignee: nobody → Jesse Sung (wenchien)
status: New → In Progress
tags: added: blocks-hwcert-enablement
Jesse Sung (wenchien) wrote :

The USB IDs that need this patchram stuff we know so far:
* 0a5c:[21d3, 21d7, 21e3, 21e6, 21f3, 21f4]
* 413c:8197
* 0489:e031
* 13d3:3388

Changed in linux (Ubuntu):
importance: Undecided → Medium
Jesse Sung (wenchien) wrote :

USB ID list update:
* 0a5c:[21d3, 21d7, 21e3, 21e6, 21f3, 21f4]
* 413c:8197
* 0489:e031
* 13d3:[3388, 3389]

Tim Gardner (timg-tpi) on 2012-10-22
Changed in linux (Ubuntu Precise):
assignee: nobody → Jesse Sung (wenchien)
status: New → Fix Committed
Changed in linux (Ubuntu Quantal):
assignee: nobody → Jesse Sung (wenchien)
status: New → In Progress

I experience the broken HFP/HSP issue with a bluetooth molule with USB ID 0a5c:217f

(reporting this since this ID is not on the list)

Jesse Sung (wenchien) wrote :

@bartolinidb, Could you provide the output of usb-devices? Thank you.

darthvader (sarmbruster) wrote :

0a5c:21e6 is also affected, see http://askubuntu.com/questions/180437/bluetooth-headset-a2dp-works-hsp-hfp-not-no-sound-no-mic. Is there a way to manally load the firmware?

Jesse Sung (wenchien) wrote :

@sarmbruster: yes, there's an userspace tool which can be found at
http://marc.info/?l=linux-bluetooth&m=132039175324993&w=2

Herton R. Krzesinski (herton) wrote :

This bug is awaiting verification that the kernel for Precise (3.2.0-34.53) and Quantal (3.5.0-19.30) in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-<releasename>' to 'verification-done-<releasename>'.

If verification is not done by one week from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-precise verification-needed-quantal
Christophe H (chrissc-humbert) wrote :

Hello Herton

I am on Quantal with Kubuntu 64 bits is there any wiki mentionning the step to make the verification like the one you propoosed in https://wiki.ubuntu.com/Testing/EnableProposed

I am juste a power user so please excuse my maybe stupid question

Thanks

Jesse Sung (wenchien) wrote :

Hi Christophe,

To test this, you'll need a firmware image for your module. It must be in hcd format. Name it as /lib/firmware/fw-VVVV_PPPP.hcd where VVVV and PPPP are the module's VID and PID, for example /lib/firmware/fw-0a5c_21e3.hcd for module 0a5c:21e3.

If you don't have a hcd firmware, please try to get a hex firmware from windows driver, and convert it into hcd format.
You can find the tool at https://github.com/jessesung/hex2hcd .

$ git clone git://github.com/jessesung/hex2hcd.git
$ cd hex2hcd
$ make
$ hex2hcd <input_file>.hex fw-xxxx_yyyy.hcd

Christophe H (chrissc-humbert) wrote :

Hello Jesse,

So I have to install new kernel+ the operation you are mentionning that is right?

Thanks and sorry for noob questions

Jesse Sung (wenchien) wrote :

Christophe,

Yes, both kernel and firmware image are required. :)

Jesse Sung (wenchien) on 2012-11-21
tags: added: verification-done-precise
removed: verification-needed-precise
Jesse Sung (wenchien) on 2012-11-21
Changed in linux (Ubuntu Quantal):
status: In Progress → Fix Committed
tags: added: verification-done-quantal
removed: verification-needed-quantal
1 comments hidden view all 117 comments
Launchpad Janitor (janitor) wrote :
Download full text (19.5 KiB)

This bug was fixed in the package linux - 3.2.0-34.53

---------------
linux (3.2.0-34.53) precise-proposed; urgency=low

  [Luis Henriques]

  * Release Tracking Bug
    - LP: #1078760

  [ Kamal Mostafa ]

  * SAUCE: input: Cypress PS/2 Trackpad list additional contributors

  [ Kyle Fazzari ]

  * SAUCE: input: Cypress PS/2 Trackpad fix multi-source, double-click
    - LP: #1055788
  * SAUCE: input: Cypress PS/2 Trackpad fix lost sync upon palm contact
    - LP: #1048258
  * SAUCE: input: Cypress PS/2 Trackpad fix taps turning into hardware
    clicks
    - LP: #1064086

  [ Tim Gardner ]

  * [Config] remove ndiswrapper from Provides:
    - LP: #1076395
  * [Config] CONFIG_HP_WATCHDOG=m for x86en
    - LP: #1076342

  [ Upstream Kernel Changes ]

  * Revert "SUNRPC: Ensure we close the socket on EPIPE errors too..."
    - LP: #1075355
  * Revert "ath9k_hw: Updated AR9003 tx gain table for 5GHz"
    - LP: #1075355
  * eCryptfs: check for eCryptfs cipher support at mount
    - LP: #338914
  * isci: fix isci_pci_probe() generates warning on efi failure path
    - LP: #1068162
  * mtd: nand: Use the mirror BBT descriptor when reading its version
    - LP: #1068162
  * drm/i915: prevent possible pin leak on error path
    - LP: #1068162
  * workqueue: add missing smp_wmb() in process_one_work()
    - LP: #1068162
  * TTY: ttyprintk, don't touch behind tty->write_buf
    - LP: #1068162
  * Remove BUG_ON from n_tty_read()
    - LP: #1068162
  * n_gsm.c: Implement 3GPP27.010 DLC start-up procedure in MUX
    - LP: #1068162
  * n_gsm: uplink SKBs accumulate on list
    - LP: #1068162
  * n_gsm : Flow control handling in Mux driver
    - LP: #1068162
  * char: n_gsm: remove message filtering for contipated DLCI
    - LP: #1068162
  * n_gsm: added interlocking for gsm_data_lock for certain code paths
    - LP: #1068162
  * n_gsm: avoid accessing freed memory during CMD_FCOFF condition
    - LP: #1068162
  * n_gsm: replace kfree_skb w/ appropriate dev_* versions
    - LP: #1068162
  * n_gsm: memory leak in uplink error path
    - LP: #1068162
  * UBI: fix autoresize handling in R/O mode
    - LP: #1068162
  * UBI: erase free PEB with bitflip in EC header
    - LP: #1068162
  * firmware: Add missing attributes to EFI variable attribute print out
    from sysfs
    - LP: #1068162
  * tools/hv: Fix exit() error code
    - LP: #1068162
  * slab: fix the DEADLOCK issue on l3 alien lock
    - LP: #1068162
  * gspca_pac7302: Add usb-id for 145f:013c
    - LP: #1068162
  * gspca_pac7302: add support for device 1ae7:2001 Speedlink Snappy
    Microphone SL-6825-SBK
    - LP: #1068162
  * xhci: Warn when hosts don't halt.
    - LP: #1068162
  * xHCI: add cmd_ring_state
    - LP: #1068162
  * xHCI: add aborting command ring function
    - LP: #1068162
  * xHCI: cancel command after command timeout
    - LP: #1068162
  * hpsa: Use LUN reset instead of target reset
    - LP: #1068162
  * rc: ite-cir: Initialise ite_dev::rdev earlier
    - LP: #1068162
  * staging: speakup_soft: Fix reading of init string
    - LP: #1068162
  * target: fix return code in target_core_init_configfs error path
    - LP: #1068162
  * powerpc/eeh: Lock module while handling EEH event
  ...

Changed in linux (Ubuntu Precise):
status: Fix Committed → Fix Released

The verification of this Stable Release Update has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regresssions.

1 comments hidden view all 117 comments
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package linux - 3.5.0-19.30

---------------
linux (3.5.0-19.30) quantal-proposed; urgency=low

  [Luis Henriques]

  * Release Tracking Bug
    - LP: #1078041

  [ Andy Whitcroft ]

  * [Config] update Vcs-git: to point to quantal
    - LP: #1069204

  [ Joseph Salisbury ]

  * SAUCE: ALSA: hda - add quirk for Thinkpad T430
    - LP: #1060372

  [ Tim Gardner ]

  * [Config] CONFIG_USB_OTG=n for all but armel/armhf
    - LP: #1047527
  * [Config] remove ndiswrapper from Provides:
    - LP: #1076395
  * [Config] ONFIG_AMD_IOMMU_V2=m
    - LP: #1071520

  [ Upstream Kernel Changes ]

  * kernel/sys.c: fix stack memory content leak via UNAME26
    - LP: #1065622, #1060521
    - CVE-2012-0957
  * use clamp_t in UNAME26 fix
    - LP: #1065622, #1060521
    - CVE-2012-0957
  * net: fix divide by zero in tcp algorithm illinois
    - LP: #1077091
    - CVE-2012-4565

  [ Wen-chien Jesse Sung ]

  * SAUCE: Bluetooth: Add a load_firmware callback to struct hci_dev
    - LP: #1065400
  * SAUCE: Bluetooth: Implement broadcom patchram firmware loader
    - LP: #1065400
  * SAUCE: Bluetooth: Add support for 13d3:3388 and 13d3:3389
    - LP: #1065400
 -- Luis Henriques <email address hidden> Tue, 13 Nov 2012 15:49:15 +0000

Changed in linux (Ubuntu Quantal):
status: Fix Committed → Fix Released
bakytn (bakytn) wrote :

I have just upgraded and got kernvel 3.5.0.19

bluetooth is not working after restart.

Jesse Sung (wenchien) wrote :

@bakytn,

Please try the steps in comment 11 and see if it works or not. Thank you.

bakytn (bakytn) wrote :

@jessesung,

ok sir, but where exactly I can find the driver? I tried to download from the Internet with no luck

My device is: 0489:E031,

sorry :(

Jesse Sung (wenchien) wrote :

@bakytn,

You may try the web site of the manufacturer of your laptop and see if there's windows driver for the bluetooth device.

And for 0489:e031, it is mentioned on the archlinux forum.
https://bbs.archlinux.org/viewtopic.php?pid=1040220#p1040220
Maybe this firmware work?

Marcus Weber (ich-marcusweber) wrote :

@bakytn,

I took the driver from Fujitsu Lifebook 531 and extracted the hex files.

https://dl.dropbox.com/u/11767610/0431_e031.tar.gz

There are different hex-files in the driver, i converted the one ending 065 to hcd, and it works fo me.

bakytn (bakytn) wrote :

@jessesung, @marcusweber

no didn't work. I tried both hex files.

What I did:

1. converted to hcd
2. placed to /lib/firmware
3. rebooted

Jesse Sung (wenchien) wrote :

Hi @bakytn,

Did you name it as /lib/firmware/fw-0489_e031.hcd (case sensitive)?
Please attach the output of "dmesg | grep Bluetooth" if it still doesn't work for you.

Thank you.

bakytn (bakytn) wrote :

@jessesung,
dmesg.txt

(yes, I renamed both times exactly as: fw-0489_e031.hcd)

I have attached my current fw file too.

bakytn (bakytn) wrote :

@jessesung
dmesg.txt (I didn't I can't attach more than one file at a time)

Jesse Sung (wenchien) wrote :

@bakytn,

I think the dmesg output looks good. Could you verify that if btusb.ko is loaded automatically or not?

Also, what's the output of dmesg if you remove the firmware image from /lib/firmware/ and reboot?

benklop (benklop) wrote :

I believe USB device with ID 0bda:0001 is also affected by this. This device is part of a Combination PCI-E wifi/bluetooth card - RTL8188CEB8. I'm having difficulty locating windows bluetooth drivers for this device in order to extract firmware, however.

Jesse Sung (wenchien) wrote :

@benklop,

Could you provide the output of /usr/bin/usb-devices of this module? Thank you!

Christophe H (chrissc-humbert) wrote :

Hello,

Kernel 3.5.0-20...Not able to discover device...

Christophe H (chrissc-humbert) wrote :

Sorry Posted too rapidly...Still have to install the firmware manually...will revert back once done

Thanks

Christophe H (chrissc-humbert) wrote :

Hello,

I have addes the firmware manually but still not able to connect a device
dmesg | grep Bluetooth
[ 3.210264] Bluetooth: Core ver 2.16
[ 3.210284] Bluetooth: HCI device and connection manager initialized
[ 3.210285] Bluetooth: HCI socket layer initialized
[ 3.210286] Bluetooth: L2CAP socket layer initialized
[ 3.210290] Bluetooth: SCO socket layer initialized
[ 3.281175] Bluetooth: can't load firmware, may not work correctly
[ 3.337308] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 3.337311] Bluetooth: BNEP filters: protocol multicast
[ 3.344340] Bluetooth: RFCOMM TTY layer initialized
[ 3.344346] Bluetooth: RFCOMM socket layer initialized
[ 3.344347] Bluetooth: RFCOMM ver 1.11

Jesse Sung (wenchien) wrote :

Hi Christophe,

> [ 3.281175] Bluetooth: can't load firmware, may not work correctly

request_firmware() can't find the firmware image. May be due to wrong file name. Please be sure that the image is named as fw-xxxx_yyyy.hcd (where xxxx and yyyy are the VID and PID of this device, in lower case) and placed in /lib/firmware/. Also if the image is in hex format, please convert it to hcd format.

Christophe H (chrissc-humbert) wrote :

Hello Jesse,

Done all of that. Maybe I will test with other hex file transformed in hcd because there is 4 or 5 hex file in the windows drivers.

2 questions how can i relaod teh firmware without rebooting the machine?

Is this normal that this is the only firmware in hcd because all other are either dot fw or bin file

Thanks

Jesse Sung (wenchien) wrote :

Hi Christophe,

According to the dmesg, it looks more like a "can't locate the file" instead of "file in wrong format". So please double check to make sure the btusb module can get the file it wants.

Reload the btusb module can make it reload firmware.
# modprobe -r btusb && modprobe btusb
But from time to time, if a wrong firmware is loaded, the module itself will hang. Depend on the design, you may need to disable bluetooth and re-enable it again via hotkey, reboot, or even power off and remove the power cord (and/or battery) to make it work again.

And yes it's normal to have the firmware in hcd format and named as that because that's what the code expect it to be. :)

Christophe H (chrissc-humbert) wrote :

Hello,

Firmware is loaded but not able to add a device or to be seen by a device

dmesg | grep Bluetooth
[ 3.158075] Bluetooth: Core ver 2.16
[ 3.158102] Bluetooth: HCI device and connection manager initialized
[ 3.158103] Bluetooth: HCI socket layer initialized
[ 3.158104] Bluetooth: L2CAP socket layer initialized
[ 3.158108] Bluetooth: SCO socket layer initialized
[ 3.376100] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 3.376103] Bluetooth: BNEP filters: protocol multicast
[ 3.389721] Bluetooth: RFCOMM TTY layer initialized
[ 3.389724] Bluetooth: RFCOMM socket layer initialized
[ 3.389725] Bluetooth: RFCOMM ver 1.11

Please note to take the latest hex file with 65 at the end otherwise I had hci0 TX Transfer timeout

Thanks Jesse for the help

Christophe H (chrissc-humbert) wrote :

Hello

Kernel 3.5.0-21 still same issue...not able to pair a device....No device listed (and devices are discoverable !)

Any message I can put there to help to investigate!

Kind Regards

benklop (benklop) wrote :

@wenchien: the relevant section appears to be:

T: Bus=02 Lev=02 Prnt=02 Port=02 Cnt=01 Dev#= 3 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=0bda ProdID=0001 Rev=68.17
S: Product=CSR BS8510
C: #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=0mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
I: If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb

This indicates a CSR chipset (i think) . I am however seeing the broken A2DP problem that I believe is associated with this bug.

benklop (benklop) wrote :

@wenchien,

Aplogies, I ot to this bug via https://bugs.launchpad.net/ubuntu/+source/bluez/+bug/962082 , and this is my first indication I'm on a different chipset. What's happening to me seems closer to this: https://bugzilla.redhat.com/show_bug.cgi?format=multiple&id=827692

My logging is:

ben@ben-HP-Pavilion-dm4-Notebook-PC:~$ tail /var/log/syslog
Dec 20 13:12:44 ben-HP-Pavilion-dm4-Notebook-PC dbus[961]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
Dec 20 13:12:44 ben-HP-Pavilion-dm4-Notebook-PC kernel: [21348.712415] userif-2: sent link up event.userif-2: sent link down event.
Dec 20 13:13:10 ben-HP-Pavilion-dm4-Notebook-PC ntpdate[13626]: adjust time server 91.189.94.4 offset 0.161253 sec
Dec 20 13:17:01 ben-HP-Pavilion-dm4-Notebook-PC CRON[13701]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Dec 20 13:39:40 ben-HP-Pavilion-dm4-Notebook-PC bluetoothd[993]: Unable to get service record: Host is down (112)
Dec 20 13:40:00 ben-HP-Pavilion-dm4-Notebook-PC bluetoothd[993]: Badly formated or unrecognized command: AT+BIA=0,0,0,1,1,1,0
Dec 20 13:40:01 ben-HP-Pavilion-dm4-Notebook-PC bluetoothd[993]: Operation not supported (95)
Dec 20 13:40:01 ben-HP-Pavilion-dm4-Notebook-PC pulseaudio[2338]: [pulseaudio] bluetooth-util.c: Failed to acquire transport fd: Input/output error
Dec 20 13:40:01 ben-HP-Pavilion-dm4-Notebook-PC pulseaudio[2338]: [pulseaudio] module.c: Failed to load module "module-bluetooth-device" (argument: "address="00:18:6B:15:AC:DC" path="/org/bluez/993/hci0/dev_00_18_6B_15_AC_DC""): initialization failed.
Dec 20 13:40:02 ben-HP-Pavilion-dm4-Notebook-PC kernel: [21349.841545] userif-2: sent link up event.<6>[22984.942366] input: 00:18:6B:15:AC:DC as /devices/virtual/input/input12

benklop (benklop) wrote :

@wenchien,

O have opened a new bug for my issue: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1092693

Jesse Sung (wenchien) wrote :

Christophe,

Firmware seems to be loaded correctly, so I may guess that it's due to a wrong firmware or a bug in hex2hcd. Does the firmware in comment #21 work?

@benklop,

This one does not look like a broadcom 43142 or 20702 device which this issue works on.

37 comments hidden view all 117 comments
Ephraim (thilo) wrote :

Hey Jesse,

no need for sorry :) ... good to know that someone is working on this and until then I can live with the fact that raring isn't final yet ;)

Greetings
Thilo

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package linux - 3.8.0-17.27

---------------
linux (3.8.0-17.27) raring; urgency=low

  [ Adam Lee ]

  * SAUCE: (no-up) Bluetooth: Add support for 04ca:2007
    - LP: #1153448
  * SAUCE: (no-up) Bluetooth: Add support for 105b:e065
    - LP: #1161261

  [ Len Brown ]

  * SAUCE: (no-up) tools/power turbostat: additional Haswell CPU-id
    - LP: #1083993

  [ Tim Gardner ]

  * Revert "SAUCE: (no-up) seccomp: forcing auditing of kill condition"
    Replaced by upstream patch.
  * Release Tracking Bug
    - LP: #1165746

  [ Upstream Kernel Changes ]

  * rebase to v3.8.6
  * Revert "brcmsmac: support 4313iPA"
    - LP: #1157190
  * tools/power turbostat: support Haswell
    - LP: #1083993
  * net: calxedaxgmac: fix rx ring handling when OOM
  * cpufreq: check OF node /cpus presence before dereferencing it
  * Input: cypress_ps2 - fix trackpadi found in Dell XPS12
    - LP: #1103594
  * ARM: OMAP2+: Limit omap initcalls to omap only on multiplatform kernels
  * ARM: OMAP2+: Use omap initcalls
  * ARM: OMAP: Fix i2c cmdline initcall for multiplatform
  * ARM: OMAP: Fix dmaengine init for multiplatform
  * ARM: OMAP2+: Add multiplatform debug_ll support
  * ARM: OMAP2+: Disable code that currently does not work with
    multiplaform
  * ARM: OMAP2+: Enable ARCH_MULTIPLATFORM support
  * ARM: OMAP2+: Add minimal support for booting vexpress
  * ARM: OMAP2+: Remove now obsolete uncompress.h and debug-macro.S
  * davinci: do not include mach/hardware.h
  * clk: export __clk_get_name for re-use in imx-ipu-v3 and others
  * [SCSI] storvsc: avoid usage of WRITE_SAME
    - LP: #1157952
  * ACPICA: Fix possible memory leak in dispatcher error path.
  * KVM: x86: fix for buffer overflow in handling of MSR_KVM_SYSTEM_TIME (CVE-2013-1796)
    - LP: #1158254
    - CVE-2013-1796

  [ Wen-chien Jesse Sung ]

  * SAUCE: (no-up) Bluetooth: Add a load_firmware callback to struct hci_dev
    - LP: #1065400
  * SAUCE: (no-up) Bluetooth: Implement broadcom patchram firmware loader
    - LP: #1065400
  * SAUCE: (no-up) Bluetooth: Add support for 13d3:3388 and 13d3:3389
    - LP: #1065400
 -- Tim Gardner <email address hidden> Tue, 02 Apr 2013 08:02:43 -0600

Changed in linux (Ubuntu Raring):
status: In Progress → Fix Released
Ephraim (thilo) wrote :

Hey Jesse,

it's working perfectly now! Thanks a lot!

Greetings
Thilo

dan1 (dan1) wrote :

Thank you Jesse very much!, my BT is working again :-)
Dan.

Ray-Ven (ray-ven) wrote :

Jesse,

Can't boot from windows into linux (warm). I have 2 harddrives, and can't manage switching them while warm boot.

But here's my dmesg

[ 25.629689] Bluetooth: Core ver 2.16
[ 25.630268] Bluetooth: HCI device and connection manager initialized
[ 25.630270] Bluetooth: HCI socket layer initialized
[ 25.630271] Bluetooth: L2CAP socket layer initialized
[ 25.630275] Bluetooth: SCO socket layer initialized
[ 25.872303] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 25.872306] Bluetooth: BNEP filters: protocol multicast
[ 25.881075] Bluetooth: RFCOMM TTY layer initialized
[ 25.881080] Bluetooth: RFCOMM socket layer initialized
[ 25.881081] Bluetooth: RFCOMM ver 1.11
[ 34.476588] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[ 153.495020] Bluetooth: re-auth of legacy device is not possible.
[ 1811.609072] Bluetooth: hci0 SCO packet for unknown connection handle 0
[ 1811.609076] Bluetooth: hci0 SCO packet for unknown connection handle 0
[ 1811.609077] Bluetooth: hci0 SCO packet for unknown connection handle 0
[ 1811.609078] Bluetooth: hci0 SCO packet for unknown connection handle 0
[ 1811.609079] Bluetooth: hci0 SCO packet for unknown connection handle 0

Ray-Ven (ray-ven) wrote :

it seems, everything works in raring with latest Kernel...
[ 12.304826] Bluetooth: Core ver 2.16
[ 12.304866] Bluetooth: HCI device and connection manager initialized
[ 12.304873] Bluetooth: HCI socket layer initialized
[ 12.304875] Bluetooth: L2CAP socket layer initialized
[ 12.304880] Bluetooth: SCO socket layer initialized
[ 13.033186] Bluetooth: RFCOMM TTY layer initialized
[ 13.033197] Bluetooth: RFCOMM socket layer initialized
[ 13.033199] Bluetooth: RFCOMM ver 1.11
[ 13.050086] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 13.050089] Bluetooth: BNEP filters: protocol multicast
[ 13.050096] Bluetooth: BNEP socket layer initialized
[ 13.177153] Bluetooth: firmware loaded
[ 17.121048] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[ 17.121057] Bluetooth: HIDP socket layer initialized

Thanks once again Jesse

vamana (kirillovvv) on 2013-04-14
Changed in linux (Ubuntu Precise):
assignee: Jesse Sung (wenchien) → vamana (kirillovvv)
Jesse Sung (wenchien) on 2013-04-15
Changed in linux (Ubuntu Precise):
assignee: vamana (kirillovvv) → Jesse Sung (wenchien)
Karl Kurbjun (kkurbjun) wrote :

I tried creating the appropriate hcd file for my device with the 3.5.0-27-generic kernel and placing it in /lib/firmware, but it did not seem like the current kernel module knows to load firmware for my vendor/product id.

My lsusb output is:
Bus 002 Device 004: ID 0a5c:21e1 Broadcom Corp.

To get HSP/HFP profile working on my machine I went through the following process:

I downloaded the windows driver from broadcom's site:
http://www.broadcom.com/support/bluetooth/update.php

To get the appropriate firmware for my device I ran the windows installer from wine and then copied the files it extracted from my wine temp directory: "~/.wine/drive_c/users/<username>/Temp"

I searched bcbtums-win8x64-brcm.inf for my product id "21e1" and found the required firmware file "BCM20702A1_001.002.014.0889.0920.hex".

Aftter that I ran the hcd converter tool on it from here:
https://github.com/jessesung/hex2hcd

I named the file output "fw-0a5c_21e1.hcd" and placed it in /lib/firmware but the kernel did not seem to pick it up.

As the next step I compiled the patch plus application from here:
http://marc.info/?l=linux-bluetooth&m=132039175324993&w=2

With that tool I was able to manually load the firmware from user space with the following command:
"sudo ./patchram --patchram /lib/firmware/fw-0a5c_21e1.hcd hci0"

After that HSP/HFP profile started working. If I am not using the -proposed kernel should this be working automatically now or is this fix still just in proposed?

Jesse Sung (wenchien) wrote :

Hi Karl,

Since the state of this issue is already fix released, it should be working even you're not using a -proposed kernel.

Please attach the output of 'dmesg | grep Bluetooth', and, if it's possible, could you try if the raring kernel works for you and attach the output of 'dmesg | grep Bluetooth' also.

Thanks.

Michel Voßkuhle (m-vosskuhle) wrote :

My device is 0a5c:21f4 in a Lenovo Edge E135 and I think I am affected by this bug on an up-to-date install of raring. In quantal all below described devices worked (although not very reliably). Since upgrading to raring only my bluetooth mouse is still working. Here's what I tried to solve the problem:

I downloaded the Windows XP driver from the Lenovo Support Website and extracted it via Wine. In a file
    ~/.wine/drive_c/DRIVERS/BLUETOOTH_Combo/Win64/drivers/btwusb.inf
I found information that suggests I need the RAMPatchFile `BCM20702A1_001.002.014.0889.0899.hex`. I used hex2hcd to obtain `fw-0a5c_21f4.hcd` which I placed in `/lib/firmware/`. From the output of `dmesg | grep -i bluetooth` (see attachment), I figure that the firmware does get loaded. The bluetooth mouse still works (as it did before). Also my phone and a A2DP device get detected, which they didn't before. However I still cannot connect to the latter two devices...

Is my problem related to this bug? Any suggestions to solve the problem?

coubi64 (frederic-valentin) wrote :

I have this problem on Ubuntu 13.04:

frederic@notebook:~$ dmesg | grep Bluetooth
[ 5.551787] Bluetooth: Core ver 2.16
[ 5.551965] Bluetooth: HCI device and connection manager initialized
[ 5.551981] Bluetooth: HCI socket layer initialized
[ 5.551987] Bluetooth: L2CAP socket layer initialized
[ 5.551999] Bluetooth: SCO socket layer initialized
[ 5.577111] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 5.577119] Bluetooth: BNEP filters: protocol multicast
[ 5.577136] Bluetooth: BNEP socket layer initialized
[ 5.584102] Bluetooth: RFCOMM TTY layer initialized
[ 5.584132] Bluetooth: RFCOMM socket layer initialized
[ 5.584136] Bluetooth: RFCOMM ver 1.11
[ 6.766806] Bluetooth: can't load firmware, may not work correctly
frederic@notebook:~$

frederic@notebook:~$ dmesg | grep Broadcom
[ 5.255619] usb 6-1: Manufacturer: Broadcom Corp
[ 6.411624] eth1: Broadcom BCM4727 802.11 Hybrid Wireless Controller 6.20.155.1 (r326264)

How can I help more to find why it's not solved?

Jesse Sung (wenchien) on 2013-06-04
Changed in linux (Ubuntu):
status: Fix Released → In Progress
Karl Kurbjun (kkurbjun) wrote :

Jesse,

Thanks for the response - sorry for the delay getting back. I have since upgraded to raring so I do not have a setup to test this on 12.04. Raring has the same/similar behavior as 12.10 as far as profile functionality.

This is my output from 'dmesg | grep Bluetooth':

[ 8.267277] Bluetooth: Core ver 2.16
[ 8.267353] Bluetooth: HCI device and connection manager initialized
[ 8.267427] Bluetooth: HCI socket layer initialized
[ 8.267431] Bluetooth: L2CAP socket layer initialized
[ 8.267445] Bluetooth: SCO socket layer initialized
[ 8.547342] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 8.547345] Bluetooth: BNEP filters: protocol multicast
[ 8.547351] Bluetooth: BNEP socket layer initialized
[ 8.550520] Bluetooth: RFCOMM TTY layer initialized
[ 8.550534] Bluetooth: RFCOMM socket layer initialized
[ 8.550536] Bluetooth: RFCOMM ver 1.11

It looks like it does not know to load firmware for my vendor/product id combination.

Thanks for looking at this,
Karl

Elijah Q Johnson (windaddy01) wrote :

was the fix exclusive to ubuntu or was it added to the mainline kernel

Elijah Q Johnson (windaddy01) wrote :

Hello Jesse,

I followed your instructions from comment 11 and bluetooth stops working while booting with fw-0a5c_21e8.hcd is in the /lib/frimware/ directory

I used hex3hcd tool with RAMUSB21E8 / BCM20702A1_001.002.014.0889.0896.hex for IOGEAR GBU521 / 0a5c:21e8

here is the dmesg | grep Bluetooth output while fw-0a5c_21e8.hcd is in the /lib/frimware/ directory:

[ 19.567221] Bluetooth: Core ver 2.16
[ 19.567277] Bluetooth: HCI device and connection manager initialized
[ 19.567287] Bluetooth: HCI socket layer initialized
[ 19.567291] Bluetooth: L2CAP socket layer initialized
[ 19.567299] Bluetooth: SCO socket layer initialized
[ 20.533843] Bluetooth: firmware loaded
[ 20.916739] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 20.916744] Bluetooth: BNEP filters: protocol multicast
[ 20.916755] Bluetooth: BNEP socket layer initialized
[ 20.917965] Bluetooth: RFCOMM TTY layer initialized
[ 20.917978] Bluetooth: RFCOMM socket layer initialized
[ 20.917980] Bluetooth: RFCOMM ver 1.11
[ 23.016021] Bluetooth: hci0 command 0x0c56 tx timeout
[ 25.020019] Bluetooth: hci0 command 0x0c6d tx timeout
[ 27.024044] Bluetooth: hci0 command 0x0c1a tx timeout
[ 29.028013] Bluetooth: hci0 command 0x0c24 tx timeout

and here the output while bluetooth partially working and fw-0a5c_21e8.hcd isn't in the /lib/frimware/ director:

[ 20.186088] Bluetooth: Core ver 2.16
[ 20.208815] Bluetooth: HCI device and connection manager initialized
[ 20.208827] Bluetooth: HCI socket layer initialized
[ 20.208831] Bluetooth: L2CAP socket layer initialized
[ 20.208839] Bluetooth: SCO socket layer initialized
[ 20.330770] Bluetooth: can't load firmware, may not work correctly
[ 21.719953] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 21.719957] Bluetooth: BNEP filters: protocol multicast
[ 21.719968] Bluetooth: BNEP socket layer initialized
[ 21.724278] Bluetooth: RFCOMM TTY layer initialized
[ 21.724294] Bluetooth: RFCOMM socket layer initialized
[ 21.724297] Bluetooth: RFCOMM ver 1.11

and yes if I do a boot into windows with the proper drviers installed and then restarted into linux it fully functional (both a2dp and hsp/hfp work) as long as fw-0a5c_21e8.hcd isn't in the /lib/frimware/ director in linux and when I turn off the computer the bluetooth only works with a2dp again and not hsp/hfp

note: In windows is says the device is a BCM20702A0 in device under control panel while looking at the tbcbtums-win7x86-brcm.inf info for 0a5c:21e8 it says its a 20702A1 dongle

Mike R (mike-fusebuilder) wrote :

I followed the instructions to create the .hcd file in /lib/firmware, and now after rebooting I no longer have any bluetooth devices detected, so the indicator is now completely missing from the bar. What's more, after rebooting again into Windows 7, I no longer have a bluetooth icon in the system tray. In Windows' Device Manager I now see an "unknown device" in my list of USB devices instead of bluetooth.

It looks like whatever this patch did is physical and has actually made things worse for me. Is there anything I can run now, either in Ubuntu or in Windows, to reverse the patch? I can live with no headset but I use my phone's bluetooth connection for tethered internet, so I'd like to get at least some bluetooth useage back.

Thanks in advance,
Mike

Jesse Sung (wenchien) wrote :

Karl and Elijah, can you try 3.8.0-25.37+bt01 in http://people.canonical.com/~jesse/lp1065400/ (for raring)? Thanks!

Elijah, this is only in ubuntu for now. You can find previous work to make it into upstream in #1 and #2. I'm working on a new version for upstream.

Michel, as long as module works after firmware loaded, I may suggest tthat it is not related to this issue...

Mike, please try 3.8.0-25.37+bt01 in http://people.canonical.com/~jesse/lp1065400/ (for raring). If the module disappeared from usb bus after failing to load firmware, you may need a cold boot, which removes power from the module and clears partial loaded firmware from it. If you don't want the kernel module to load firmware, please remove or rename the hcd file.

Ephraim (thilo) wrote :

Hey Jesse,

I tried saucy with a Broadcom BT Adapter. Not working that nicely like it was in raring a.s.o. ....
Used Kernel version is 3.10.0-0 ...

If a known working firmware is manually uploaded, it works fine.

Can I help anyhow with other answers? :)

Greetings
Thilo

Peter Sinka (pjsinka) wrote :

Hi All,

i try all of these How to's here, but my T430s will not work with BT Headset and Profile HFP.

Can you help me?

Greetings
Peter

Michisteiner (michisteiner) wrote :
Download full text (3.9 KiB)

Hi Jesse,

From your message i infer that the firmware load patch is now in the latest raring kernel (3.8.0-27-generic) and hence automatic firmware load should work correctly?

When i put working firmware as /lib/firmware/fw-0a5c_21e6.hcd on my ThinkPad W530 with 0a5c:21e6 / BCM20702A0 Broadcom chip, i get the following syslog messages ...

   Aug 13 10:49:40 babbage2 kernel: [10934.063072] usb 1-1.4: new full-speed USB device number 31 using ehci-pci
   Aug 13 10:49:40 babbage2 kernel: [10934.159795] usb 1-1.4: New USB device found, idVendor=0a5c, idProduct=21e6
   Aug 13 10:49:40 babbage2 kernel: [10934.159803] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
   Aug 13 10:49:40 babbage2 kernel: [10934.159808] usb 1-1.4: Product: BCM20702A0
   Aug 13 10:49:40 babbage2 kernel: [10934.159811] usb 1-1.4: Manufacturer: Broadcom Corp
   Aug 13 10:49:40 babbage2 kernel: [10934.159815] usb 1-1.4: SerialNumber: 083E8EE2E348
   Aug 13 10:49:40 babbage2 mtp-probe: checking bus 1, device 31: "/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4"
   Aug 13 10:49:40 babbage2 mtp-probe: bus: 1, device: 31 was not an MTP device
   Aug 13 10:49:42 babbage2 kernel: [10935.397013] Bluetooth: firmware loaded
   Aug 13 10:49:42 babbage2 bluetoothd[1172]: Adapter /org/bluez/1172/hci0 has been enabled
   Aug 13 10:49:42 babbage2 bluetoothd[1172]: Endpoint registered: sender=:1.53 path=/MediaEndpoint/HFPAG
   Aug 13 10:49:42 babbage2 bluetoothd[1172]: Endpoint registered: sender=:1.53 path=/MediaEndpoint/HFPHS
   Aug 13 10:49:42 babbage2 bluetoothd[1172]: Endpoint registered: sender=:1.53 path=/MediaEndpoint/A2DPSource
   Aug 13 10:49:42 babbage2 bluetoothd[1172]: Endpoint registered: sender=:1.53 path=/MediaEndpoint/A2DPSink
   Aug 13 10:49:44 babbage2 kernel: [10937.440496] Bluetooth: hci0 command 0x0c56 tx timeout
   Aug 13 10:49:46 babbage2 kernel: [10939.440676] Bluetooth: hci0 command 0x0c6d tx timeout
   Aug 13 10:49:48 babbage2 kernel: [10941.440946] Bluetooth: hci0 command 0x0c1a tx timeout
   Aug 13 10:49:50 babbage2 kernel: [10943.441130] Bluetooth: hci0 command 0x0c24 tx timeout
   Aug 13 10:49:52 babbage2 kernel: [10945.441401] Bluetooth: hci0 command 0x0c52 tx timeout

... and BT disconnects again.

When i remove lib/firmware/fw-0a5c_21e6.hcd, reload bluetoothi get ...

  Aug 13 10:51:10 babbage2 kernel: [11024.005470] usb 1-1.4: new full-speed USB device number 32 using ehci-pci
  Aug 13 10:51:11 babbage2 kernel: [11024.101655] usb 1-1.4: New USB device found, idVendor=0a5c, idProduct=21e6
  Aug 13 10:51:11 babbage2 kernel: [11024.101663] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
  Aug 13 10:51:11 babbage2 kernel: [11024.101668] usb 1-1.4: Product: BCM20702A0
  Aug 13 10:51:11 babbage2 kernel: [11024.101671] usb 1-1.4: Manufacturer: Broadcom Corp
  Aug 13 10:51:11 babbage2 kernel: [11024.101674] usb 1-1.4: SerialNumber: 083E8EE2E348
  Aug 13 10:51:11 babbage2 mtp-probe: checking bus 1, device 32: "/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4"
  Aug 13 10:51:11 babbage2 mtp-probe: bus: 1, device: 32 was not an MTP device
  Aug 13 10:51:11 babbage2 kernel: [11024.148591] Bluetooth: can't load firmwa...

Read more...

Derrik Pates (demon-devrandom) wrote :

I had this same issue with an IOGear USB Bluetooth 4.0 adapter:

Bus 006 Device 019: ID 0a5c:21e8 Broadcom Corp.

I built and installed the brcm_patchram_plus_usb tool, used hex2hcd to convert the firmware (extracted from the driver CD included with the adapter - first time I've used one of those in awhile), and it made my HSP profile Bluetooth headset work (a Plantronics Discovery 975) where I only got silence before. Guessing this device's ID needs to be added to the kernel as well. I did drop the firmware file into my /lib/firmware directory as fw-0a5c_21e8.hcd as well. I'm running Mint 15 (based on raring).

Jesse Sung (wenchien) on 2013-09-04
Changed in linux (Ubuntu Precise):
status: Fix Released → In Progress
status: In Progress → Fix Released
Changed in linux (Ubuntu Quantal):
status: Fix Released → In Progress
Changed in linux (Ubuntu Raring):
status: Fix Released → In Progress
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package linux - 3.11.0-5.11

---------------
linux (3.11.0-5.11) saucy; urgency=low

  * Release tracker
    - LP: #1221886

  [ Adam Lee ]

  * SAUCE: Bluetooth: Add support for 04ca:2007
    - LP: #1153448
  * SAUCE: Bluetooth: Add support for 105b:e065
    - LP: #1161261

  [ Gavin Guo ]

  * SAUCE: Bluetooth: Add support for Broadcom 413c:8143
    - LP: #1166113

  [ Upstream Kernel Changes ]

  * igb: Reset the link when EEE setting changed
    - LP: #1219619
  * igb: Read register for latch_on without return value
    - LP: #1219619
  * igb: Added rcu_lock to avoid race
    - LP: #1219619
  * igb: don't allow SR-IOV without MSI-X
    - LP: #1219619
  * igb: Update MTU so that it is always at least a standard frame size
    - LP: #1219619
  * igb: Refactor of init_nvm_params
    - LP: #1219619
  * igb: Refactor NVM read functions to accommodate devices with no flash
    - LP: #1219619
  * igb: Add device support for flashless SKU of i210 device
    - LP: #1219619
  * igb: Fix get_fw_version function for all parts
    - LP: #1219619
  * igb: Add macro for size of RETA indirection table
    - LP: #1219619
  * igb: Expose RSS indirection table for ethtool
    - LP: #1219619
  * igb: Don't look for a PBA in the iNVM when flashless
    - LP: #1219619
  * igb: Implementation of 1-sec delay for i210 devices
    - LP: #1219619
  * igb: New PHY_ID for i354 device
    - LP: #1219619
  * igb: M88E1543 PHY downshift implementation
    - LP: #1219619
  * igb: No PHPM support in i354 devices
    - LP: #1219619
  * igb: Support to get 2_5G link status for appropriate media type
    - LP: #1219619
  * igb: Get speed and duplex for 1G non_copper devices
    - LP: #1219619
  * igb: Implementation to report advertised/supported link on i354 devices
    - LP: #1219619
  * igb: Update version number
    - LP: #1219619
  * Bluetooth: Take proper tty_struct references
    - LP: #1189998
  * Bluetooth: Remove the device from the list in the destructor
    - LP: #1189998
  * Bluetooth: Move the tty initialization and cleanup out of open/close
    - LP: #1189998
  * Bluetooth: Implement .activate, .shutdown and .carrier_raised methods
    - LP: #1189998
  * Bluetooth: Fix the reference counting of tty_port
    - LP: #1189998
  * Bluetooth: Purge the dlc->tx_queue to avoid circular dependency
    - LP: #1189998

  [ Wen-chien Jesse Sung ]

  * SAUCE: Bluetooth: Support for loading broadcom patchram firmware
    - LP: #1065400
  * SAUCE: Bluetooth: Add support for 13d3:3388 and 13d3:3389
    - LP: #1065400
 -- Tim Gardner <email address hidden> Thu, 05 Sep 2013 08:06:17 -0600

Changed in linux (Ubuntu):
status: In Progress → Fix Released
Andy Whitcroft (apw) on 2013-09-09
Changed in linux (Ubuntu Quantal):
status: In Progress → Fix Committed
importance: Undecided → Medium
Changed in linux (Ubuntu Precise):
importance: Undecided → Medium
Changed in linux (Ubuntu Raring):
status: In Progress → Fix Committed
Ephraim (thilo) wrote :

Hey Jesse,

I would like to thank you again for your working with loading the firmware stuff!
Saucy is working for me.

Greetings Thilo

Christophe H (chrissc-humbert) wrote :

Hello Jesse,

with 3.8.0-31 no errors in the systems logs anymore even during laptop hibernation.

Will try again to work with bluetooth mouse and revert

Thanks again for all the effort

Chris (poser) wrote :

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 correct?

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 2").

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.

Chris (poser) wrote :
Download full text (3.3 KiB)

I now see that, while my device (per 'dmesg | grep -B1 Broadcom') is a BCM20702A0, I was attempting to load firmware from a .hex file with "BCM20702A1" in its name. I had chosen BCM20702A1_001.002.014.0889.0897.hex because that was the only filename that turned up when I searched bcbtums-win8x64-brcm.inf for "21E6", which is my device ID (per 'lsusb | grep Broadcom').
___
;;;;;;;;;;;;;RAMUSB21E6;;;;;;;;;;;;;;;;;

[RAMUSB21E6.CopyList]
bcbtums.sys
BCM20702A1_001.002.014.0889.0897.hex

[RAMUSB21E6.NTamd64]
Include=bth.inf
Needs=BthUsb.NT
FeatureScore=EF
CopyFiles=RAMUSB21E6.CopyList
CopyFiles=BcmBtRSupport.CopyList

[RAMUSB21E6.NTamd64.hw]
AddReg=RAMUSB21E6.NTamd64.hw.reg

[RAMUSB21E6.NTamd64.hw.reg]
HKR,,LowerFilters, 0x00010000, "bcbtums"
HKR,,%RAMPatchFileName%,0x00000, "BCM20702A1_001.002.014.0889.0897.hex"
HKR,,%RemoteWakeEnabled%,0x00010001,1
HKR,,%DeviceRemoteWakeSupported%,0x00010001,1

[RAMUSB21E6.NTamd64.Services]
needs=BthUsb.NT.Services
AddService=bcbtums,,BCBTUMS_Service_Inst, BTWSECFL_EventLog_Inst
DelService=BcmBtRSupport,0x00000200
AddService=BcmBtRSupport,0x00000800,BtwRSupport_Service_Inst ; SPSVCSINST_STARTSERVICE
___

So, I tried the wine trick using the Lenovo Thinkpad "Bluetooth with Enhanced Data Rate" software...

http://support.lenovo.com/en_US/downloads/detail.page?DocID=DS034630
http://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles/gfwb06ww.exe

...and ended up in more or less the same situation. But, the Lenovo installer created an additional folder, though, called "LD" which contained a BCM20702A0_001.001.024.0156.0204.hex file that wasn't in the set from the Broadcom installer...so I figured I'd try that one out. But, alas, it broke things again. I was no longer able even to add the headset I've been using to test, and I ended up with the following, over and over again, in /var/log/syslog:
___
Sep 14 15:28:27 ... kernel: [ 163.540986] usb 1-1.4: USB disconnect, device number 26
Sep 14 15:28:27 ... bluetoothd[1056]: Unregister path: /org/bluez/1056/hci0
Sep 14 15:28:27 ... bluetoothd[1056]: hci0: Set IO Capability (0x0018) failed: Invalid Index (0x11)
Sep 14 15:28:27 ... kernel: [ 163.773364] usb 1-1.4: new full-speed USB device number 27 using ehci-pci
Sep 14 15:28:27 ... kernel: [ 163.869583] usb 1-1.4: New USB device found, idVendor=0a5c, idProduct=21e6
Sep 14 15:28:27 ... kernel: [ 163.869595] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Sep 14 15:28:27 ... kernel: [ 163.869601] usb 1-1.4: Product: BCM20702A0
Sep 14 15:28:27 ... kernel: [ 163.869605] usb 1-1.4: Manufacturer: Broadcom Corp
Sep 14 15:28:27 ... kernel: [ 163.869610] usb 1-1.4: SerialNumber: <serial_num>
Sep 14 15:28:27 ... mtp-probe: checking bus 1, device 27: "/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4"
Sep 14 15:28:27 ... mtp-probe: bus: 1, device: 27 was not an MTP device
Sep 14 15:28:28 ... kernel: [ 164.670213] Bluetooth: firmware loaded
Sep 14 15:28:28 ... bluetoothd[1056]: input-headset driver probe failed for device <mac_address>
Sep 14 15:28:28 ... bluetoothd[1056]: Adapter /org/bluez/1056/hci0 has been enabled
Sep 14 15:28:28 ... bluetoothd[1056]: hci0: Get Connections (0x0015) failed: Not Powered...

Read more...

Hello Jesse,

working like a charm now. Fully confirmed.

Thanks a lot for all your effort.

@Chris

I am using standard linux kernel

As for the firmware, please find it attached for the one I am using

Brad Figg (brad-figg) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-raring-needed' to 'verification-raring-done'.

If verification is not done by one week from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-raring
Ondřej Janošík (jondra91) wrote :

With brcm_patchram_plus_usb and hex2hdc I managed to get HFP/HSP on my laptop working (no sound/mic before) using BCM20702A1_001.002.014.0449.0775.hex patchram.
However after copying fw-04ca_2003.hcd into /lib/firmware/ and rebooting it doesn't loads patchram and I have to do it manually again.

I'm running Ubuntu-Raring with 3.8.0.30.48 kernel.

-----
usb-devices:
T: Bus=01 Lev=02 Prnt=02 Port=05 Cnt=02 Dev#= 4 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=04ca ProdID=2003 Rev=01.12
S: Manufacturer=Broadcom Corp
S: Product=BCM20702A0
S: SerialNumber=20689D9D53B0
C: #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
I: If#= 1 Alt= 2 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
I: If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)

-----
dmesg | grep Bluetooth
[ 15.241832] Bluetooth: Core ver 2.16
[ 15.241857] Bluetooth: HCI device and connection manager initialized
[ 15.242027] Bluetooth: HCI socket layer initialized
[ 15.242030] Bluetooth: L2CAP socket layer initialized
[ 15.242036] Bluetooth: SCO socket layer initialized
[ 35.560433] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 35.560435] Bluetooth: BNEP filters: protocol multicast
[ 35.560441] Bluetooth: BNEP socket layer initialized
[ 35.561273] Bluetooth: RFCOMM TTY layer initialized
[ 35.561282] Bluetooth: RFCOMM socket layer initialized
[ 35.561283] Bluetooth: RFCOMM ver 1.11

Kyle Manna (kyle-kylemanna) wrote :

I'm running 3.11.0-7 Saucy kernel on Raring and the firmware gets loaded, but it doesn't enable A2DP. Seems that the firmware loader is working, but I have the wrong firmware?

I have an Iogear GBU521 / 0a5c:21e8 like Elijah. I fetched the windows driver from http://www.iogear.com/support/dm/driver/GBU521 and used hex2hcd on firmware BCM20702A1_001.002.014.0889.0896.hex from the bcbtums-win8x64-brcm.inf from my vid:pid.

/proc/version:
Linux version 3.11.0-7-generic (root@core) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-1ubuntu1) ) #14 SMP Mon Sep 16 22:03:29 PDT 2013

usb-devices:
T: Bus=01 Lev=03 Prnt=43 Port=03 Cnt=03 Dev#= 46 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=0a5c ProdID=21e8 Rev=01.12
S: Manufacturer=Broadcom Corp
S: Product=BCM20702A0
S: SerialNumber=0002723E9EC0
C: #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
I: If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)

dmesg/kern.log:
Sep 19 20:01:29 core kernel: [173325.476969] usb 1-1.5.4: new full-speed USB device number 46 using ehci-pci
Sep 19 20:01:29 core kernel: [173325.572574] usb 1-1.5.4: New USB device found, idVendor=0a5c, idProduct=21e8
Sep 19 20:01:29 core kernel: [173325.572580] usb 1-1.5.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Sep 19 20:01:29 core kernel: [173325.572583] usb 1-1.5.4: Product: BCM20702A0
Sep 19 20:01:29 core kernel: [173325.572586] usb 1-1.5.4: Manufacturer: Broadcom Corp
Sep 19 20:01:29 core kernel: [173325.572588] usb 1-1.5.4: SerialNumber: 0002723E9EC0
Sep 19 20:01:31 core kernel: [173326.944094] Bluetooth: firmware loaded
Sep 19 20:01:40 core kernel: [173336.196410] br0: port 1(eth0) entered forwarding state
Sep 19 20:01:50 core kernel: [173346.481465] r8169 0000:06:00.0 eth0: link down
Sep 19 20:01:50 core kernel: [173346.481570] br0: port 1(eth0) entered disabled state
Sep 19 20:01:52 core kernel: [173348.142401] r8169 0000:06:00.0 eth0: link up
Sep 19 20:01:52 core kernel: [173348.142904] br0: port 1(eth0) entered forwarding state
Sep 19 20:01:52 core kernel: [173348.142931] br0: port 1(eth0) entered forwarding state
Sep 19 20:02:07 core kernel: [173363.171462] br0: port 1(eth0) entered forwarding state

Jesse Sung (wenchien) wrote :

@jondra91,

04ca:2003 is not tagged as needing external firmware in the device table. If firmware is needed to make HFP/HSP work, please file a new bug and let me know the bug ID. Thanks.

Brad Figg (brad-figg) on 2013-09-23
tags: added: verification-done-raring
removed: verification-needed-raring
Launchpad Janitor (janitor) wrote :
Download full text (5.7 KiB)

This bug was fixed in the package linux - 3.5.0-41.64

---------------
linux (3.5.0-41.64) quantal; urgency=low

  [Brad Figg]

  * Release Tracking Bug
    - LP: #1223451

  [ Upstream Kernel Changes ]

  * kernel-doc: bugfix - multi-line macros
    - LP: #1223920
  * Revert "zram: use zram->lock to protect zram_free_page() in swap free
    notify path"
    - LP: #1215513
  * x86 thermal: Delete power-limit-notification console messages
    - LP: #1215748
  * x86 thermal: Disable power limit notification interrupt by default
    - LP: #1215748
  * ARM: 7810/1: perf: Fix array out of bounds access in
    armpmu_map_hw_event()
    - LP: #1216442
    - CVE-2013-4254
  * ARM: 7809/1: perf: fix event validation for software group leaders
    - LP: #1216442
    - CVE-2013-4254
  * veth: reduce stat overhead
    - LP: #1201869
  * veth: extend device features
    - LP: #1201869
  * veth: avoid a NULL deref in veth_stats_one
    - LP: #1201869
  * veth: fix a NULL deref in netif_carrier_off
    - LP: #1201869
  * veth: fix NULL dereference in veth_dellink()
    - LP: #1201869
  * Bluetooth: Add support for Atheros [0cf3:3121]
    - LP: #1202477
  * efivars: explicitly calculate length of VariableName
    - LP: #1217745
  * xfs: fix _xfs_buf_find oops on blocks beyond the filesystem end
    - LP: #1151527
    - CVE-2013-1819
  * drm/i915/lvds: ditch ->prepare special case
    - LP: #1221791
  * serial: mxs: fix buffer overflow
    - LP: #1221791
  * fs/proc/task_mmu.c: fix buffer overflow in add_page_map()
    - LP: #1221791
  * af_key: initialize satype in key_notify_policy_flush()
    - LP: #1221791
  * vm: add no-mmu vm_iomap_memory() stub
    - LP: #1221791
  * iwl4965: set power mode early
    - LP: #1221791
  * iwl4965: reset firmware after rfkill off
    - LP: #1221791
  * ASoC: cs42l52: Reorder Min/Max and update to SX_TLV for Beep Volume
    - LP: #1221791
  * can: pcan_usb: fix wrong memcpy() bytes length
    - LP: #1221791
  * ALSA: 6fire: make buffers DMA-able (pcm)
    - LP: #1221791
  * ALSA: 6fire: make buffers DMA-able (midi)
    - LP: #1221791
  * jbd2: Fix use after free after error in jbd2_journal_dirty_metadata()
    - LP: #1221791
  * USB-Serial: Fix error handling of usb_wwan
    - LP: #1221791
  * USB: mos7840: fix big-endian probe
    - LP: #1221791
  * USB: adutux: fix big-endian device-type reporting
    - LP: #1221791
  * USB: ti_usb_3410_5052: fix big-endian firmware handling
    - LP: #1221791
  * m68k/atari: ARAnyM - Fix NatFeat module support
    - LP: #1221791
  * m68k: Truncate base in do_div()
    - LP: #1221791
  * usb: add two quirky touchscreen
    - LP: #1221791
  * USB: mos7720: fix broken control requests
    - LP: #1221791
  * USB: keyspan: fix null-deref at disconnect and release
    - LP: #1221791
  * MIPS: Expose missing pci_io{map,unmap} declarations
    - LP: #1221791
  * microblaze: Update microblaze defconfigs
    - LP: #1221791
  * sound: Fix make allmodconfig on MIPS
    - LP: #1221791
  * sound: Fix make allmodconfig on MIPS correctly
    - LP: #1221791
  * alpha: makefile: don't enforce small data model for kernel builds
    - LP: #1221791
  * MIPS: Rewrite pfn_valid to work in modules, too.
    - L...

Read more...

Changed in linux (Ubuntu Quantal):
status: Fix Committed → Fix Released
status: Fix Committed → Fix Released
1 comments hidden view all 117 comments
Launchpad Janitor (janitor) wrote :
Download full text (15.3 KiB)

This bug was fixed in the package linux - 3.8.0-31.46

---------------
linux (3.8.0-31.46) raring; urgency=low

  [ Brad Figg ]

  * Release Tracking Bug
    - LP: #1223406

  * UBUNTU: [Config] KUSER_HELPERS=y for armhf

  [ Upstream Kernel Changes ]

  * Revert "cpuidle: Quickly notice prediction failure in general case"
    - LP: #1221794
  * Revert "cpuidle: Quickly notice prediction failure for repeat mode"
    - LP: #1221794
  * Revert "zram: use zram->lock to protect zram_free_page() in swap free
    notify path"
    - LP: #1215513
  * x86 thermal: Delete power-limit-notification console messages
    - LP: #1215748
  * x86 thermal: Disable power limit notification interrupt by default
    - LP: #1215748
  * mwifiex: do not create AP and P2P interfaces upon driver loading
    - LP: #1212720
  * ARM: 7810/1: perf: Fix array out of bounds access in
    armpmu_map_hw_event()
    - LP: #1216442
    - CVE-2013-4254
  * ARM: 7809/1: perf: fix event validation for software group leaders
    - LP: #1216442
    - CVE-2013-4254
  * veth: reduce stat overhead
    - LP: #1201869
  * veth: extend device features
    - LP: #1201869
  * veth: avoid a NULL deref in veth_stats_one
    - LP: #1201869
  * veth: fix a NULL deref in netif_carrier_off
    - LP: #1201869
  * veth: fix NULL dereference in veth_dellink()
    - LP: #1201869
  * Bluetooth: Add support for Atheros [0cf3:3121]
    - LP: #1202477
  * uvcvideo: quirk PROBE_DEF for Dell SP2008WFP monitor.
    - LP: #1217957
  * usb: dwc3: gadget: don't prevent gadget from being probed if we fail
    - LP: #1221794
  * usb: dwc3: fix wrong bit mask in dwc3_event_type
    - LP: #1221794
  * ASoC: max98088 - fix element type of the register cache.
    - LP: #1221794
  * ata: Fix DVD not dectected at some platform with Wellsburg PCH
    - LP: #1221794
  * Tools: hv: KVP: Fix a bug in IPV6 subnet enumeration
    - LP: #1221794
  * ALSA: usb-audio: 6fire: return correct XRUN indication
    - LP: #1221794
  * usb: serial: cp210x: Add USB ID for Netgear Switches embedded serial
    adapter
    - LP: #1221794
  * USB: storage: Add MicroVault Flash Drive to unusual_devs
    - LP: #1221794
  * USB: misc: Add Manhattan Hi-Speed USB DVI Converter to sisusbvga
    - LP: #1221794
  * USB: option: append Petatel NP10T device to GSM modems list
    - LP: #1221794
  * usb: cp210x support SEL C662 Vendor/Device
    - LP: #1221794
  * USB: cp210x: add MMB and PI ZigBee USB Device Support
    - LP: #1221794
  * USB: EHCI: Fix resume signalling on remote wakeup
    - LP: #1221794
  * drm/radeon: fix endian issues with DP handling (v3)
    - LP: #1221794
  * drm/radeon: Another card with wrong primary dac adj
    - LP: #1221794
  * drm/radeon: improve dac adjust heuristics for legacy pdac
    - LP: #1221794
  * drm/radeon: fix combios tables on older cards
    - LP: #1221794
  * ARM: footbridge: fix overlapping PCI mappings
    - LP: #1221794
  * [SCSI] isci: Fix a race condition in the SSP task management path
    - LP: #1221794
  * [SCSI] qla2xxx: Properly set the tagging for commands.
    - LP: #1221794
  * [SCSI] sd: fix crash when UA received on DIF enabled device
    - LP: #1221794
  * nfsd: nfsd_open: when dentry_ope...

Changed in linux (Ubuntu Raring):
status: Fix Committed → Fix Released
status: Fix Committed → Fix Released
1 comments hidden view all 117 comments
Ray-Ven (ray-ven) wrote :

Seems not to be working with 3.11.0-12 in saucy. Even hex2hcded the latest firmware, and It's loaded, but cannot pair a device :-( worked the other day in saucy.

0a5c:21e6 Broadcom Corp. BCM20702 Bluetooth 4.0 [ThinkPad]

Ray-Ven (ray-ven) wrote :

same same with 3.11.0-13-generic (proposed)
this is really annoying :-(

Ray-Ven (ray-ven) wrote :

ok this is stupid. It's working. The device was just switched off. rfkill said it's neither soft nor hardblocked, so I thought everything was fine! The hardware-switch was switched on so I thought it should work. Still, there is a fn+f5 combination which was needed to power the device, despite the fact that in bluetooth/main.conf "remember last state" was on false and "power on on boot" was true.

Struan (struans) wrote :

Headset no longer works in Saucy.
$ uname -r
3.11.0-14-generic

$ lsusb | grep -i bluetooth
Bus 001 Device 006: ID 0a5c:21e8 Broadcom Corp. BCM20702A0 Bluetooth 4.0

$ dmesg | grep Bluetooth
[ 8.601897] Bluetooth: Core ver 2.16
[ 8.601937] Bluetooth: HCI device and connection manager initialized
[ 8.601944] Bluetooth: HCI socket layer initialized
[ 8.601946] Bluetooth: L2CAP socket layer initialized
[ 8.601949] Bluetooth: SCO socket layer initialized
[ 8.975389] Bluetooth: can't load firmware, may not work correctly
[ 38.366804] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 38.366808] Bluetooth: BNEP filters: protocol multicast
[ 38.366816] Bluetooth: BNEP socket layer initialized
[ 38.377388] Bluetooth: RFCOMM TTY layer initialized
[ 38.377400] Bluetooth: RFCOMM socket layer initialized
[ 38.377401] Bluetooth: RFCOMM ver 1.11
[ 1888.521766] Bluetooth: can't load firmware, may not work correctly
[147237.885091] Bluetooth: hci0 command 0x1405 tx timeout
[147239.890197] Bluetooth: hci0 command 0x1403 tx timeout
[149477.530846] Bluetooth: hci0 command 0x0c2d tx timeout

Struan (struans) wrote :

Now getting this error

$ uname -r
3.11.0-14-generic

$ lsusb | grep -i bluetooth
Bus 001 Device 006: ID 0a5c:21e8 Broadcom Corp. BCM20702A0 Bluetooth 4.0

$ dmesg | grep Bluetooth
[ 7.584434] Bluetooth: Core ver 2.16
[ 7.584464] Bluetooth: HCI device and connection manager initialized
[ 7.584472] Bluetooth: HCI socket layer initialized
[ 7.584473] Bluetooth: L2CAP socket layer initialized
[ 7.584477] Bluetooth: SCO socket layer initialized
[ 7.917151] Bluetooth: can't load firmware, may not work correctly
[ 14.786237] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 14.786241] Bluetooth: BNEP filters: protocol multicast
[ 14.786249] Bluetooth: BNEP socket layer initialized
[ 14.796522] Bluetooth: RFCOMM TTY layer initialized
[ 14.796532] Bluetooth: RFCOMM socket layer initialized
[ 14.796534] Bluetooth: RFCOMM ver 1.11
[ 53.162408] Bluetooth: Wrong link type (-14)
[ 53.321353] Bluetooth: Wrong link type (-14)
[ 53.322600] Bluetooth: Wrong link type (-2)
[ 63.331513] Bluetooth: Wrong link type (-2)

Sergio Benjamim (sergio-br2) wrote :

Hello, there is a Sony Vaio with this device:

0489:e062 Foxconn / Hon Hai (BCM43142A0)

Wifi works, but Bluetooth does not. So, this is a problem with firmware load? More info in bug #1263351

Struan, thank you for your comment. Given that the the scope of this bug has been resolved, and is marked Fix Released, this report does not cover your problem. If you have a bug in Ubuntu, could you please file a new report with Ubuntu by executing the following in a terminal while booted into a Ubuntu repository kernel (not a mainline one) via:
ubuntu-bug linux

For more on this, please read the official Ubuntu documentation:
Ubuntu Bug Control and Ubuntu Bug Squad: https://wiki.ubuntu.com/Bugs/BestPractices#X.2BAC8-Reporting.Focus_on_One_Issue
Ubuntu Kernel Team: https://wiki.ubuntu.com/KernelTeam/KernelTeamBugPolicies#Filing_Kernel_Bug_reports
Ubuntu Community: https://help.ubuntu.com/community/ReportingBugs#Bug_reporting_etiquette

When opening up the new report, please feel free to subscribe me to it.

Thank you for your understanding.

Helpful bug reporting tips:
https://help.ubuntu.com/community/ReportingBugs

Displaying first 40 and last 40 comments. View all 117 comments or add a comment.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.