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
17
  • possible duplicate of Bluetooth Broadcom 43142 isn't working on ubuntu 15.04
    – Pilot6
    Jul 28, 2015 at 14:47
  • You need to install firmware.
    – Pilot6
    Jul 28, 2015 at 14:48
  • See the previous comment.
    – Pilot6
    Jul 28, 2015 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)?
    – Mr.
    Jul 28, 2015 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, 2015 at 16:30

1 Answer 1

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.

5
  • Our kernel hacker =)
    – A.B.
    Jul 28, 2015 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, 2015 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, 2015 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, 2015 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, 2019 at 22:33

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .