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.

d7029
  • 23
  • 1
  • 4

1 Answers1

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

Thomas Ward
  • 74,764
Jeremy31
  • 12,602
  • 10
  • 58
  • 114
  • And indeed it does. Thank you very much sir, you help is much appreciated. – d7029 Apr 30 '15 at 00: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 09:20
  • 1
    Most broadcom bluetooth questions since then have been marked as a duplicate of https://askubuntu.com/questions/632336/bluetooth-broadcom-43142-isnt-working that shows you how to make the firmwarefile – Jeremy31 Nov 18 '18 at 10:44