Plugable USB Bluetooth Adapter: Solving HFP/HSP and A2DP Profile Issues on Linux

It has come to our attention that there are some issues on certain Linux systems with regards to using Headset Profile and Hands-Free Profile with our USB Bluetooth Adapters.

The issue stems from a lack of support for these profiles on the Broadcom BCM20702 chipset found inside our device, unless a proprietary firmware file is loaded into it to enable this functionality.

Screenshot from 2014-06-23 17:34:49

The steps to install the firmware are as follows:

Older Kernel Versions (before 3.16)

  1. Open your favorite terminal
  2. Run the following command to download the firmware file:
    wget https://s3.amazonaws.com/plugable/bin/fw-0a5c_21e8.hcd
  3. Copy the firmware file to the /lib/firmware folder:
    sudo cp fw-0a5c_21e8.hcd /lib/firmware
  4. Reboot

Newer Kernel Versions (3.16 and later)

Recent kernel versions have moved the location in which the firmware file is installed.

  1. Open your favorite terminal
  2. Run the following command to download the firmware file:
    wget https://s3.amazonaws.com/plugable/bin/fw-0a5c_21e8.hcd
  3. Create the directory /lib/firmware/brcm
  4. sudo mkdir /lib/firmware/brcm
  5. Copy the firmware file to the /lib/firmware/brcm folder and rename the file to BCM20702A0-0a5c-21e8.hcd:
    sudo mv fw-0a5c_21e8.hcd /lib/firmware/brcm/BCM20702A0-0a5c-21e8.hcd

    Note: With some kernel versions, you may have to rename the file to BCM20702A1-0a5c-21e8.hcd. Try the following if you see a message in dmesg that says: “Direct firmware load for brcm/BCM20702A1-0a5c-21e8.hcd failed with error -2”:

    sudo cp /lib/firmware/brcm/BCM20702A0-0a5c-21e8.hcd /lib/firmware/brcm/BCM20702A1-0a5c-21e8.hcd

  6. Reboot

That’s it! HFP and HSP profiles should now work without issue!

We have also heard of some reports that these steps can solve some issues with other profiles, like A2DP, but have been unable to reproduce the issues.  It is possible that newer versions of BlueZ and the Linux kernel have fixed these issues, and that is why we are not seeing them any more.

UPDATE: These steps will also fix many incompatibility issues with certain A2DP devices, such as Bluetooth Headsets and Speakers. If you are having trouble pairing your Bluetooth Audio device to your Linux PC, this firmware file will likely fix your issue.

