6

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

hciconfig:

hci0:   Type: BR/EDR  Bus: USB
        BD Address: 1C:3E:84:E8:81:98  ACL MTU: 1021:8  SCO MTU: 64:1
        UP RUNNING PSCAN ISCAN 
        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:

Scanning...

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

user228890
  • 61
  • 1
  • 3
  • Have you installed bluez drivers? –  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 –  Dec 26 '13 at 13:49
  • @DuminduMahawela I installed these packages, rebooted, but hcitool scan is still not finding anything. – user228890 Dec 26 '13 at 13:55
  • Then try with Purge and reinstall the previously installed packages. sudo apt-get purge bluez bluez-tools. Then reinstall. –  Dec 26 '13 at 14:00
  • @DuminduMahawela I do appreciate your help very much. Unfortunately it still isn't working. I removed the packages via the command line you posted, then re-installed the packages from your previous comment and rebooted. Still none of the two bluetooth devices is found, nor does my mobile phone discover the laptop. – user228890 Dec 26 '13 at 14:15
  • My last attempt- try installing sudo apt-get installpython-gobject python-dbusthensudo /etc/init.d/bluetooth restart. Then get you device address byhcitool dev. then try to connect it bybluez-simple-agent hci# xx:xx:xx:xx:xx:xx(xx:xx:xx:xx:xx:xx should replace by the device adress). If not connected, Post the output in your question. Someone with expert knowledge will help. –  Dec 26 '13 at 14:59
  • @DuminduMahawela Do I understand you correctly that I should perform the connect operation on the laptop, so connect to "myself"? It fails. Here is the output: Creating device failed: org.bluez.Error.ConnectionAttemptFailed: Page Timeout – user228890 Dec 26 '13 at 17:25
  • 1
    I filed a bug for this issue: https://bugs.launchpad.net/ubuntu/+source/bluez/+bug/1264311 – user228890 Jan 07 '14 at 13:06
  • From the bug report it is a 105b:e065 and that ID hasn't had patchram support since the 3.13 kernel, not sure why it was removed – Jeremy31 Sep 27 '15 at 12:33

2 Answers2

0

I am using the driver wl driver from Broadcom at http://www.broadcom.com/support/802.11/linux_sta.php 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

  • 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
  • @ThomasH There's a prepatched build at https://github.com/longsleep/bcmwl-ubuntu (PPA available as well), so you can just install it from there. However, it doesn't work for me for Bluetooth, only for Wi-Fi. – Ale Sep 18 '16 at 05:40
0

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.

ccpizza
  • 1,452
  • 17
  • 18
  • 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 '15 at 19:09