2

i was browsing many posts regarding the issue, though i could not find a monolithic answer.

the issue: unable to discover\detect other bluetooth nodes.

information:

$ uname -r
3.13.0-59-generic

$ cat /etc/*release* | grep -i dist
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.2 LTS"

$ lsusb | grep -i bluetooth
Bus 002 Device 003: ID 0a5c:21d7 Broadcom Corp. BCM43142 Bluetooth 4.0

$ sudo lshw -c network
  *-network               
       description: Wireless interface
       product: BCM43142 802.11b/g/n
       vendor: Broadcom Corporation
       physical id: 0
       bus info: pci@0000:01:00.0
       logical name: wlan0
       version: 01
       serial: XX:XX:XX:XX:XX:XX
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
       configuration: broadcast=yes driver=wl0 driverversion=6.30.223.248 (r487574) ip=192.168.1.103 latency=0 multicast=yes wireless=IEEE 802.11abg
       resources: irq:16 memory:d0500000-d0507fff

$ usb-devices

T:  Bus=02 Lev=02 Prnt=02 Port=04 Cnt=01 Dev#=  3 Spd=12  MxCh= 0
D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=0a5c ProdID=21d7 Rev=01.12
S:  Manufacturer=Broadcom Corp
S:  Product=BCM43142A0
S:  SerialNumber=XXXXXXXXXXXXX
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= 0 #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)

$ lsmod | grep -i 'bluetooth\|btusb\|wl'
btusb                  32412  0 
wl                   6367819  0 
cfg80211              484040  1 wl
bluetooth             391136  22 bnep,btusb,rfcomm

$ dmesg | grep -i bluetooth
[    2.964011] Bluetooth: Core ver 2.17
[    2.964049] Bluetooth: HCI device and connection manager initialized
[    2.964056] Bluetooth: HCI socket layer initialized
[    2.964058] Bluetooth: L2CAP socket layer initialized
[    2.964062] Bluetooth: SCO socket layer initialized
[    2.969253] Bluetooth: RFCOMM TTY layer initialized
[    2.969268] Bluetooth: RFCOMM socket layer initialized
[    2.969273] Bluetooth: RFCOMM ver 1.11
[    2.969744] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    2.969746] Bluetooth: BNEP filters: protocol multicast
[    2.969751] Bluetooth: BNEP socket layer initialized
[    3.460974] Bluetooth: can't load firmware, may not work correctly
[    5.462029] Bluetooth: hci0 command 0x1003 tx timeout

as you can see in the snippet above, on the last two lines -- it seems like there is a problem with the driver.

note that we are talking about a combo-nic. i.e. it is a wifi and a bluetooth devices on the physical network interface card.

can one please shed the light on the issue:

  1. what is wrong?
  2. is there any software solution? (i know i can buy different hardware)

UPDATE: i followed pilot6 link, and did the depicted steps there for both architecture. i.e. 32bit and 64bit. i have shutdown the computer, but the issue were yet resolved. enclosed more information, if any other information is needed, please let me know.

$ dmesg | grep -i bluetooth
[    3.137118] Bluetooth: Core ver 2.17
[    3.137138] Bluetooth: HCI device and connection manager initialized
[    3.137145] Bluetooth: HCI socket layer initialized
[    3.137148] Bluetooth: L2CAP socket layer initialized
[    3.137155] Bluetooth: SCO socket layer initialized
[    3.139875] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    3.139878] Bluetooth: BNEP filters: protocol multicast
[    3.139884] Bluetooth: BNEP socket layer initialized
[    3.155867] Bluetooth: RFCOMM TTY layer initialized
[    3.155877] Bluetooth: RFCOMM socket layer initialized
[    3.155881] Bluetooth: RFCOMM ver 1.11
[    3.574991] Bluetooth: can't load firmware, may not work correctly
[    5.583477] Bluetooth: hci0 command 0x1003 tx timeout

i am not certain, though it seems like the firmware was not loaded:

T:  Bus=02 Lev=02 Prnt=02 Port=04 Cnt=01 Dev#=  3 Spd=12  MxCh= 0
D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=0a5c ProdID=21d7 Rev=01.12
S:  Manufacturer=Broadcom Corp
S:  Product=BCM43142A0
S:  SerialNumber=C01885BC70F0
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= 0 #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)

see 4 rows from the bottom -- Driver=btusb. thus, i am not sure that copying the firmware helped in anyway.

UPDATE 2: that is exactly what i did:

$ mkdir /tmp/bt && cd /tmp/bt

$ wget http://download.windowsupdate.com/msdownload/update/driver/drvs/2013/07/20573731_e75f2c1244fb153ccc4c1cac0dfbbab030d18543.cab
--2015-07-28 19:00:45--  http://download.windowsupdate.com/msdownload/update/driver/drvs/2013/07/20573731_e75f2c1244fb153ccc4c1cac0dfbbab030d18543.cab
Resolving download.windowsupdate.com (download.windowsupdate.com)... 191.234.4.50
Connecting to download.windowsupdate.com (download.windowsupdate.com)|191.234.4.50|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1134497 (1.1M) [application/octet-stream]
Saving to: ‘20573731_e75f2c1244fb153ccc4c1cac0dfbbab030d18543.cab’

100%[=============================================================================================================>] 1,134,497   2.01MB/s   in 0.5s   

2015-07-28 19:00:46 (2.01 MB/s) - ‘20573731_e75f2c1244fb153ccc4c1cac0dfbbab030d18543.cab’ saved [1134497/1134497]

$ cabextract 20573731_e75f2c1244fb153ccc4c1cac0dfbbab030d18543.cab 
20573731_e75f2c1244fb153ccc4c1cac0dfbbab030d18543.cab: WARNING; possible 16136 extra bytes at end of file.
Extracting cabinet: 20573731_e75f2c1244fb153ccc4c1cac0dfbbab030d18543.cab
  extracting bcbtums-win8x86-brcm.cat
  extracting bcbtums-win8x86-brcm.inf
  extracting bcbtums.sys
  extracting BCM20702A1_001.002.014.0889.0903.hex
  extracting BCM20702A1_001.002.014.0889.0926.hex
  extracting BCM20702A1_001.002.014.1055.1056.hex
  extracting BCM20702A1_001.002.014.1055.1057.hex
  extracting BCM20702A1_001.002.014.1055.1058.hex
  extracting BCM20702A1_001.002.014.1055.1060.hex
  extracting BCM20702A1_001.002.014.1055.1061.hex
  extracting BCM20702A1_001.002.014.1055.1062.hex
  extracting BCM20702A1_001.002.014.1055.1063.hex
  extracting BCM20702A1_001.002.014.1055.1064.hex
  extracting BCM20702A1_001.002.014.1055.1065.hex
  extracting BCM20702A1_001.002.014.1055.1067.hex
  extracting BCM20702A1_001.002.014.1055.1068.hex
  extracting BCM20702A1_001.002.014.1055.1070.hex
  extracting BCM20702A1_001.002.014.1055.1071.hex
  extracting BCM20702A1_001.002.014.1055.1072.hex
  extracting BCM20702A1_001.002.014.1055.1073.hex
  extracting BCM20702A1_001.002.014.1055.1074.hex
  extracting BCM20702A1_001.002.014.1055.1076.hex
  extracting BCM20702A1_001.002.014.1055.1079.hex
  extracting BCM20702A1_001.002.014.1055.1080.hex
  extracting BCM20702A1_001.002.014.1055.1082.hex
  extracting BCM20702A1_001.002.014.1055.1143.hex
  extracting BCM20702A1_001.002.014.1055.1229.hex
  extracting BCM20702A1_001.002.014.1055.1239.hex
  extracting BCM20702A1_001.002.014.1159.1168.hex
  extracting BCM20702A1_001.002.014.1159.1171.hex
  extracting BCM20702A1_001.002.014.1159.1174.hex
  extracting BCM20702A1_001.002.014.1159.1176.hex
  extracting BCM20702A1_001.002.014.1159.1178.hex
  extracting BCM20702A1_001.002.014.1159.1183.hex
  extracting BCM20702A1_001.002.014.1159.1187.hex
  extracting BCM20702A1_001.002.014.1159.1190.hex
  extracting BCM20702A1_001.002.014.1159.1193.hex
  extracting BCM20702A1_001.002.014.1159.1201.hex
  extracting BCM20702A1_001.002.014.1159.1208.hex
  extracting BCM20702A1_001.002.014.1159.1212.hex
  extracting BCM20702A1_001.002.014.1159.1214.hex
  extracting BCM20702A1_001.002.014.1159.1216.hex
  extracting BCM20702A1_001.002.014.1159.1230.hex
  extracting BCM43142A0_001.001.011.0084.0099.hex
  extracting BCM43142A0_001.001.011.0084.0100.hex
  extracting BCM43142A0_001.001.011.0084.0102.hex
  extracting BCM43142A0_001.001.011.0122.0124.hex
  extracting BCM43142A0_001.001.011.0122.0126.hex
  extracting BCM43142A0_001.001.011.0122.0127.hex
  extracting BCM43142A0_001.001.011.0122.0128.hex
  extracting BCM43142A0_001.001.011.0122.0131.hex
  extracting BCM43142A0_001.001.011.0122.0133.hex
  extracting BCM43142A0_001.001.011.0122.0135.hex
  extracting BCM43142A0_001.001.011.0122.0137.hex
  extracting BCM43142A0_001.001.011.0122.0139.hex
  extracting BCM43142A0_001.001.011.0122.0146.hex
  extracting BCM43142A0_001.001.011.0122.0152.hex
  extracting BCM43142A0_001.001.011.0122.0156.hex
  extracting BcmBtRSupport.dll
  extracting btwampfl.sys
  extracting btwdi.dll
  extracting BtwRSupportService.exe

All done, no errors.


$ wget https://github.com/jessesung/hex2hcd/archive/master.zip
--2015-07-28 19:03:56--  https://github.com/jessesung/hex2hcd/archive/master.zip
Resolving github.com (github.com)... 192.30.252.130
Connecting to github.com (github.com)|192.30.252.130|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://codeload.github.com/jessesung/hex2hcd/zip/master [following]
--2015-07-28 19:03:57--  https://codeload.github.com/jessesung/hex2hcd/zip/master
Resolving codeload.github.com (codeload.github.com)... 192.30.252.146
Connecting to codeload.github.com (codeload.github.com)|192.30.252.146|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/zip]
Saving to: ‘master.zip’

    [ <=>                                                                                                          ] 8,902       --.-K/s   in 0.1s    

2015-07-28 19:03:58 (59.0 KB/s) - ‘master.zip’ saved [8902]

$ unzip master.zip 
Archive:  master.zip
1175dcef12aff35a6ce8d0422c7d811a9a2a8801
   creating: hex2hcd-master/
  inflating: hex2hcd-master/LICENSE  
  inflating: hex2hcd-master/Makefile  
  inflating: hex2hcd-master/hex2hcd.c 

$ lsusb | grep -i bluetooth
Bus 002 Device 003: ID 0a5c:21d7 Broadcom Corp. BCM43142 Bluetooth 4.0
geek@nebula:/tmp/bt$ grep 'VID_0A5C&PID_21D7' bcbtums-win8x86-brcm.inf 
%Dell1704.DeviceDesc%=RAMUSB21D7,           USB\VID_0A5C&PID_21D7       ; BRCM Generic 43142A0 RAMUSB

$ grep RAMUSB21D7 bcbtums-win8x86-brcm.inf -A 3 | grep -i hex
BCM43142A0_001.001.011.0122.0126.hex
HKR,,%RAMPatchFileName%,0x00000, "BCM43142A0_001.001.011.0122.0126.hex"

$ cd hex2hcd-master/

$ make
gcc -O2 -march=native    hex2hcd.c   -o hex2hcd

$ ./hex2hcd ../BCM43142A0_001.001.011.0122.0126.hex ../BCM43142A0-0a5c-21d7.hcd
15, :020000040021D9

bump addr to 0x00210000
281, :8700000001060069999942041FC15E00000014222200001422223B02570258025802590259025A025A025B025B025C025C025D025D025E025E025F025F02600260026102610262026202630263026402640265026502660266026702670268026802690269026A026A026B281F0AFD0400FFFFFFFF400600000000A40100020A008700210000000000000003

411, :C800870041250044656C6C20576972656C657373203137303420426C7565746F6F74682076342E302B485300980100035C01000172060003000708000193040020000000920600A300C80014648F0300020202B209000000008000000000006F210002331F05CF000000AA147F8C00AA00800A9200000000140000000000006C584E6C6A3600018012000000B0000000A0000000431008045310020180000000900000006310040273100402C1000000D000000022000000320000007C0400010A00020A05001C0A200001C463

411, :C8014F0008007800320000030000C30000C0000698F83100FFFFFFFFFF7F00009CF83100FFFFFFFF083B0000A0F83100FFFFFFFF06000000A4F83100FFFFFFFF5C340000A8F83100FFFFFFFF04000000ACF83100FFFFFFFF36300000B0F83100FFFFFFFF09000000B4F83100FFFFFFFFF5330000B8F83100FFFFFFFFC5C40000C0F83100FFFFFFFF00000000C4F83100FFFFFFFF35C90000ECF83100FFFFFFFF28C9000038F93100FFFFFFFF320000003CF93100FFFFFFFF2805000040F93100FFFFFFFF1705000044F931001D

411, :C8021700FFFFFFFF0C09000048F93100FFFFFFFF300500004CF93100FFFFFFFF0C08000050F93100FFFFFFFF160700005CF93100FFFFFFFF1509000060F93100FFFFFFFF0809000064F93100FFFFFFFF170A00006CF93100FFFFFFFF9C05000070F93100FFFFFFFFED01000030FC3100FFFFFFFF6A0400005CFC3100FFFFFFFF0200000070FC3100FFFFFFFF0B09000094FC3100FFFFFFFF5E000000C0FC3100FFFFFFFF02800000C8FC3100FFFFFFFF48850000CCFC3100FFFFFFFF37450000D0FC3100FFFFFFFF2DC900001A

... TRUNCATED

27, :0860D0000000000000000000C8

43, :1063000028000000C8E00E39F0000000020303007E

11, :00000001FF

$ sudo cp -v ../BCM43142A0-0a5c-21d7.hcd /lib/firmware/brcm
‘../BCM43142A0-0a5c-21d7.hcd’ -> ‘/lib/firmware/brcm/BCM43142A0-0a5c-21d7.hcd’

UPDATE 3: After installing kernel 3.19:

$ dmesg | grep -i bluetooth
[    2.985774] Bluetooth: Core ver 2.20
[    2.985802] Bluetooth: HCI device and connection manager initialized
[    2.985806] Bluetooth: HCI socket layer initialized
[    2.985809] Bluetooth: L2CAP socket layer initialized
[    2.985816] Bluetooth: SCO socket layer initialized
[    2.992686] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    2.992689] Bluetooth: BNEP filters: protocol multicast
[    2.992694] Bluetooth: BNEP socket layer initialized
[    2.995595] Bluetooth: RFCOMM TTY layer initialized
[    2.995602] Bluetooth: RFCOMM socket layer initialized
[    2.995607] Bluetooth: RFCOMM ver 1.11
[    3.521077] Bluetooth: hci0: BCM: patching hci_ver=06 hci_rev=007e lmp_ver=06 lmp_subver=210b
[    4.056118] Bluetooth: hci0: BCM: firmware hci_ver=06 hci_rev=007e lmp_ver=06 lmp_subver=210b
  • possible duplicate of Bluetooth Broadcom 43142 isn't working on ubuntu 15.04 – Pilot6 Jul 28 '15 at 14:47
  • You need to install firmware. – Pilot6 Jul 28 '15 at 14:48
  • See the previous comment. – Pilot6 Jul 28 '15 at 14:49
  • @Pilot6: following the link you posted, which driver architecture needs to be downloaded -- only 32bit, or one that will coincide with my ubuntu (64bit)? – MrRoth Jul 28 '15 at 15:02
  • 1
    Then probably it makes sense to upgrade kernel. This specific kernel has lots of problems. Run sudo apt-get install linux-generic-lts-vivid. Firmware is already there. Just in case give cat /lib/firmware/brcm | grep 21d7 – Pilot6 Jul 28 '15 at 16:30
1

You will need to install firmware first. It can be done using this answer.

But it looks like kernel 3.13.0-59 has many bugs. Among them is inability to load the firmware.

I suggest upgrading kernel to 3.19. It can be done by running in terminal

sudo apt-get install linux-generic-lts-vivid

and reboot.

  • Our kernel hacker =) – A.B. Jul 28 '15 at 17:55
  • 1
    @A.B. I am not a hacker, but a kernel developer ;-) A beginner though. I guess the only one who participate here ;-) – Pilot6 Jul 28 '15 at 17:57
  • The 3.13 kernel might still look for firmware in /lib/firmware/ with a filename like fw-0a5c_21d7.hcd – Jeremy31 Jul 28 '15 at 20:00
  • @Jeremy31 It used to. But there is some fundamental problem with 3.13.0-59. I guess there is a simple backport error, that causes lots of troubles in different areas. 3.13.0-57 works OK. Just tested it. – Pilot6 Jul 28 '15 at 20:04
  • E: Unable to locate package linux-generic-lts-vivid On https://askubuntu.com/questions/822225/unable-to-find-a-source-package-for-linux-lts-vivid I found that linux-lts-vivid is obsolete. – Daniel Jan 5 at 22:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.