Sign up ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free.

I have a Lenovo B590 laptop. The laptop is Ubuntu-certified for Ubuntu 12.04 64bit, so I wasn't expecting any problems. First I tried to get the Broadcom 43142 wifi/bluetooth module working on Ubuntu 12.10 64bit but failed. Therefore I made a fresh Ubuntu 13.10 64bit installation yesterday. Here the wifi module was recognized out of the box. The only thing I had to do was to enable the restricted driver. The bluetooth module is recognized too, but it doesn't work.

The problem is: I have two further bluetooth devices placed closely to the laptop, non-paired and each being able to discover the other respectively. None of them is able to disover the laptop, nor does hcitool scan find any devices. It does not give any errors though.

lspci|grep -i broadcom:

02:00.0 Network controller: Broadcom Corporation BCM43142 802.11b/g/n (rev 01)1

dmesg|grep -i blue:

[    8.023496] thinkpad_acpi: rfkill switch tpacpi_bluetooth_sw: radio is unblocked
[    8.384905] Bluetooth: Core ver 2.16
[    8.384936] Bluetooth: HCI device and connection manager initialized
[    8.384943] Bluetooth: HCI socket layer initialized
[    8.384944] Bluetooth: L2CAP socket layer initialized
[    8.384959] Bluetooth: SCO socket layer initialized
[    8.721266] Bluetooth: can't load firmware, may not work correctly
[   11.274285] Bluetooth: RFCOMM TTY layer initialized
[   11.274298] Bluetooth: RFCOMM socket layer initialized
[   11.274299] Bluetooth: RFCOMM ver 1.11
[   11.283683] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   11.283686] Bluetooth: BNEP filters: protocol multicast
[   11.283696] Bluetooth: BNEP socket layer initialized
[   13.417478] Bluetooth: hci0 command 0x1003 tx timeout


hci0:   Type: BR/EDR  Bus: USB
        BD Address: 1C:3E:84:E8:81:98  ACL MTU: 1021:8  SCO MTU: 64:1
        RX bytes:1265 acl:0 sco:0 events:84 errors:0
        TX bytes:3794 acl:0 sco:0 commands:81 errors:0

bluez-simple-agent hci# 1C:3E:84:E8:81:98:

Creating device failed: org.bluez.Error.ConnectionAttemptFailed: Page Timeout

rfkill list:

0: phy0: Wireless LAN
        Soft blocked: no
        Hard blocked: no
1: brcmwl-0: Wireless LAN
        Soft blocked: no
        Hard blocked: no
2: tpacpi_bluetooth_sw: Bluetooth
        Soft blocked: no
        Hard blocked: no
3: hci0: Bluetooth
        Soft blocked: no
        Hard blocked: no

uname -a:

Linux B590 3.11.0-14-generic #21-Ubuntu SMP Tue Nov 12 17:04:55 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

And finally here's the output of the scan attempt, which does not give any results:

hcitool scan:


What have I missed? How am I supposed to get the bluetooth device working?

share|improve this question
Have you installed bluez drivers? – user224082 Dec 26 '13 at 13:40
@DuminduMahawela I have the packages bluez and bluez-tools installed. – user228890 Dec 26 '13 at 13:46
Try with the other packages sudo apt-get install bluez bluez-alsa bluez-audio bluez-btsco bluez-compat bluez-cups bluez-dbg bluez-gstreamer bluez-hcidump bluez-pcmcia-support bluez-tools bluez-utils python-bluez bluewho indicator-bluetooth libbluetooth-dev libgnome-bluetooth11 libbluetooth3 – user224082 Dec 26 '13 at 13:49
I filed a bug for this issue: – user228890 Jan 7 '14 at 13:06
possible duplicate of Bluetooth Broadcom 43142 isn't working on ubuntu 15.04 – Pilot6 Sep 26 at 10:06

2 Answers 2

I am using the driver wl driver from Broadcom at The driver needs to be patched and I got the patch file from one of the arch linux forums. Make and installed wl.ko and remember to load the btusb module for bluetooth to work

share|improve this answer
A more detailed answer would be really helpful. I have the same problem but your instructions are a bit too advanced for me to follow. An actual link to the patch would also be helpful – ThomasH Aug 10 '14 at 12:53

Broadcom 43142 bluetooth is supported by the Linux kernel, but it requires a binary firmware file that distros cannot include because of licensing issues.

If you look at the system log you will probably see that the kernel attempts to load the firmware from a file named BCM43142A0-04ca-2007.hcd and fails.

Getting the file involves downloading the Windows drivers for the chip, locating the file named BCM43142A0_001.001.011.0122.0153.hex and then converting it to hcd format using hex2hcd. The converted file should be placed in /lib/firmware/brcm/BCM43142A0-04ca-2007.hcd.

The windows drivers EXE installer can be unpacked using wine - the installer will create a folder under drive_c where you should find the required .hex file. The current drivers for B590 apparently have changed the names of the .hex files, so I had to do extra googling to get the file from the installer for another model.

If you don't feel like doing the conversion yourself you can use the BCM43142A0-04ca-2007.hcd file that I made which should be copied to where the kernel will search for it:

    sudo cp BCM43142A0-04ca-2007.hcd /lib/firmware/brcm/

And this is the original BCM43142A0_001.001.011.0122.0153.hex taken from a windows installer, just in case you need it.

share|improve this answer
From the lsusb.txt in the bug report shows the bluetooth to be 105b:e065 which last saw patchram support in kernel 3.13. The 3.13 kernel still uses the fw-105b_e065.hcd naming format. Good answer otherwise – Jeremy31 Sep 27 at 19:09

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.