0

dmesg | grep blue

[   25.483325] bluetooth hci0: Direct firmware load for brcm/BCM20702A1-0b05-180a.hcd failed with error -2

Here is the only closely matching firmware I see on the Arch site, and it doesn't look like the correct match:

Arch Linux - bluez-firmware 1.2-8 (any) https://www.archlinux.org/packages/extra/any/bluez-firmware/ Description: Firmwares for Broadcom BCM203x and STLC2300 Bluetooth chips

More info:

lsmod | grep btusb

btusb                  40960  0
btrtl                  16384  1 btusb
btbcm                  16384  1 btusb
btintel                16384  1 btusb
bluetooth             495616  5 btrtl,btintel,btbcm,btusb
usbcore               212992  8 usbhid,usb_storage,ehci_hcd,xhci_pci,btusb,uas,xhci_hcd,ehci_pci

pacman -Qs blue*

local/bluedevil 1:5.11.5-1 (plasma)
    Integrate the Bluetooth technology within KDE workspace and applications
local/bluez 5.48-1
    Daemons for the bluetooth protocol stack
local/bluez-libs 5.48-1
    Deprecated libraries for the bluetooth protocol stack
local/bluez-qt 5.42.0-1 (kf5)
    Qt wrapper for Bluez 5 DBus API
local/bluez-utils 5.48-1
    Development and debugging utilities for the bluetooth protocol stack                                
local/libbluray 1.0.1-1                                                                                 
    Library to access Blu-Ray disks for video playback                                                  
local/sbc 1.3-1                                                                                         
    Bluetooth Subband Codec (SBC) library 

ls -la /lib/firmware/brcm

total 14396
drwxr-xr-x 1 root root   1340 Dec  9 21:15 .
drwxr-xr-x 1 root root   8630 Dec  9 21:15 ..
-rw-r--r-- 1 root root 269595 Dec  6 20:24 bcm4329-fullmac-4.bin
-rw-r--r-- 1 root root  96224 Dec  6 20:24 bcm43xx-0.fw
-rw-r--r-- 1 root root    180 Dec  6 20:24 bcm43xx_hdr-0.fw
-rw-r--r-- 1 root root 397312 Dec  6 20:24 brcmfmac43143.bin
-rw-r--r-- 1 root root 385067 Dec  6 20:24 brcmfmac43143-sdio.bin
-rw-r--r-- 1 root root 348160 Dec  6 20:24 brcmfmac43236b.bin
-rw-r--r-- 1 root root 455745 Dec  6 20:24 brcmfmac43241b0-sdio.bin
-rw-r--r-- 1 root root 403855 Dec  6 20:24 brcmfmac43241b4-sdio.bin
-rw-r--r-- 1 root root 408682 Dec  6 20:24 brcmfmac43241b5-sdio.bin
-rw-r--r-- 1 root root 479232 Dec  6 20:24 brcmfmac43242a.bin
-rw-r--r-- 1 root root 253748 Dec  6 20:24 brcmfmac4329-sdio.bin
-rw-r--r-- 1 root root 222126 Dec  6 20:24 brcmfmac4330-sdio.bin
-rw-r--r-- 1 root root 402210 Dec  6 20:24 brcmfmac43340-sdio.bin
-rw-r--r-- 1 root root 451566 Dec  6 20:24 brcmfmac4334-sdio.bin
-rw-r--r-- 1 root root 569291 Dec  6 20:24 brcmfmac4335-sdio.bin
-rw-r--r-- 1 root root 219557 Dec  6 20:24 brcmfmac43362-sdio.bin
-rw-r--r-- 1 root root 562183 Dec  6 20:24 brcmfmac4339-sdio.bin
-rw-r--r-- 1 root root 382455 Dec  6 20:24 brcmfmac43430a0-sdio.bin
-rw-r--r-- 1 root root 369577 Dec  6 20:24 brcmfmac43430-sdio.bin
-rw-r--r-- 1 root root 488193 Dec  6 20:24 brcmfmac43455-sdio.bin
-rw-r--r-- 1 root root 623304 Dec  6 20:24 brcmfmac4350c2-pcie.bin
-rw-r--r-- 1 root root 626140 Dec  6 20:24 brcmfmac4350-pcie.bin
-rw-r--r-- 1 root root 626589 Dec  6 20:24 brcmfmac4354-sdio.bin
-rw-r--r-- 1 root root 557056 Dec  6 20:24 brcmfmac43569.bin
-rw-r--r-- 1 root root 661999 Dec  6 20:24 brcmfmac4356-pcie.bin
-rw-r--r-- 1 root root 526383 Dec  6 20:24 brcmfmac4356-sdio.bin
-rw-r--r-- 1 root root 550333 Dec  6 20:24 brcmfmac43570-pcie.bin
-rw-r--r-- 1 root root 633817 Dec  6 20:24 brcmfmac4358-pcie.bin
-rw-r--r-- 1 root root 595472 Dec  6 20:24 brcmfmac43602-pcie.ap.bin
-rw-r--r-- 1 root root 635449 Dec  6 20:24 brcmfmac43602-pcie.bin
-rw-r--r-- 1 root root 989401 Dec  6 20:24 brcmfmac4366b-pcie.bin
-rw-r--r-- 1 root root 623448 Dec  6 20:24 brcmfmac4371-pcie.bin

