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?

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

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,564
  • 19
  • 20