Broadcom Corporation BCM4352 bluetooth adapter not finding any bluetooth devices

Bug #1382302 reported by PJSingh5000
34
This bug affects 6 people
Affects Status Importance Assigned to Milestone
bluez (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Broadcom Corporation BCM4352 wi-fi/bluetooth adapter is unable to find/detect Bluetooth devices, and Bluetooth devices can not see the Ubuntu PC, even when in pairing mode.

(Here is a similar bug, but for a different Broadcom device: https://bugs.launchpad.net/ubuntu/+source/bluez/+bug/1264311)

MOTHERBOARD INFO

$ sudo dmidecode -t baseboard
# dmidecode 2.12
SMBIOS 2.7 present.

Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
 Manufacturer: ASRock
 Product Name: Z87E-ITX
 Version:
 Serial Number: E80-34027900563
 Asset Tag:
 Features:
  Board is a hosting board
  Board is replaceable
 Location In Chassis:
 Chassis Handle: 0x0003
 Type: Motherboard
 Contained Object Handles: 0

UBUNTU INFO

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.1 LTS
Release: 14.04
Codename: trusty

 $ uname -a
Linux Computer 3.13.0-37-generic #64-Ubuntu SMP Mon Sep 22 21:28:38 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

WI-FI DEVICE INFO

$ lspci | grep Broadcom
03:00.0 Network controller: Broadcom Corporation BCM4352 802.11ac Wireless Network Adapter (rev 03)

Note, the BCM4352 802.11ac device is a combination Wi-Fi + Bluetooth adapter.

BLUETOOTH DEVICE INFO

$ lsusb
Bus 002 Device 002: ID 8087:8000 Intel Corp.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 13d3:3404 IMC Networks
Bus 001 Device 002: ID 8087:8008 Intel Corp.
Bus 001 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 004: ID 1b1c:0c04 Corsair
Bus 003 Device 003: ID 046d:0826 Logitech, Inc.
Bus 003 Device 002: ID 09da:024f A4 Tech Co., Ltd RF Receiver and G6-20D Wireless Optical Mouse
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

The system log does not show any errors when the btusb module is loaded...

kernel: [36245.996355] usbcore: registered new interface driver btusb
bluetoothd[833]: Unknown command complete for opcode 19
bluetoothd[833]: Endpoint registered: sender=:1.1820 path=/MediaEndpoint/HFPAG
bluetoothd[833]: Endpoint registered: sender=:1.1820 path=/MediaEndpoint/HFPHS
bluetoothd[833]: Endpoint registered: sender=:1.1820 path=/MediaEndpoint/A2DPSource
bluetoothd[833]: Endpoint registered: sender=:1.1820 path=/MediaEndpoint/A2DPSink
bluetoothd[833]: Endpoint registered: sender=:1.77 path=/MediaEndpoint/HFPAG
bluetoothd[833]: Endpoint registered: sender=:1.77 path=/MediaEndpoint/HFPHS
bluetoothd[833]: Endpoint registered: sender=:1.77 path=/MediaEndpoint/A2DPSource
bluetoothd[833]: Endpoint registered: sender=:1.77 path=/MediaEndpoint/A2DPSink
bluetoothd[833]: Adapter /org/bluez/833/hci0 has been enabled

description: updated
description: updated
Revision history for this message
Matthias Blümel (blaimi) wrote :

I have the exactly same issue with fedora on my lenovo yoga 3 pro (Dual-Boot with Win8.1). I found out, that if I’m booting Windows first and than restart, bluetooth works fine. If I boot fedora after a shutdown, bluetooth finds nothing. The problem occurs also after a suspend to disk (hibernate, S4) and boot into fedora. Booting windows after a fedora-S4 -> reboot -> resume fedora : works!

I think, the Windows-Driver is loading a specific firmware for the bluetooth-dongle, and because the dongle is not powered off in a reboot, linux can also work with it. If we boot linux from power-off, linux doesn’t load the (correct) firmware -> problem.

We are not alone:
http://forums.fedoraforum.org/showthread.php?t=297902
http://ubuntuforums.org/showthread.php?t=2197717

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in bluez (Ubuntu):
status: New → Confirmed
Revision history for this message
Paul Necsoiu (paul-necsoiu) wrote :

ON my Ubuntu 14.04.1 wi-fi work but the bluetooth doesn't.

Revision history for this message
redfox7691 (claudio-bizzarri) wrote :

Ubuntu 14.04 on EliteBook 850G1 with Azurewave AW-CE123H 802.11ac/nbg WiFi+BT Broadcom BCM4352. Wifi works very well but bluetooth does not work.
I've tried to load firmware from Windows Drivers without success.

If I boot on OSX (yes, my 850G1 works perfectly as hackintosh) first and then restart Ubuntu (without poweoff), bluetooth works fine.

Revision history for this message
redfox7691 (claudio-bizzarri) wrote :

SOLVED: if you have this USB device 13d3:3404 like me there is a lack of firmware uploading, this is solved in kernel 4.0, so if you have a kernel 3.x you must patch btusb.c and recompile this module.

For example I have a 3.18.12 kernel (installed into Ubuntu 14.04 from http://kernel.ubuntu.com/~kernel-ppa/mainline/?C=N;O=D), here is what I've done:

- get the kernel source with wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.18.12.tar.xz
- tar xpvf linux-3.18.12.tar.xz
- cd linux-3.18.12/drivers/bluetooth
- gedit btusb
- add this line under /* Broadcom BCM20702A0 */
  { USB_DEVICE(0x13d3, 0x3404), .driver_info = BTUSB_BCM_PATCHRAM },
- cp /boot/config-$(uname -r) .config
- cp /usr/src/linux-headers-$(uname -r)/Module.symvers Module.symvers
- sudo apt-get install build-essential linux-headers-generic
- sudo cp btusb.ko /lib/modules/$(uname -r)/kernel/drivers/bluetooth/
- get file https://dl.dropboxusercontent.com/u/2259248/BCM20702A0-13d3-3404.hcd and put it into /lib/firmware/brcm directory
- reboot

That's all, folk!

Revision history for this message
redfox7691 (claudio-bizzarri) wrote :

Fixed on Kernel 4.0 or with patch of btusb.c and firmware from Windows driver

Changed in bluez (Ubuntu):
status: Confirmed → Fix Released
Revision history for this message
Robin (robingape) wrote :

The description in #5 is not a fix, but rather a hack, which will have to be repeated for every kernel update. A true fix would involve:
a) amending the btusb file
b) including the fully BT capable firmware in a package

If only a) is done, that would be a big improvement!