The solution listed here sounded like it might work, but it did not. After trying it, the firmware is listed in the above directory:

-rw-r----- 1 root root  35127 Feb  5 01:26 BCM20702A1-13d3-3404.hcd

UPDATE: I found bcm20702a1-firmware in the Arch AUR here. After removing the manually installed file above, I installed the AUR package (no errors). After rebooting the issue is still not resolved.

The above directory now includes all these files:

-rw-r--r-- 1 root root  35063 Feb  5 01:39 BCM20702A1-0489-e032.hcd
-rw-r--r-- 1 root root  34904 Feb  5 01:39 BCM20702A1-0489-e042.hcd
-rw-r--r-- 1 root root  35063 Feb  5 01:39 BCM20702A1-0489-e046.hcd
-rw-r--r-- 1 root root  29101 Feb  5 01:39 BCM20702A1-0489-e047.hcd
-rw-r--r-- 1 root root  35063 Feb  5 01:39 BCM20702A1-0489-e04f.hcd
-rw-r--r-- 1 root root  35029 Feb  5 01:39 BCM20702A1-0489-e052.hcd
-rw-r--r-- 1 root root  35063 Feb  5 01:39 BCM20702A1-0489-e059.hcd
-rw-r--r-- 1 root root  35175 Feb  5 01:39 BCM20702A1-0489-e07a.hcd
-rw-r--r-- 1 root root  35063 Feb  5 01:39 BCM20702A1-0489-e087.hcd
-rw-r--r-- 1 root root  34904 Feb  5 01:39 BCM20702A1-04ca-2003.hcd
-rw-r--r-- 1 root root  35063 Feb  5 01:39 BCM20702A1-04ca-2004.hcd
-rw-r--r-- 1 root root  35108 Feb  5 01:39 BCM20702A1-04ca-2005.hcd
-rw-r--r-- 1 root root  35127 Feb  5 01:39 BCM20702A1-04ca-200a.hcd
-rw-r--r-- 1 root root  35127 Feb  5 01:39 BCM20702A1-04ca-200b.hcd
-rw-r--r-- 1 root root  35127 Feb  5 01:39 BCM20702A1-04ca-200c.hcd
-rw-r--r-- 1 root root  35063 Feb  5 01:39 BCM20702A1-04ca-200e.hcd
-rw-r--r-- 1 root root  35128 Feb  5 01:39 BCM20702A1-04ca-200f.hcd
-rw-r--r-- 1 root root  35000 Feb  5 01:39 BCM20702A1-050d-065a.hcd
-rw-r--r-- 1 root root  35027 Feb  5 01:39 BCM20702A1-0930-021e.hcd
-rw-r--r-- 1 root root  35220 Feb  5 01:39 BCM20702A1-0930-0221.hcd
-rw-r--r-- 1 root root  35175 Feb  5 01:39 BCM20702A1-0930-0223.hcd
-rw-r--r-- 1 root root  35061 Feb  5 01:39 BCM20702A1-0a5c-2169.hcd
-rw-r--r-- 1 root root  35186 Feb  5 01:39 BCM20702A1-0a5c-216b.hcd
-rw-r--r-- 1 root root  35080 Feb  5 01:39 BCM20702A1-0a5c-216f.hcd
-rw-r--r-- 1 root root  35127 Feb  5 01:39 BCM20702A1-0a5c-21de.hcd
-rw-r--r-- 1 root root  34997 Feb  5 01:39 BCM20702A1-0a5c-21e1.hcd
-rw-r--r-- 1 root root  35156 Feb  5 01:39 BCM20702A1-0a5c-21e3.hcd
-rw-r--r-- 1 root root  35042 Feb  5 01:39 BCM20702A1-0a5c-21e6.hcd
-rw-r--r-- 1 root root  35075 Feb  5 01:39 BCM20702A1-0a5c-21e8.hcd
-rw-r--r-- 1 root root  34934 Feb  5 01:39 BCM20702A1-0a5c-21ec.hcd
-rw-r--r-- 1 root root  35201 Feb  5 01:39 BCM20702A1-0a5c-21f1.hcd
-rw-r--r-- 1 root root  35201 Feb  5 01:39 BCM20702A1-0a5c-21f3.hcd
-rw-r--r-- 1 root root  35156 Feb  5 01:39 BCM20702A1-0a5c-21f4.hcd
-rw-r--r-- 1 root root  35218 Feb  5 01:39 BCM20702A1-0a5c-21fb.hcd
-rw-r--r-- 1 root root  35082 Feb  5 01:39 BCM20702A1-0a5c-21fd.hcd
-rw-r--r-- 1 root root  35156 Feb  5 01:39 BCM20702A1-0a5c-640b.hcd
-rw-r--r-- 1 root root  35063 Feb  5 01:39 BCM20702A1-0b05-17b5.hcd                                     
-rw-r--r-- 1 root root  35000 Feb  5 01:39 BCM20702A1-0b05-17cb.hcd                                     
-rw-r--r-- 1 root root  35127 Feb  5 01:39 BCM20702A1-0b05-17cf.hcd                                     
-rw-r--r-- 1 root root  35077 Feb  5 01:39 BCM20702A1-0b05-180a.hcd                                     
-rw-r--r-- 1 root root  35063 Feb  5 01:39 BCM20702A1-105b-e066.hcd                                     
-rw-r--r-- 1 root root  34906 Feb  5 01:39 BCM20702A1-13d3-3384.hcd
-rw-r--r-- 1 root root  35108 Feb  5 01:39 BCM20702A1-13d3-3392.hcd
-rw-r--r-- 1 root root  35127 Feb  5 01:39 BCM20702A1-13d3-3404.hcd
-rw-r--r-- 1 root root  35148 Feb  5 01:39 BCM20702A1-13d3-3411.hcd
-rw-r--r-- 1 root root  35082 Feb  5 01:39 BCM20702A1-13d3-3413.hcd
-rw-r--r-- 1 root root  35082 Feb  5 01:39 BCM20702A1-13d3-3418.hcd
-rw-r--r-- 1 root root  35122 Feb  5 01:39 BCM20702A1-13d3-3435.hcd
-rw-r--r-- 1 root root  35122 Feb  5 01:39 BCM20702A1-13d3-3456.hcd
-rw-r--r-- 1 root root  34954 Feb  5 01:39 BCM20702A1-145f-01a3.hcd
-rw-r--r-- 1 root root  35125 Feb  5 01:39 BCM20702A1-413c-8143.hcd
-rw-r--r-- 1 root root  35055 Feb  5 01:39 BCM20702A1-413c-8197.hcd

