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.