2

Using (K)Ubuntu 14.04 LTS on a HP Stream Mini desktop. It's in use as a HTPC and I'd like to get an aftermarket Bluetooth keyboard to work. I connect to a wired network so not bothered about the wifi although it does appear to be recognised and work.

$uname -a
Linux media 3.13.0-49-generic #83-Ubuntu SMP Fri Apr 10 20:11:33 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

It has a custom Broadcom BCM43142A0 wifi/Bluetooth card:

$lsusb
Bus 001 Device 002: ID 8087:8000 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 005: ID 357d:7788  
Bus 003 Device 004: ID 174c:55aa ASMedia Technology Inc. ASMedia 2105 SATA bridge
Bus 003 Device 003: ID 0bc2:3312 Seagate RSS LLC 
Bus 003 Device 002: ID 8564:4000  
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 004: ID 0a5c:216d Broadcom Corp. 
Bus 002 Device 007: ID 07ab:fcfe Freecom Technologies Hard Drive 80GB
Bus 002 Device 003: ID 8564:4000  
Bus 002 Device 006: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 002 Device 005: ID 04ca:004b Lite-On Technology Corp. 
Bus 002 Device 002: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

$lspci -nnk | grep -iA2 net
02:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 0c)
    Subsystem: Hewlett-Packard Company Device [103c:2b38]

Kernel driver in use: r8169

04:00.0 Network controller [0280]: Broadcom Corporation BCM43142 802.11b/g/n [14e4:4365] (rev 01)
    Subsystem: Hewlett-Packard Company Device [103c:804a]
    Kernel driver in use: wl

$usb-devices

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

I Googled for the USB device ID which seems to be a HP custom part as the device ID isn't supported by other BCM Windows firmware/driver bundles. I found:

http://forum.linuxmint.com/viewtopic.php?f=49&t=183217&p=949868

...which gives a link to http://wielki.tk/vostro/debs/bt-bcm43142-onereic_0.0+20111116somerville2_amd64.deb for the firmware (notice the USB device ID in that link is the same - 216D). I've tried (from that Mint link):

dpkg-deb -x bt-bcm43142-onereic_0.0+20111116somerville2_amd64.deb bt-bcm43142

sudo cp bt-bcm43142/lib/firmware/BCM43142A0_001.001.011.0028.0036.hcd /lib/firmware/fw-105b_e065.hcd

sudo rmmod btusb

sudo modprobe btusb

However dmesg still shows:

[ 1170.856683] usbcore: deregistering interface driver btusb
[ 1170.856766] Bluetooth: hci0 urb ffff88020f9de540 failed to resubmit (2)
[ 1177.432179] usbcore: registered new interface driver btusb
[ 1177.432184] usb 2-7: Direct firmware load failed with error -2
[ 1177.432189] usb 2-7: Falling back to user helper
[ 1177.444258] Bluetooth: can't load firmware, may not work correctly
[ 1179.449809] Bluetooth: hci0 command 0x1003 tx timeout

So I also tried copying that file to /lib/firmware/fw-0a5c_216d.fcd (i.e. renaming it according to the USB manufacturer/device IDs) and also /lib/firmware/brcm/BCM43142A0-0a5c-216d.hcd (as well as fw-0a5c_216d.fcd and fw-105b_e065.hcd in /lib/firmware/brcm). Still no joy with exactly the same problems in dmesg.

Presuming that this is the correct firmware, which I'm pretty sure it is, how can I get the btusb module to recognise that firmware file?

The Linux mint link suggests editing /etc/modprobe.d/bcm43142.conf but I don't have that file on my system?

ls /etc/modprobe.d/
alsa-base.conf          blacklist-firewire.conf     blacklistrare-network.conf  iwlwifi.conf
blacklist-ath_pci.conf  blacklist-framebuffer.conf  blacklist-watchdog.conf      mlx4.conf
blacklist-bcm43.conf    blacklist-modem.conf        dkms.conf                    vmwgfx-fbdev.conf
blacklist.conf          blacklist-oss.conf          fbdev-blacklist.conf

Many thanks for any help.

2

While the dropbox link in this post no longer works, this answer is left as-is for historical reasons.

It isn't the correct firmware

wget https://www.dropbox.com/s/olqnqevf698lddo/fw-0a5c_216d.hcd
sudo cp fw-0a5c_216d.hcd /lib/firmware/
sudo cp fw-0a5c_216d.hcd /lib/firmware/brcm/BCM43142A0-0a5c_216d.hcd
sudo modprobe -r btusb
sudo modprobe btusb

And it should work

| improve this answer | |
  • And indeed it does. Thank you very much sir, you help is much appreciated. – d7029 Apr 30 '15 at 0:33
  • this is not an answer but rather an individual it support. The dropbox link does not work anymore. Without this file it is not helpful any more. – NilsB Nov 18 '18 at 9:20
  • 1
    Most broadcom bluetooth questions since then have been marked as a duplicate of askubuntu.com/questions/632336/… that shows you how to make the firmwarefile – Jeremy31 Nov 18 '18 at 10:44

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.