Please note that 14.04 LTS will be using the 3.13.0 kernel until 2019, so this bug needs a robust fix!

Thanks to redfox for getting to the bottom of it!

Revision history for this message
Laura Abbott (labbott) wrote :

What's the commit hash for the fix in the upstream kernel? I'm not seeing anything explicitly listing the BCM4352 in btusb.c in the tree or on the mailing list.

Revision history for this message
redfox7691 (claudio-bizzarri) wrote :

The BCM4352 is wifi part of chipset, the bluetooth component has a different id. Last Tuesday I've bought a half size PCIE card, an Azurewave AW-CE123H 802.11ac/nbg WiFi+BT Broadcom BCM4352, because I use my laptop as hackintosh and the original Intel board is not supported.

From a OSX forum I've learned that my new hardware needs a specific firmware and I've installed a component to inject this firmware into my card at every boot and sleep/wake cycle.

After this I've found that, under Linux, bluetooth was not working: after some searching I've found that btusb module supports device 13d3:3404 (iProduct BCM20702A0) only from kernel 3.19, but (for other reasons) I'm using kernel 3.18 on my Ubuntu 14.04.

I don't know where is the commit hash, but in btusb.c of kernel 3.19 at line 109/110 there is support at firmware loading for 13d3:3404 device, this is absent in 3.18.13 kernel.

I hope that this can you help to find piece of information that you asked for.

Regards,
Claudio

Revision history for this message
Laura Abbott (labbott) wrote :

Thanks for the pointer, that was helpful. The commit hash I was looking for is a86c02ea38c53b695209b1181f9e2e18d73eb4e8 ("Bluetooth: Add support for Broadcom BCM20702A1 variant
") I was confused because 6331c686e664909988ecc35b040e1e96c137f5e0 ("Bluetooth: btusb: Consolidate Broadcom based device entries") did some refactoring.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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