60 comments on “Plugable USB Bluetooth Adapter: Solving HFP/HSP and A2DP Profile Issues on Linux”

  1. Luis Garcia Reply

    Awesome support from Plugable yet again. Specially Linux! I think this is the only company in the peripherals’ area that offers Linux, Mac and Windows support at the same time, unlike other ‘major’ rival companies… David vs. Goliath all over again, lol. Really nice support, specially given the fact that I have a multiboot OS system, this type of support is pristine and very valuable! Thanks folks! 🙂

  2. amblin Reply

    Just heads up. In Ubuntu 14.10, HFP/HSP profile wasn’t working correctly. I noticed this error in the logs:
    Bluetooth: hci0: BCM: patch brcm/BCM20702A0-0a5c-21e8.hcd not found
    I moved /lib/firmware/fw-0a5c_21e8.hcd into /lib/firmware/brcm/BCM20702A0-0a5c-21e8.hcd
    reloaded the btusb kernel module and everything worked as expected again.

  3. Wolf Reply

    I moved /lib/firmware/fw-0a5c_21e8.hcd into /lib/firmware/brcm/BCM20702A0-0a5c-21e8.hcd
    reloaded the btusb kernel module and everything worked as expected again.

    Can you explain this further, did you rename the original file and move it to the new directory? Where did this new hcd file come from? Also can you tell me how to reload the btusb kernel or can I just reboot? Thanks

    • Dylan Fahey Reply

      sudo mv /lib/firmware/fw-0a5c_21e8.hcd /lib/firmware/brcm/BCM20702A0-0a5c-21e8.hcd

      That will ‘move’ and ‘rename’ at the same time. I did this and worked fine after sudo reboot.
      All good as the ‘fw-0a5c_21e8.hcd’ name, does not work for a lot of different ubuntu flavors.
      You could also not rename and ‘link’ the original file instead:
      sudo ln -s /lib/firmware/fw-0a5c_21e8.hcd /lib/firmware/brcm/BCM20702A0-0a5c-21e8.hcd

      Either way will work.

  4. Greg Reply

    Can you give me the file name and placement of this installation in my system?

    my system is a Raspberry pi with rasbian os most all of the files in the brcm folder have .bin extensions not the hcd. When i downloaded the file as per instructions some of my programs broke.

    • Ivan Fossa Ferrari Ivan Fossa Ferrari Reply

      Hello Yannick,

      We have tested our adapter under Ubuntu 14.04 and found that it works very well under the distribution. Lubuntu should be no different.

      Sincerely,
      Ivan
      Plugable Technologies

  5. David H Reply

    Hello,

    Should this be done before plugging adapter into PC
    or whilst adapater it is plugged into PC… Thanks

  6. David H Reply

    Do you do this before plugging in the adapter for the first time.?
    or do it with adapter already plugged in.?

    • Ivan Fossa Ferrari Ivan Fossa Ferrari Reply

      It shouldn’t make a difference. Just place the file in the correct location, reboot, and the firmware will be in place for whenever you plug-in the Bluetooth adapter.

  7. Ken Baker Reply

    Okay I followed these steps exactly and now the computer wont recognize my bluetooth device at all. can someone tell me how to revert the change?

  8. Ivan Fossa Ferrari Ivan Fossa Ferrari Reply

    Ken,

    All you have to do to revert the change is remove the firmware file from the folder it was copied and then reboot.

    sudo rm /lib/firmware/fw-0a5c_21e8.hcd

    Sincerely,
    Ivan
    Plugable Technologies

  9. davidg Reply

    Not having any luck on Fedora 21. I’ve tried both putting the file in /lib/firmware with the name as downloaded from S3 and also into /lib/firmware/bcrm/BCM20702A0-0a5c-21e8.hcd. In the first case there is no change. I can select the HSP profile but there is no sound (via the test speaker part of the sound settings). A2DP works as expected. In the second case A2DP stops working as well. I’ve backed out to leaving fw-0a5c_21e8.hcd in /lib/firmware since it is not harming anything for now. Is there anything I can do to help troubleshoot this?

    • Ivan Fossa Ferrari Ivan Fossa Ferrari Reply

      David,

      To better help you I’d have to see your dmesg logs right after you plug in the adapter. Could you please contact us directly at support@plugable.com with that information?

      Thank you,
      Ivan
      Plugable Technologies

  10. Mike Kachline Reply

    +1 Plugable support for Linux! (Thanks Ivan!)

    On my Gentoo system, I was able to get past the dmesg kernel error:
    “hci0: BCM: patch brcm/BCM20702A0-0a5c-21e8.hcd not found”
    … by copying the downloaded .hcd file to a slightly different location…

    So, in full, the commands which worked for me were…

    cd /tmp
    wget https://s3.amazonaws.com/plugable/bin/fw-0a5c_21e8.hcd
    sudo mkdir /lib/firmware/brcm
    sudo mv fw-0a5c_21e8.hcd /lib/firmware/brcm/BCM20702A0-0a5c-21e8.hcd
    sudo /sbin/shutdown -r now

    Look at “dmesg”, and I now, no longer see the “hcd not found” but instead see….
    Bluetooth: hci0: BCM: patching hci_ver=06 hci_rev=1000 lmp_ver=06 lmp_subver=220e

    Again, this is on a gentoo system, Kernel 3.18.9-gentoo x86_64

    • Ivan Fossa Ferrari Ivan Fossa Ferrari Reply

      Thanks for the info! I’ve also noticed that the firmware location has shifted on Fedora, this is likely due to a recent kernel change. I’ll update the post.

  11. John Reply

    Hi
    I have been unable to get this adapter to work on my Thinkpad X61s with Ubuntu 14.04 LTE. Have followed instructions above – the firmware is in the right folder location with changed name but nothing appears. Is there an issue with the existing Bluetooth, which works fine but doesn’t do audio?

    Anyway, if I enter:

    sudo pactl load-module module-bluetooth-discover

    I get:
    Failure: Module initialisation failed

    dmesg is as follows (sorry, very long!):

    [ 3.152189] usb 3-1: Manufacturer: Broadcom Corp
    [ 3.154666] init: plymouth-upstart-bridge main process (184) terminated with status 1
    [ 3.154686] init: plymouth-upstart-bridge main process ended, respawning
    [ 3.392133] usb 3-2: new full-speed USB device number 3 using uhci_hcd
    [ 3.568174] usb 3-2: New USB device found, idVendor=0483, idProduct=2016
    [ 3.568181] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
    [ 3.568184] usb 3-2: Product: Biometric Coprocessor
    [ 3.568188] usb 3-2: Manufacturer: STMicroelectronics
    [ 4.156163] usb 1-4.2: new high-speed USB device number 5 using ehci-pci
    [ 4.249906] usb 1-4.2: New USB device found, idVendor=04a9, idProduct=1747
    [ 4.249911] usb 1-4.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [ 4.249915] usb 1-4.2: Product: MP495 series
    [ 4.249918] usb 1-4.2: Manufacturer: Canon
    [ 4.249921] usb 1-4.2: SerialNumber: B0E13F
    [ 4.336121] usb 1-4.4: new low-speed USB device number 6 using ehci-pci
    [ 4.432521] usb 1-4.4: New USB device found, idVendor=046d, idProduct=c016
    [ 4.432526] usb 1-4.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
    [ 4.432530] usb 1-4.4: Product: Optical USB Mouse
    [ 4.432533] usb 1-4.4: Manufacturer: Logitech
    [ 4.672085] usb 5-2: new full-speed USB device number 2 using uhci_hcd
    [ 4.850076] usb 5-2: New USB device found, idVendor=0a5c, idProduct=21e8
    [ 4.850082] usb 5-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [ 4.850086] usb 5-2: Product: BCM920702 Bluetooth 4.0
    [ 4.850089] usb 5-2: Manufacturer: Broadcom Corp
    [ 4.850092] usb 5-2: SerialNumber: 5CF3706A098E
    [ 4.948187] Adding 4116476k swap on /dev/sda5. Priority:-1 extents:1 across:4116476k FS
    [ 5.121962] random: nonblocking pool is initialized
    [ 5.173654] systemd-udevd[303]: starting version 204
    [ 5.197332] EXT4-fs (sda1): re-mounted. Opts: errors=remount-ro
    [ 5.282120] lp: driver loaded but no devices found
    [ 5.343938] parport_pc 00:06: reported by Plug and Play ACPI
    [ 5.344044] parport0: PC-style at 0x3bc, irq 7 [PCSPP,TRISTATE]
    [ 5.359319] ppdev: user-space parallel port driver
    [ 5.440407] lp0: using parport0 (interrupt-driven).
    [ 5.540276] usb 1-4.1: new high-speed USB device number 7 using ehci-pci
    [ 5.607256] shpchp: Standard Hot Plug PCI Controller Driver version: 0.4
    [ 5.644634] Bluetooth: Core ver 2.19
    [ 5.644688] NET: Registered protocol family 31
    [ 5.644691] Bluetooth: HCI device and connection manager initialized
    [ 5.644701] Bluetooth: HCI socket layer initialized
    [ 5.644705] Bluetooth: L2CAP socket layer initialized
    [ 5.644721] Bluetooth: SCO socket layer initialized
    [ 5.714989] usb 1-4.1: New USB device found, idVendor=04e8, idProduct=61b6
    [ 5.714995] usb 1-4.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [ 5.714999] usb 1-4.1: Product: Samsung M3 Portable
    [ 5.715003] usb 1-4.1: Manufacturer: Samsung M3 Portable
    [ 5.715006] usb 1-4.1: SerialNumber: 56877DF415000040
    [ 5.718072] audit: type=1400 audit(1433183346.368:2): apparmor=”STATUS” operation=”profile_load” profile=”unconfined” name=”/sbin/dhclient” pid=452 comm=”apparmor_parser”
    [ 5.718082] audit: type=1400 audit(1433183346.368:3): apparmor=”STATUS” operation=”profile_load” profile=”unconfined” name=”/usr/lib/NetworkManager/nm-dhcp-client.action” pid=452 comm=”apparmor_parser”
    [ 5.718090] audit: type=1400 audit(1433183346.368:4): apparmor=”STATUS” operation=”profile_load” profile=”unconfined” name=”/usr/lib/connman/scripts/dhclient-script” pid=452 comm=”apparmor_parser”
    [ 5.718781] audit: type=1400 audit(1433183346.368:5): apparmor=”STATUS” operation=”profile_replace” profile=”unconfined” name=”/usr/lib/NetworkManager/nm-dhcp-client.action” pid=452 comm=”apparmor_parser”
    [ 5.718790] audit: type=1400 audit(1433183346.368:6): apparmor=”STATUS” operation=”profile_replace” profile=”unconfined” name=”/usr/lib/connman/scripts/dhclient-script” pid=452 comm=”apparmor_parser”
    [ 5.719153] audit: type=1400 audit(1433183346.368:7): apparmor=”STATUS” operation=”profile_replace” profile=”unconfined” name=”/usr/lib/connman/scripts/dhclient-script” pid=452 comm=”apparmor_parser”
    [ 5.752231] cfg80211: Calling CRDA to update world regulatory domain
    [ 5.752783] snd_hda_intel 0000:00:1b.0: probe_mask set to 0x1 for device 17aa:20ac
    [ 5.752840] snd_hda_intel 0000:00:1b.0: irq 44 for MSI/MSI-X
    [ 5.753145] [drm] Initialized drm 1.1.0 20060810
    [ 5.800857] usbcore: registered new interface driver btusb
    [ 5.801659] bluetooth hci1: Direct firmware load failed with error -2
    [ 5.801663] bluetooth hci1: Falling back to user helper
    [ 5.848430] ACPI Warning: SystemIO range 0x0000000000001028-0x000000000000102f conflicts with OpRegion 0x0000000000001000-0x000000000000107f (\_SB_.PCI0.LPC_.PMIO) (20140424/utaddress-258)
    [ 5.848442] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
    [ 5.848447] ACPI Warning: SystemIO range 0x00000000000011b0-0x00000000000011bf conflicts with OpRegion 0x0000000000001180-0x00000000000011bf (\_SB_.PCI0.LPC_.LPIO) (20140424/utaddress-258)
    [ 5.848454] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
    [ 5.848456] ACPI Warning: SystemIO range 0x0000000000001180-0x00000000000011af conflicts with OpRegion 0x0000000000001180-0x00000000000011bf (\_SB_.PCI0.LPC_.LPIO) (20140424/utaddress-258)
    [ 5.848462] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
    [ 5.848464] lpc_ich: Resource conflict(s) found affecting gpio_ich
    [ 5.873493] Non-volatile memory driver v1.3
    [ 5.877770] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
    [ 5.877774] Bluetooth: BNEP filters: protocol multicast
    [ 5.877786] Bluetooth: BNEP socket layer initialized
    [ 5.879360] thinkpad_acpi: ThinkPad ACPI Extras v0.25
    [ 5.879364] thinkpad_acpi: http://ibm-acpi.sf.net/
    [ 5.879367] thinkpad_acpi: ThinkPad BIOS 7NETB3WW (2.13 ), EC 7MHT25WW-1.03
    [ 5.879369] thinkpad_acpi: Lenovo ThinkPad X61s, model 766634G
    [ 5.908409] hidraw: raw HID events driver (C) Jiri Kosina
    [ 5.914720] yenta_cardbus 0000:05:00.0: CardBus bridge found [17aa:20c6]
    [ 5.921120] Bluetooth: RFCOMM TTY layer initialized
    [ 5.921136] Bluetooth: RFCOMM socket layer initialized
    [ 5.921144] Bluetooth: RFCOMM ver 1.11
    [ 5.932209] thinkpad_acpi: detected a 16-level brightness capable ThinkPad
    [ 5.934983] thinkpad_acpi: radio switch found; radios are enabled
    [ 5.938477] thinkpad_acpi: This ThinkPad has standard ACPI backlight brightness control, supported by the ACPI video driver
    [ 5.938481] thinkpad_acpi: Disabling thinkpad-acpi brightness events by default…
    [ 5.947485] WARNING! power/level is deprecated; use power/control instead
    [ 5.982336] thinkpad_acpi: rfkill switch tpacpi_bluetooth_sw: radio is unblocked
    [ 5.989279] usbcore: registered new interface driver usbhid
    [ 5.989284] usbhid: USB HID core driver
    [ 5.990360] [drm] Memory usable by graphics device = 512M
    [ 5.990366] checking generic (e0000000 300000) vs hw (e0000000 10000000)
    [ 5.990369] fb: switching to inteldrmfb from VESA VGA
    [ 5.990428] Console: switching to colour dummy device 80×25
    [ 5.991572] [drm] Replacing VGA console driver
    [ 5.992696] thinkpad_acpi: Standard ACPI backlight interface available, not loading native one
    [ 5.993007] thinkpad_acpi: Console audio control enabled, mode: monitor (read only)
    [ 6.001109] audit: type=1400 audit(1433183346.652:8): apparmor=”STATUS” operation=”profile_load” profile=”unconfined” name=”/usr/lib/cups/backend/cups-pdf” pid=526 comm=”apparmor_parser”
    [ 6.001121] audit: type=1400 audit(1433183346.652:9): apparmor=”STATUS” operation=”profile_load” profile=”unconfined” name=”/usr/sbin/cupsd” pid=526 comm=”apparmor_parser”
    [ 6.002029] audit: type=1400 audit(1433183346.652:10): apparmor=”STATUS” operation=”profile_replace” profile=”unconfined” name=”/usr/sbin/cupsd” pid=526 comm=”apparmor_parser”
    [ 6.014778] iwl4965: Intel(R) Wireless WiFi 4965 driver for Linux, in-tree:
    [ 6.014783] iwl4965: Copyright(c) 2003-2011 Intel Corporation
    [ 6.014858] iwl4965 0000:03:00.0: can’t disable ASPM; OS doesn’t have ASPM control
    [ 6.016713] iwl4965 0000:03:00.0: Detected Intel(R) Wireless WiFi Link 4965AGN, REV=0x4
    [ 6.059462] iwl4965 0000:03:00.0: device EEPROM VER=0x36, CALIB=0x5
    [ 6.061501] yenta_cardbus 0000:05:00.0: ISA IRQ mask 0x0c38, PCI irq 16
    [ 6.061507] yenta_cardbus 0000:05:00.0: Socket status: 30000006
    [ 6.061515] yenta_cardbus 0000:05:00.0: pcmcia: parent PCI bridge window: [io 0x4000-0x7fff]
    [ 6.061520] yenta_cardbus 0000:05:00.0: pcmcia: parent PCI bridge window: [mem 0xd4000000-0xd7efffff]
    [ 6.061524] pcmcia_socket pcmcia_socket0: cs: memory probe 0xd4000000-0xd7efffff:
    [ 6.061534] excluding 0xd7b10000-0xd7efffff
    [ 6.061540] yenta_cardbus 0000:05:00.0: pcmcia: parent PCI bridge window: [mem 0xd8000000-0xdbffffff 64bit pref]
    [ 6.061544] pcmcia_socket pcmcia_socket0: cs: memory probe 0xd8000000-0xdbffffff:
    [ 6.061550] excluding 0xd8000000-0xdbffffff
    [ 6.065412] input: ThinkPad Extra Buttons as /devices/platform/thinkpad_acpi/input/input6
    [ 6.066404] iwl4965 0000:03:00.0: Tunable channels: 13 802.11bg, 19 802.11a channels
    [ 6.066537] iwl4965 0000:03:00.0: irq 45 for MSI/MSI-X
    [ 6.074647] iwl4965 0000:03:00.0: loaded firmware version 228.61.2.24
    [ 6.088455] i915 0000:00:02.0: irq 46 for MSI/MSI-X
    [ 6.088471] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
    [ 6.088473] [drm] Driver supports precise vblank timestamp query.
    [ 6.088567] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem
    [ 6.141390] ieee80211 phy0: Selected rate control algorithm ‘iwl-4965-rs’
    [ 6.164581] sound hdaudioC0D0: autoconfig: line_outs=1 (0x12/0x0/0x0/0x0/0x0) type:speaker
    [ 6.164587] sound hdaudioC0D0: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
    [ 6.164591] sound hdaudioC0D0: hp_outs=1 (0x11/0x0/0x0/0x0/0x0)
    [ 6.164594] sound hdaudioC0D0: mono: mono_out=0x0
    [ 6.164597] sound hdaudioC0D0: inputs:
    [ 6.164601] sound hdaudioC0D0: Internal Mic=0x15
    [ 6.164604] sound hdaudioC0D0: Dock Mic=0x1c
    [ 6.164607] sound hdaudioC0D0: Mic=0x14
    [ 6.172024] input: HDA Intel Dock Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input7
    [ 6.172202] input: HDA Intel Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input8
    [ 6.172376] input: HDA Intel Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card0/input9
    [ 6.189185] [drm] initialized overlay support
    [ 6.261791] init: cups main process (527) killed by HUP signal
    [ 6.261810] init: cups main process ended, respawning
    [ 6.359454] fbcon: inteldrmfb (fb0) is primary device
    [ 6.359527] Console: switching to colour frame buffer device 128×48
    [ 6.359566] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device
    [ 6.359570] i915 0000:00:02.0: registered panic notifier
    [ 6.388790] ACPI: Video Device [VID] (multi-head: yes rom: no post: no)
    [ 6.395261] acpi device:01: registered as cooling_device2
    [ 6.397618] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input10
    [ 6.399839] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0
    [ 6.628630] Bluetooth: hci1: BCM: patch brcm/BCM920702 Bluetooth 4.0-0a5c-21e8.hcd not found
    [ 6.667465] init: failsafe main process (600) killed by TERM signal
    [ 6.704184] input: Logitech Optical USB Mouse as /devices/pci0000:00/0000:00:1a.7/usb1/1-4/1-4.4/1-4.4:1.0/0003:046D:C016.0001/input/input11
    [ 6.712568] usb-storage 1-4.1:1.0: USB Mass Storage device detected
    [ 6.712786] cfg80211: World regulatory domain updated:
    [ 6.712790] cfg80211: DFS Master region: unset
    [ 6.712792] cfg80211: (start_freq – end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
    [ 6.712797] cfg80211: (2402000 KHz – 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 6.712800] cfg80211: (2457000 KHz – 2482000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 6.712804] cfg80211: (2474000 KHz – 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 6.712807] cfg80211: (5170000 KHz – 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 6.712810] cfg80211: (5735000 KHz – 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 6.714223] hid-generic 0003:046D:C016.0001: input,hidraw0: USB HID v1.10 Mouse [Logitech Optical USB Mouse] on usb-0000:00:1a.7-4.4/input0
    [ 6.714683] scsi5 : usb-storage 1-4.1:1.0
    [ 6.714825] usbcore: registered new interface driver usb-storage
    [ 6.720601] usbcore: registered new interface driver uas
    [ 6.782046] pcmcia_socket pcmcia_socket0: cs: memory probe 0x0c0000-0x0fffff:
    [ 6.782058] excluding 0xc0000-0xd3fff 0xe0000-0xfffff
    [ 6.782091] pcmcia_socket pcmcia_socket0: cs: memory probe 0xa0000000-0xa0ffffff:
    [ 6.782105] excluding 0xa0000000-0xa0ffffff
    [ 6.782127] pcmcia_socket pcmcia_socket0: cs: memory probe 0x60000000-0x60ffffff:
    [ 6.782141] excluding 0x60000000-0x60ffffff
    [ 6.981740] audit: type=1400 audit(1433183347.632:11): apparmor=”STATUS” operation=”profile_replace” profile=”unconfined” name=”/sbin/dhclient” pid=773 comm=”apparmor_parser”
    [ 6.981754] audit: type=1400 audit(1433183347.632:12): apparmor=”STATUS” operation=”profile_replace” profile=”unconfined” name=”/usr/lib/NetworkManager/nm-dhcp-client.action” pid=773 comm=”apparmor_parser”
    [ 6.981763] audit: type=1400 audit(1433183347.632:13): apparmor=”STATUS” operation=”profile_replace” profile=”unconfined” name=”/usr/lib/connman/scripts/dhclient-script” pid=773 comm=”apparmor_parser”
    [ 6.982461] audit: type=1400 audit(1433183347.632:14): apparmor=”STATUS” operation=”profile_replace” profile=”unconfined” name=”/usr/lib/NetworkManager/nm-dhcp-client.action” pid=773 comm=”apparmor_parser”
    [ 6.982469] audit: type=1400 audit(1433183347.632:15): apparmor=”STATUS” operation=”profile_replace” profile=”unconfined” name=”/usr/lib/connman/scripts/dhclient-script” pid=773 comm=”apparmor_parser”
    [ 6.982834] audit: type=1400 audit(1433183347.632:16): apparmor=”STATUS” operation=”profile_replace” profile=”unconfined” name=”/usr/lib/connman/scripts/dhclient-script” pid=773 comm=”apparmor_parser”
    [ 6.985679] audit: type=1400 audit(1433183347.636:17): apparmor=”STATUS” operation=”profile_load” profile=”unconfined” name=”/usr/lib/lightdm/lightdm-guest-session” pid=772 comm=”apparmor_parser”
    [ 7.359568] usblp 1-4.2:1.1: usblp0: USB Bidirectional printer dev 5 if 1 alt 0 proto 2 vid 0x04A9 pid 0x1747
    [ 7.359680] usbcore: registered new interface driver usblp
    [ 7.496338] e1000e 0000:00:19.0: irq 42 for MSI/MSI-X
    [ 7.600124] e1000e 0000:00:19.0: irq 42 for MSI/MSI-X
    [ 7.600295] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
    [ 7.712515] scsi 5:0:0:0: Direct-Access Samsung M3 Portable 1301 PQ: 0 ANSI: 6
    [ 7.716792] sd 5:0:0:0: Attached scsi generic sg2 type 0
    [ 7.725855] sd 5:0:0:0: [sdb] 1953525168 512-byte logical blocks: (1.00 TB/931 GiB)
    [ 7.726899] sd 5:0:0:0: [sdb] Write Protect is off
    [ 7.726905] sd 5:0:0:0: [sdb] Mode Sense: 33 00 00 08
    [ 7.728036] sd 5:0:0:0: [sdb] No Caching mode page found
    [ 7.728042] sd 5:0:0:0: [sdb] Assuming drive cache: write through
    [ 7.753438] sdb: sdb1
    [ 7.792378] sd 5:0:0:0: [sdb] Attached SCSI disk
    [ 7.845749] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
    [ 8.654872] init: plymouth-upstart-bridge main process ended, respawning
    [ 8.666173] init: plymouth-upstart-bridge main process (1123) terminated with status 1
    [ 8.666196] init: plymouth-upstart-bridge main process ended, respawning
    [ 9.725611] e1000e: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
    [ 9.725766] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
    [ 12.270170] wlan0: authenticate with 08:60:6e:21:7b:38
    [ 12.287697] wlan0: send auth to 08:60:6e:21:7b:38 (try 1/3)
    [ 12.289763] wlan0: authenticated
    [ 12.292484] wlan0: associate with 08:60:6e:21:7b:38 (try 1/3)
    [ 12.296345] wlan0: RX AssocResp from 08:60:6e:21:7b:38 (capab=0x411 status=0 aid=2)
    [ 12.324914] wlan0: associated
    [ 12.324977] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
    [ 12.581254] wlan0: deauthenticating from 08:60:6e:21:7b:38 by local choice (Reason: 2=PREV_AUTH_NOT_VALID)
    [ 12.627631] wlan0: authenticate with 08:60:6e:21:7b:38
    [ 12.646029] wlan0: send auth to 08:60:6e:21:7b:38 (try 1/3)
    [ 12.646572] cfg80211: Calling CRDA to update world regulatory domain
    [ 12.648049] wlan0: authenticated
    [ 12.649662] cfg80211: World regulatory domain updated:
    [ 12.649666] cfg80211: DFS Master region: unset
    [ 12.649669] cfg80211: (start_freq – end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
    [ 12.649673] cfg80211: (2402000 KHz – 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 12.649676] cfg80211: (2457000 KHz – 2482000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 12.649679] cfg80211: (2474000 KHz – 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 12.649682] cfg80211: (5170000 KHz – 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 12.649685] cfg80211: (5735000 KHz – 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 12.652062] wlan0: associate with 08:60:6e:21:7b:38 (try 1/3)
    [ 12.655810] wlan0: RX AssocResp from 08:60:6e:21:7b:38 (capab=0x411 status=0 aid=2)
    [ 12.680581] wlan0: associated
    [ 36.098956] audit_printk_skb: 132 callbacks suppressed
    [ 36.098961] audit: type=1400 audit(1433183376.747:62): apparmor=”STATUS” operation=”profile_replace” profile=”unconfined” name=”/usr/lib/cups/backend/cups-pdf” pid=1753 comm=”apparmor_parser”
    [ 36.098973] audit: type=1400 audit(1433183376.747:63): apparmor=”STATUS” operation=”profile_replace” profile=”unconfined” name=”/usr/sbin/cupsd” pid=1753 comm=”apparmor_parser”
    [ 36.099594] audit: type=1400 audit(1433183376.747:64): apparmor=”STATUS” operation=”profile_replace” profile=”unconfined” name=”/usr/sbin/cupsd” pid=1753 comm=”apparmor_parser”
    [ 76.938692] wlan0: authenticate with 78:ca:39:48:86:45
    [ 76.948659] wlan0: send auth to 78:ca:39:48:86:45 (try 1/3)
    [ 76.951116] wlan0: authenticated
    [ 76.951251] cfg80211: Calling CRDA to update world regulatory domain
    [ 76.956083] wlan0: associate with 78:ca:39:48:86:45 (try 1/3)
    [ 76.958623] cfg80211: World regulatory domain updated:
    [ 76.958632] cfg80211: DFS Master region: unset
    [ 76.958636] cfg80211: (start_freq – end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
    [ 76.958645] cfg80211: (2402000 KHz – 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 76.958652] cfg80211: (2457000 KHz – 2482000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 76.958659] cfg80211: (2474000 KHz – 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 76.958666] cfg80211: (5170000 KHz – 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 76.958672] cfg80211: (5735000 KHz – 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 76.961469] wlan0: RX AssocResp from 78:ca:39:48:86:45 (capab=0x431 status=0 aid=1)
    [ 76.989490] wlan0: associated
    [ 76.989695] cfg80211: Calling CRDA for country: GB
    [ 76.995947] cfg80211: Regulatory domain changed to country: GB
    [ 76.995956] cfg80211: DFS Master region: unset
    [ 76.995961] cfg80211: (start_freq – end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
    [ 76.995969] cfg80211: (2402000 KHz – 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
    [ 76.995976] cfg80211: (5170000 KHz – 5250000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
    [ 76.995982] cfg80211: (5250000 KHz – 5330000 KHz @ 40000 KHz), (N/A, 2000 mBm), (0 s)
    [ 76.995989] cfg80211: (5490000 KHz – 5710000 KHz @ 40000 KHz), (N/A, 2700 mBm), (0 s)
    [ 76.995995] cfg80211: (57240000 KHz – 65880000 KHz @ 2160000 KHz), (N/A, 4000 mBm), (N/A)
    [ 223.074467] wlan0: authenticate with 08:60:6e:21:7b:38
    [ 223.085293] wlan0: send auth to 08:60:6e:21:7b:38 (try 1/3)
    [ 223.085420] cfg80211: Calling CRDA to update world regulatory domain
    [ 223.089965] wlan0: authenticated
    [ 223.096580] wlan0: associate with 08:60:6e:21:7b:38 (try 1/3)
    [ 223.097478] cfg80211: World regulatory domain updated:
    [ 223.097486] cfg80211: DFS Master region: unset
    [ 223.097490] cfg80211: (start_freq – end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
    [ 223.097499] cfg80211: (2402000 KHz – 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 223.097507] cfg80211: (2457000 KHz – 2482000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 223.097514] cfg80211: (2474000 KHz – 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 223.097520] cfg80211: (5170000 KHz – 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 223.097527] cfg80211: (5735000 KHz – 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 223.114556] wlan0: RX AssocResp from 08:60:6e:21:7b:38 (capab=0x411 status=0 aid=2)
    [ 223.136534] wlan0: associated
    [ 1272.332729] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
    [ 1272.332742] Bluetooth: HIDP socket layer initialized
    [ 1272.337617] apple 0005:05AC:0256.0002: unknown main item tag 0x0
    [ 1272.366731] input: Apple Wireless Keyboard as /devices/pci0000:00/0000:00:1a.0/usb3/3-1/3-1:1.0/bluetooth/hci0/hci0:11/0005:05AC:0256.0002/input/input12
    [ 1272.367183] apple 0005:05AC:0256.0002: input,hidraw1: BLUETOOTH HID v0.50 Keyboard [Apple Wireless Keyboard] on 00:1f:e1:ee:0b:db
    [ 3915.205155] perf interrupt took too long (2513 > 2500), lowering kernel.perf_event_max_sample_rate to 50000
    [ 4046.004582] wlan0: authenticate with 78:ca:39:48:86:45
    [ 4046.023001] wlan0: send auth to 78:ca:39:48:86:45 (try 1/3)
    [ 4046.025318] cfg80211: Calling CRDA to update world regulatory domain
    [ 4046.025333] wlan0: authenticated
    [ 4046.032602] cfg80211: World regulatory domain updated:
    [ 4046.032611] cfg80211: DFS Master region: unset
    [ 4046.032616] cfg80211: (start_freq – end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
    [ 4046.032625] cfg80211: (2402000 KHz – 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 4046.032633] cfg80211: (2457000 KHz – 2482000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 4046.032640] cfg80211: (2474000 KHz – 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 4046.032646] cfg80211: (5170000 KHz – 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 4046.032653] cfg80211: (5735000 KHz – 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 4046.040118] wlan0: associate with 78:ca:39:48:86:45 (try 1/3)
    [ 4046.048260] wlan0: RX AssocResp from 78:ca:39:48:86:45 (capab=0x431 status=0 aid=1)
    [ 4046.079844] wlan0: associated
    [ 4046.079924] cfg80211: Calling CRDA for country: GB
    [ 4046.085065] cfg80211: Regulatory domain changed to country: GB
    [ 4046.085070] cfg80211: DFS Master region: unset
    [ 4046.085073] cfg80211: (start_freq – end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
    [ 4046.085077] cfg80211: (2402000 KHz – 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
    [ 4046.085080] cfg80211: (5170000 KHz – 5250000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
    [ 4046.085084] cfg80211: (5250000 KHz – 5330000 KHz @ 40000 KHz), (N/A, 2000 mBm), (0 s)
    [ 4046.085087] cfg80211: (5490000 KHz – 5710000 KHz @ 40000 KHz), (N/A, 2700 mBm), (0 s)
    [ 4046.085090] cfg80211: (57240000 KHz – 65880000 KHz @ 2160000 KHz), (N/A, 4000 mBm), (N/A)
    [ 4165.899976] wlan0: authenticate with 08:60:6e:21:7b:38
    [ 4165.909156] wlan0: send auth to 08:60:6e:21:7b:38 (try 1/3)
    [ 4165.911360] cfg80211: Calling CRDA to update world regulatory domain
    [ 4165.912618] wlan0: authenticated
    [ 4165.920004] cfg80211: World regulatory domain updated:
    [ 4165.920051] cfg80211: DFS Master region: unset
    [ 4165.920054] cfg80211: (start_freq – end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
    [ 4165.920064] cfg80211: (2402000 KHz – 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 4165.920068] cfg80211: (2457000 KHz – 2482000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 4165.920072] cfg80211: (2474000 KHz – 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 4165.920075] cfg80211: (5170000 KHz – 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 4165.920078] cfg80211: (5735000 KHz – 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 4165.920094] wlan0: associate with 08:60:6e:21:7b:38 (try 1/3)
    [ 4165.923839] wlan0: RX AssocResp from 08:60:6e:21:7b:38 (capab=0x411 status=0 aid=2)
    [ 4165.954012] wlan0: associated
    [ 6505.017626] init: bluetooth main process ended, respawning
    [ 6528.626903] apple 0005:05AC:0256.0003: unknown main item tag 0x0
    [ 6528.678556] input: Apple Wireless Keyboard as /devices/pci0000:00/0000:00:1a.0/usb3/3-1/3-1:1.0/bluetooth/hci0/hci0:11/0005:05AC:0256.0003/input/input13
    [ 6528.678875] apple 0005:05AC:0256.0003: input,hidraw1: BLUETOOTH HID v0.50 Keyboard [Apple Wireless Keyboard] on 00:1f:e1:ee:0b:db
    [ 7406.022401] wlan0: authenticate with 08:60:6e:21:7b:3c
    [ 7406.022421] wlan0: capabilities/regulatory prevented using AP HT/VHT configuration, downgraded
    [ 7406.031442] wlan0: send auth to 08:60:6e:21:7b:3c (try 1/3)
    [ 7406.031703] cfg80211: Calling CRDA to update world regulatory domain
    [ 7406.034042] wlan0: authenticated
    [ 7406.042487] cfg80211: World regulatory domain updated:
    [ 7406.042492] cfg80211: DFS Master region: unset
    [ 7406.042495] cfg80211: (start_freq – end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
    [ 7406.042499] cfg80211: (2402000 KHz – 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 7406.042503] cfg80211: (2457000 KHz – 2482000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 7406.042506] cfg80211: (2474000 KHz – 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 7406.042510] cfg80211: (5170000 KHz – 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 7406.042513] cfg80211: (5735000 KHz – 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 7406.042825] wlan0: waiting for beacon from 08:60:6e:21:7b:3c
    [ 7406.124081] wlan0: associate with 08:60:6e:21:7b:3c (try 1/3)
    [ 7406.125292] wlan0: RX AssocResp from 08:60:6e:21:7b:3c (capab=0x11 status=0 aid=1)
    [ 7406.149941] wlan0: associated
    [ 7525.966447] wlan0: authenticate with 08:60:6e:21:7b:38
    [ 7525.978366] wlan0: direct probe to 08:60:6e:21:7b:38 (try 1/3)
    [ 7525.979708] cfg80211: Calling CRDA to update world regulatory domain
    [ 7525.984083] cfg80211: World regulatory domain updated:
    [ 7525.984089] cfg80211: DFS Master region: unset
    [ 7525.984091] cfg80211: (start_freq – end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
    [ 7525.984096] cfg80211: (2402000 KHz – 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 7525.984100] cfg80211: (2457000 KHz – 2482000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 7525.984103] cfg80211: (2474000 KHz – 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 7525.984107] cfg80211: (5170000 KHz – 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 7525.984110] cfg80211: (5735000 KHz – 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm), (N/A)
    [ 7526.180082] wlan0: send auth to 08:60:6e:21:7b:38 (try 2/3)
    [ 7526.181962] wlan0: authenticated
    [ 7526.184101] wlan0: associate with 08:60:6e:21:7b:38 (try 1/3)
    [ 7526.188133] wlan0: RX AssocResp from 08:60:6e:21:7b:38 (capab=0x411 status=0 aid=2)
    [ 7526.212134] wlan0: associated
    [ 7607.552302] usb 3-1: USB disconnect, device number 2
    [ 7754.528123] usb 3-1: new full-speed USB device number 4 using uhci_hcd
    [ 7754.695537] usb 3-1: New USB device found, idVendor=0a5c, idProduct=2110
    [ 7754.695545] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
    [ 7754.695551] usb 3-1: Product: BCM2045B
    [ 7754.695556] usb 3-1: Manufacturer: Broadcom Corp
    [ 7759.144076] apple 0005:05AC:0256.0004: unknown main item tag 0x0
    [ 7759.182725] input: Apple Wireless Keyboard as /devices/pci0000:00/0000:00:1a.0/usb3/3-1/3-1:1.0/bluetooth/hci0/hci0:11/0005:05AC:0256.0004/input/input14
    [ 7759.182902] apple 0005:05AC:0256.0004: input,hidraw1: BLUETOOTH HID v0.50 Keyboard [Apple Wireless Keyboard] on 00:1f:e1:ee:0b:db
    [ 7779.713786] perf interrupt took too long (5003 > 5000), lowering kernel.perf_event_max_sample_rate to 25000
    john@john-ThinkPad-X61s:~$

  12. HugoC Reply

    Hello! Debian user here.

    Until yesterday I was using wheezy (kernel 3.2), and the bluetooth worked right out of the box, didn’t even have to download the firmware. But today I shifted to jessie (kernel 3.16) and bluetooth stopped working. I get the same error messages when I plug the adapter in:

    [ 621.388082] usb 1-1: USB disconnect, device number 5
    [ 626.989784] usbcore: registered new interface driver btusb
    [ 635.764027] usb 1-1: new full-speed USB device number 6 using uhci_hcd
    [ 635.937476] usb 1-1: New USB device found, idVendor=0a5c, idProduct=21e8
    [ 635.937480] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [ 635.937484] usb 1-1: Product: BCM20702A0
    [ 635.937487] usb 1-1: Manufacturer: Broadcom Corp
    [ 635.937489] usb 1-1: SerialNumber: 000272C95F33
    [ 635.943100] bluetooth hci0: firmware: failed to load brcm/BCM20702A0-0a5c-21e8.hcd (-2)
    [ 635.943106] bluetooth hci0: Direct firmware load failed with error -2
    [ 635.943109] bluetooth hci0: Falling back to user helper
    [ 635.944387] Bluetooth: hci0: BCM: patch brcm/BCM20702A0-0a5c-21e8.hcd not found

    Downloaded the firmware, copy it to both /lib/firmware, /lib/firmware/brcm, renamed both copies to “BCM20702A0-*” instead of “fw-*”, all to no avail. Yep, I rebooted every time. The error still shows up.

  13. Hugoc Reply

    Hello, it seems my comment did not pass moderation. Strange, didn’t look like spam to me…

    I wanted to let you know that this adapter works fine on Debian Wheezy (kernel 3.2) but doesn’t work on Debian Jessie (kernel 3.16, both i386 and amd64). You plug in the adapter, dmesg returns something like this:

    [ 2809.020038] usb 1-1: new full-speed USB device number 3 using uhci_hcd
    [ 2809.194590] usb 1-1: New USB device found, idVendor=0a5c, idProduct=21e8
    [ 2809.194596] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [ 2809.194599] usb 1-1: Product: BCM20702A0
    [ 2809.194602] usb 1-1: Manufacturer: Broadcom Corp
    [ 2809.194605] usb 1-1: SerialNumber: 000272C95F33
    [ 2809.273347] Bluetooth: Core ver 2.19
    [ 2809.273562] NET: Registered protocol family 31
    [ 2809.273564] Bluetooth: HCI device and connection manager initialized
    [ 2809.273572] Bluetooth: HCI socket layer initialized
    [ 2809.273574] Bluetooth: L2CAP socket layer initialized
    [ 2809.273683] Bluetooth: SCO socket layer initialized
    [ 2809.294578] usbcore: registered new interface driver btusb
    [ 2809.318816] bluetooth hci0: firmware: failed to load brcm/BCM20702A0-0a5c-21e8.hcd (-2)
    [ 2809.318823] bluetooth hci0: Direct firmware load failed with error -2
    [ 2809.318826] bluetooth hci0: Falling back to user helper
    [ 2809.319362] Bluetooth: hci0: BCM: patch brcm/BCM20702A0-0a5c-21e8.hcd not found
    [ 2810.425925] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
    [ 2810.425928] Bluetooth: BNEP filters: protocol multicast
    [ 2810.425938] Bluetooth: BNEP socket layer initialized

    AFAIK Debian jessie does not install this adapter’s firmware, not even with “apt-get install firmware-linux-nonfree”. So I tried to follow the instructions here: got the firmware, copy it on these locations:
    * /lib/firmware/BCM20702A0-0a5c_21e8.hcd
    * /lib/firmware/brcm/BCM20702A0-0a5c_21e8.hcd
    * /lib/firmware/fw-0a5c_21e8.hcd
    * /lib/firmware/brcm/fw-0a5c_21e8.hcd
    The same file, copied four times to four different locations. Still got the “firmware not found” error.

    • mfraz Reply

      I was experiencing the same problem as you after upgrading to Kubuntu 15.04, I eventually solved it by renaming the file BCM920702 Bluetooth 4.0-0a5c-21e8.hcd and putting it in /lib/firmware/brcm/. Note that you have to include the spaces escaped with ‘\’.

  14. Alirio Lancheros Reply

    Wao! I had no hopes but you have saved me! Thanks guys for your solution. Now it really works! Settings > Sound > Input tab keeps inactivated but if the option Telephony Duplex (HSP/HFP) is selected at the Output tab, the microphone works great.

    I have noticed this:
    1. The option Settings > Sound > Output > Telephony Duplex (HSP/HFP) must be selected just when the microphone is required; e.g. for skype, hangouts, etc. Music sounds really bad in this option.
    2. The option Settings > Sound > Output > Telephony Duplex (HSP/HFP) must be selected for playing music. Music sound really cool in this option but the microphone does not work.

  15. Clem Reply

    In my case the plugable hardware says:

    [183755.087720] usb 2-3.1: Product: BCM20702A0
    [183755.087723] usb 2-3.1: Manufacturer: Broadcom Corp

    But the hardware is actually a different stepping: BCM20702A1

    So the kernel looking for:
    brcm/BCM20702A1-0a5c-21e8.hcd

    I tried pulling down:
    http://download.windowsupdate.com/d/msdownload/update/driver/drvs/2014/07/20662520_6c535fbfa9dca0d07ab069e8918896086e2af0a7.cab

    Extracting the hex files from the cab and converting the hex file to hcd.

    But I wasn’t able to find firmware that would work.

    The plugable driver is build 1338, I’m not sure what the two ‘version number-like’ fields correspond to, the .cab file has 49 different firmware files for the A1.

    I tested against BCM20702A1_001.002.014.1443.1572.hex and a few others, any ideas which would be a good one to try.

    Using the A0 firmware on the A1 seems to work somewhat, but I’m not sure if my problems are firmware related or something else.

  16. amblin Reply

    Just updated to Ubuntu 15.10 and my hfp/hsp profile wasn’t working again.
    “dmesg | grep -i firmware” Revealed that the driver name has changed again.
    “bluetooth hci0: Direct firmware load for brcm/BCM20702A1-0a5c-21e8.hcd failed with error -2”

    You’ll want to rename or move your to “/lib/firmware/brcm/BCM20702A1-0a5c-21e8.hcd” and reboot.

    • Carlos Roque Reply

      Thanks for this. Mine was using a totally different name. I used dmesg | grep -i firmware and changed the name to the same the system was looking for. In my case it was ‘BCM920702 Bluetooth 4.0-0a5c-21e8.hcd ‘

    • LitusKeuken Reply

      I confirm this also happened to me in Ubuntu 15.10. Thanks for spotting it amblin!!

  17. arnold Reply

    Thought I would experiment with a new operating system. Linux Mint 17.3. Not tried linux before so new to the whole thing. Wanted to stream music from the laptop. Very pleased with this little bluetooth adapter plugable usb-bt4le. Product turned up. Faffed around not knowing what to do, then found the instructions for kernals 3.18 and newer above. All working fine now. Super.

    • Ru Reply

      Hello Dylan,

      Have you proved if HSP and/or HFP profiles are also available and working properly on your Raspberry? Have you been able to stablish a communication using a head set device?

      Thanks in advance,

  18. ew Reply

    doesn’t work for me.

    i had to rename the file to “BCM20702A1-0a5c-21e8.hcd” it get loaded.
    but i can only use the A2DP profile with it.
    which is pretty useless for me because i need my mic.

    here is the relevant part from my dmesg:
    [ 988.547918] usb 4-1.5: new full-speed USB device number 8 using ehci-pci
    [ 988.644122] usb 4-1.5: New USB device found, idVendor=0a5c, idProduct=21e8
    [ 988.644126] usb 4-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [ 988.644129] usb 4-1.5: Product: BCM20702A0
    [ 988.644131] usb 4-1.5: Manufacturer: Broadcom Corp
    [ 988.644133] usb 4-1.5: SerialNumber: 5CF37075DFDE
    [ 989.111198] usbcore: registered new interface driver btusb
    [ 989.116824] Bluetooth: hci1: BCM: chip id 63
    [ 989.117823] Bluetooth: hci1: BCM20702A1 (001.002.014) build 0000
    [ 989.840173] Bluetooth: hci1: BCM20702A1 (001.002.014) build 1338

  19. David Roberts David Roberts Reply

    Thank you for posting! Linux can be tricky because there are so many distros and versions that handle Bluetooth differently. Please try entering

    pavucontrol

    at the command line. Under the Configuration tab, you should be able to set the profile that will be used.

    • ew Reply

      well i finally figured it out.
      1. it was my fault and 2. it was kind of a hardware problem.
      it looks like my pc has an internal bluetooth adapter which was used but didn’t show up in my settings ui (thanks gnome).
      after disabling it/unplugging it from my mainboard the right one was used and it worked.
      sorry for the trouble guys 🙂

  20. John Reply

    Hello, I tried leaving a comment earlier but it appears that it never made it through moderation. I have the same issue as “ew”, my device is recognized, can pair, and I can use the audio sink (A2DP) function, but it will not work in headset mode. I am on Fedora 23. Trust me when I say that I have spent over 18 total hours pouring over everything I can find on the bluetooth and pulseaudo/alsa settings for this distro and others, including downloading the Broadcom Windows driver for the BCM20702A1 series, decoded the inf file to find the proper driver for vendor 0a5c and product 21e8, converted the driver hex file with hex2hcd, and am running on it now with the same results even though it is clearly different in size and content from the driver you provide a link to.

    • David Roberts David Roberts Reply

      Hi John,

      Thank you for posting. I’m sorry about your previous comment. I’m not sure why it didn’t get approved. We generally approve any comment that is relevant to the blog post. I apologize for the problems with the adapter.Please contact us at support@plugable.com, I would be happy to help with this. I haven’t had the chance to do much testing of the headset profile with Fedora 23, but I will do some testing with this as soon as possible.

  21. George Reply

    Hi,

    Is this adapter compatible with centos 6.7? My kernel is somewhere around v2.6.xx. Has this been tested? I do need to keep this specific OS and kernel version so I can’t upgrade anything. I’m fairly new to running centos so I’d like to avoid jumping through too many hoops to get this working.

    Thanks!!

    • David Roberts David Roberts Reply

      Thanks for asking. Unfortunately, this adapter isn’t supported in kernel versions earlier than 3.0.

  22. Ernt Berg Reply

    I am needing the A1 series for Fedora 22
    The one listed is to be copied to the A0 series yes?
    BCM20702A1-0a5c-21e8.hcd
    Is there a new file?

    Tried to simply rename but that didn’t make a difference.

    • David Roberts David Roberts Reply

      Hi Ernt. The file posted here is specific to the A0 version, so changing the name would probably not be sufficient to make it work. We don’t have the A1 series firmware available. Thanks!

  23. Ernt Berg Reply

    Why? The Linux Kernel is now specifying the A1 Series.
    I own $200 Sony headphones that do not now work and wonder why I would spend any more. Shouldn’t the consumer be served?

  24. World B. Free Reply

    Thanks for this. I just bought an IOGear GBU521 with Windows driver CD but had this exact firmware loading problem on Fedora 23. Downloading the firmware and moving it to /lib/firmware/bcrm w/the A1 name worked and did not require a reboot, merely unplugging and replugging the USB-Bluetooth adapter:

    [Fri Jun 3 10:55:34 2016] Bluetooth: Core ver 2.21
    [Fri Jun 3 10:55:34 2016] Bluetooth: HCI device and connection manager initialized
    [Fri Jun 3 10:55:34 2016] Bluetooth: HCI socket layer initialized
    [Fri Jun 3 10:55:34 2016] Bluetooth: L2CAP socket layer initialized
    [Fri Jun 3 10:55:34 2016] Bluetooth: SCO socket layer initialized
    [Fri Jun 3 10:55:42 2016] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
    [Fri Jun 3 10:55:42 2016] Bluetooth: BNEP filters: protocol multicast
    [Fri Jun 3 10:55:42 2016] Bluetooth: BNEP socket layer initialized
    [Fri Jun 3 14:58:44 2016] Bluetooth: hci0: BCM: chip id 63
    [Fri Jun 3 14:58:44 2016] Bluetooth: hci0: BCM20702A
    [Fri Jun 3 14:58:44 2016] Bluetooth: hci0: BCM20702A1 (001.002.014) build 0000
    [Fri Jun 3 14:58:44 2016] bluetooth hci0: Direct firmware load for brcm/BCM20702A1-0a5c-21e8.hcd failed with error -2
    [Fri Jun 3 14:58:44 2016] Bluetooth: hci0: BCM: Patch brcm/BCM20702A1-0a5c-21e8.hcd not found
    [Fri Jun 3 14:58:44 2016] Bluetooth: RFCOMM TTY layer initialized
    [Fri Jun 3 14:58:44 2016] Bluetooth: RFCOMM socket layer initialized
    [Fri Jun 3 14:58:44 2016] Bluetooth: RFCOMM ver 1.11
    [Fri Jun 3 15:45:02 2016] Bluetooth: hci0: BCM: chip id 63
    [Fri Jun 3 15:45:02 2016] Bluetooth: hci0: BCM20702A
    [Fri Jun 3 15:45:02 2016] Bluetooth: hci0: BCM20702A1 (001.002.014) build 0000
    [Fri Jun 3 15:45:04 2016] Bluetooth: hci0: BCM20702A1 (001.002.014) build 1338
    [Fri Jun 3 15:45:04 2016] Bluetooth: hci0: Broadcom Bluetooth Device

  25. DCarr Reply

    Hey this is a cool site, I have a built in bluetooth device: Broadcom Corp. BCM43142A0 Bluetooth Device. Would this solution that you suggest for the other device work with one? If it doesn’t anyone have any helpul ideas because I have been banging my head on the wall trying to solve the problem? I thank you in advance.

  26. DCarr Reply

    Sorry I have to add that I am using an HP Envy DV7 running Fedora 23 kernel version 4.5.6-200.fc23.x86_64. I forgot to list that in my previous question.

  27. nomad Reply

    I did this:

    1150 cd ~/
    1151 wget https://s3.amazonaws.com/plugable/bin/fw-0a5c_21e8.hcd
    1152 ls
    1153 sudo mkdir /lib/firmware/brcm
    1154 ls /lib/firmware/brcm/BCM20702A0-0a5c-21e8.hcd
    1155 sudo mv fw-0a5c_21e8.hcd /lib/firmware/brcm/BCM20702A0-0a5c-21e8.hcd

    AFTER REBOOT THE ERROR:

    bluetooth hci0: firmware: failed to load brcm/BCM43142A0-0a5c-21d7.hcd

    WENT AWAY BUT HEADPHONE JACK OUTPUT WAS LOST:

    I did this:

    1157 mv /lib/firmware/brcm/BCM20702A0-0a5c-21e8.hcd ~/

    REBOOT GOT IT BACK. I’M CONFUSED. DOES THIS MEAN I NEED TO REDO MY AUDIO CONFIG IF I WISH TO LOAD THE DRIVER CORRECTLY? THANKS

    Regards,
    PK

    System INFO:
    [ 2016.07.23.12.12.52 ] DELL_LATITUDE_1440 { /root }
    # uname -a
    Linux DELL_LATITUDE_1440 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2 (2016-04-08) x86_64 GNU/Linux

    [ 2016.07.23.12.12.56 ] DELL_LATITUDE_1440 { /root }
    # lscpu
    Architecture: x86_64
    CPU op-mode(s): 32-bit, 64-bit
    Byte Order: Little Endian
    CPU(s): 2
    On-line CPU(s) list: 0,1
    Thread(s) per core: 1
    Core(s) per socket: 2
    Socket(s): 1
    NUMA node(s): 1
    Vendor ID: GenuineIntel
    CPU family: 6
    Model: 23
    Model name: Pentium(R) Dual-Core CPU T4200 @ 2.00GHz
    Stepping: 10
    CPU MHz: 1200.000
    CPU max MHz: 2000.0000
    CPU min MHz: 1200.0000
    BogoMIPS: 4000.14
    L1d cache: 32K
    L1i cache: 32K
    L2 cache: 1024K
    NUMA node0 CPU(s): 0,1

    [ 2016.07.23.12.21.21 ] DELL_LATITUDE_1440 { /root }
    # hwinfo –short
    cpu:
    Pentium(R) Dual-Core CPU T4200 @ 2.00GHz, 1200 MHz
    Pentium(R) Dual-Core CPU T4200 @ 2.00GHz, 1600 MHz
    keyboard:
    /dev/input/event0 AT Translated Set 2 keyboard
    mouse:
    /dev/input/mice ALPS PS/2 Device
    /dev/input/mice AlpsPS/2 ALPS GlidePoint
    /dev/input/mice Bluetooth Laser Travel Mouse
    graphics card:
    Intel Mobile 4 Series Chipset Integrated Graphics Controller
    Intel Mobile 4 Series Chipset Integrated Graphics Controller
    sound:
    Intel 82801I (ICH9 Family) HD Audio Controller
    storage:
    Intel 82801IBM/IEM (ICH9M/ICH9M-E) 4 port SATA Controller [AHCI mode]
    network:
    eth0 Realtek RTL8101E/RTL8102E PCI Express Fast Ethernet controller
    wlan0 Dell Wireless 1397 WLAN Mini-Card
    network interface:
    wlan0 WLAN network interface
    lo Loopback network interface
    eth0 Ethernet network interface
    disk:
    /dev/sda ST2000LM003 HN-M
    partition:
    /dev/sda1 Partition
    /dev/sda2 Partition
    /dev/sda3 Partition
    /dev/sda4 Partition
    /dev/sda5 Partition
    /dev/sda6 Partition
    cdrom:
    /dev/sr0 HL-DT-ST DVD+-RW GT10N
    usb controller:
    Intel 82801I (ICH9 Family) USB UHCI Controller #4
    Intel 82801I (ICH9 Family) USB UHCI Controller #5
    Intel 82801I (ICH9 Family) USB UHCI Controller #6
    Intel 82801I (ICH9 Family) USB2 EHCI Controller #2
    Intel 82801I (ICH9 Family) USB UHCI Controller #1
    Intel 82801I (ICH9 Family) USB UHCI Controller #2
    Intel 82801I (ICH9 Family) USB UHCI Controller #3
    Intel 82801I (ICH9 Family) USB2 EHCI Controller #1
    Renesas USB Controller
    bios:
    BIOS
    bridge:
    Intel Mobile 4 Series Chipset Memory Controller Hub
    Intel 82801I (ICH9 Family) PCI Express Port 1
    Intel 82801I (ICH9 Family) PCI Express Port 2
    Intel 82801I (ICH9 Family) PCI Express Port 3
    Intel 82801I (ICH9 Family) PCI Express Port 5
    Intel 82801 Mobile PCI Bridge
    Intel ICH9M LPC Interface Controller
    hub:
    Linux 3.16.0-4-amd64 uhci_hcd UHCI Host Controller
    Linux 3.16.0-4-amd64 uhci_hcd UHCI Host Controller
    Linux 3.16.0-4-amd64 xhci_hcd xHCI Host Controller
    Linux 3.16.0-4-amd64 uhci_hcd UHCI Host Controller
    Linux 3.16.0-4-amd64 uhci_hcd UHCI Host Controller
    Linux 3.16.0-4-amd64 uhci_hcd UHCI Host Controller
    Linux 3.16.0-4-amd64 ehci_hcd EHCI Host Controller
    Linux 3.16.0-4-amd64 xhci_hcd xHCI Host Controller
    Linux 3.16.0-4-amd64 ehci_hcd EHCI Host Controller
    Linux 3.16.0-4-amd64 uhci_hcd UHCI Host Controller
    memory:
    Main Memory
    unknown:
    FPU
    DMA controller
    PIC
    Timer
    Keyboard controller
    PS/2 Controller
    Intel 82801I (ICH9 Family) SMBus Controller
    Broadcom BCM20702A0

    • David Roberts David Roberts Reply

      Thank you for contacting us. Would it be possible to run this command and send the resulting file to us at support@plugable.com? It will help me understand what is happening.

      dmesg > dmesg.txt

      Thanks!

      David Roberts
      Plugable Support

      • eigenvision Reply

        Hello David,

        It would appear there was a problem between the keyboard and the chair. It has been fixed for now. Sorry to trouble you. Thanks for a great product.

        Regards,
        PK

  28. mutac Reply

    Hi, I am really having trouble getting HFP to work with this adapter. I’ve verified that the firmware is being loaded, but am still unable to get HFP properly routed to my PCs sound card (e.g. I cannot hear the audio from the call, nor is the microphone being transmitted to the other end of the call). A2DP works just fine.

    Would anyone mind posting the exact versions of the following components that they have verified to have HFP working with?

    Kernel
    Bluez
    Pulesaudio
    Ofono

    I have tried all of the following in various combinations without success:

    Kernel: 4.4.11, 4.6.4, 4.7 (unstable)
    Bluez: 5.37, 5.7, 5.8, 5.9
    Pulesaudio: 7, 8, 9
    Ofono: 1.7, 1.8, 1.9

    • David Roberts David Roberts Reply

      Thanks for asking. Unfortunately, I haven’t been able to get HSP/HFP working since upgrading to Bluez 5.x. That was when Bluez stopped supporting headset profiles itself.

      • mutac Reply

        Update:

        I can confirm that this adapter is working with Bluez5.x, with the following combination of components. The issue that I was experiencing was actually due to a bug on the phone, rather than an issue on the HFP side :-/

        Anyway, this combination seems to work just fine:

        Kernel: 4.4.11
        Bluez: 5.39
        Ofono: 1.18
        Pulseaudio: 8
        Firmware patch the adapter as described above.

        For those that may not be aware, be sure to modify /etc/pulse/default.pa, and pass “headset=ofono” to module-bluetooth-discover.

        .ifexists module-bluetooth-discover.so
        load-module module-bluetooth-discover headset=ofono
        .endif

  29. TeeZee Reply

    I cannot get this to work in Fedora 23 (actually Korora 23). It does see, but in bluedevil finds no bluetooth adapters. Curiously, it recognizes it as a wifi adapter. What do I do?

  30. TeeZee Reply

    I am giving more information. This may help.

    systemctl status bluetooth.service
    ● bluetooth.service – Bluetooth service
    Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
    Active: failed (Result: exit-code) since Wed 2016-07-27 16:03:34 EDT; 15h ago
    Docs: man:bluetoothd(8)
    Process: 4750 ExecStart=/usr/libexec/bluetooth/bluetoothd (code=exited, status=1/FAILURE)
    Main PID: 4750 (code=exited, status=1/FAILURE)
    Status: “Starting up”

    Jul 27 16:03:34 localhost.localdomain systemd[1]: Starting Bluetooth service…
    Jul 27 16:03:34 localhost.localdomain bluetoothd[4750]: Bluetooth daemon 5.39
    Jul 27 16:03:34 localhost.localdomain bluetoothd[4750]: D-Bus setup failed: Connection “:1.75” is not allowed to own the service “org.bluez” du…on file
    Jul 27 16:03:34 localhost.localdomain systemd[1]: bluetooth.service: Main process exited, code=exited, status=1/FAILURE
    Jul 27 16:03:34 localhost.localdomain systemd[1]: Failed to start Bluetooth service.
    Jul 27 16:03:34 localhost.localdomain systemd[1]: bluetooth.service: Unit entered failed state.
    Jul 27 16:03:34 localhost.localdomain systemd[1]: bluetooth.service: Failed with result ‘exit-code’.
    Hint: Some lines were ellipsized, use -l to show in full.

  31. TeeZee Reply

    Also lsusb shows this (note- it is recognized):

    Bus 002 Device 005: ID 0a5c:5800 Broadcom Corp. BCM5880 Secure Applications Processor
    Bus 002 Device 004: ID 046d:082c Logitech, Inc.
    Bus 002 Device 006: ID 0a5c:21e8 Broadcom Corp. BCM20702A0 Bluetooth 4.0
    Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 001 Device 005: ID 05ca:181c Ricoh Co., Ltd
    Bus 001 Device 009: ID 046d:c52b Logitech, Inc. Unifying Receiver
    Bus 001 Device 008: ID 413c:2513 Dell Computer Corp. internal USB Hub of E-Port Replicator
    Bus 001 Device 007: ID 413c:2513 Dell Computer Corp. internal USB Hub of E-Port Replicator
    Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

  32. davidg Reply

    @TeeZee maybe try upgrading to Fedora 24? I was never able to get this to work completely right in 23 or below, starting at 21. Since upgrading it’s now working for me following the above instructions except that I renamed the firmware file according to that which showed in the not-found error.

  33. Bob Reply

    hah! This just fixed the BT4 card in my Thinkpad X201. Now I have functioning bluetooth on E7! Cheers!

  34. TeeZee Reply

    Just wanted to let you know that after re-installing Fedora 24 the bluetooth adapter is working great! I had updated without re-installing which resulted in kernel modules not loading. So if any is having an experience with Fedora and bluetooth not working, more than likely that is the issue. Thank you for your excellent product and support of Linux!!!

Leave a Reply