Note that BCM20702A1-0b05-180a.hcd exactly matches the hardware listed in my error message, so one would expect this to have solved the issue. It did not. However, the logs look better, so maybe this was one step toward a solution:

dmesg | grep -i blue

[   11.263011] Bluetooth: Core ver 2.22
[   11.263032] Bluetooth: HCI device and connection manager initialized
[   11.263035] Bluetooth: HCI socket layer initialized
[   11.263037] Bluetooth: L2CAP socket layer initialized
[   11.263041] Bluetooth: SCO socket layer initialized
[   11.411884] Bluetooth: hci0: BCM: chip id 63
[   11.412884] Bluetooth: hci0: BCM: features 0x07
[   11.428908] Bluetooth: hci0: BCM20702A
[   11.429897] Bluetooth: hci0: BCM20702A1 (001.002.014) build 0000
[   12.190957] Bluetooth: hci0: BCM20702A1 (001.002.014) build 1714
[   12.206954] Bluetooth: hci0: Bluetooth USB module

Update 2: after the last step, one more simple step solved the issue:

systemctl start bluetooth.service 
systemctl enable bluetooth.service

I'll write up an answer based on this.

0

The two updates to my question do ultimately result in a solution. However, as a more appropriate answer, I believe the solution for this exact error can be as concise as these steps:

pacaur -S bcm20702a1-firmware
sudo modprobe -R btusb
sudo modprobe btusb
systemctl start bluetooth.service 
systemctl enable bluetooth.service

I did run into one additional issue: Bluetooth file transfer failed - a2dp-source profile connect failed: Protocol not available

Device does not connect with an error in journal

If you see a message like the following in journalctl output while trying to connect to a device:

a2dp-source profile connect failed for 9C:64:40:22:E1:3F: Protocol not available

try installing pulseaudio-bluetooth and restarting pulseaudio. This error can manifest even while using only file transfer.

  • I think Broadcom (used to?) disallow unauthorized re-distribution of their firmware, so unless the author of that AUR package has received an authorization from Broadcom, s/he might be at risk of legal action. The full procedure to obtain the firmware from a Windows driver package is described here: slackwiki.com/Btfirmware-nonfree – telcoM Feb 5 '18 at 9:21

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.