As of version 3.19, this device is supported in the Linux kernel, but you need to manually provide the device's firmware to the kernel.
Finding the Firmware:
You can find the firmware in the device's Windows driver, which you can download from Lenovo (or your computer manufacturer's website). Many drivers can just be unzipped, but for this particular computer, the driver is an
.exe file and must be extracted with
Follow the "installation" instructions. The wizard will extract the
.exe file and on the last step will ask to install it. Uncheck "Install Broadcom Bluetooth Driver now":
The driver file has been extracted to
~/.wine/driver_c/drivers/Broadcom Bluetooth Driver/
Identifying the right file
In my case, there are 20 - 30 firmware files in the extracted package. Which one corresponds to your device is revealed in one of the driver's
inf files. Find your device ID from the output of
lsusb or if that's unclear,
usb-devices. In this case, it's
e07a. Then grep the
inf files to find out which one talks about that device:
grep -c E07A -r --include \*.inf
So in this driver, you can look in either
Win64/bcbtums-win8x64-brcm.inf. Look through the file and find the hex file that is mentioned near
So the fimware is in the same directory and named
Converting and Placing the Firmware
Download and compile the
git clone https://github.com/jessesung/hex2hcd.git
Convert the firmware to
hex2hcd BCM20702A1_001.002.014.1443.1496.hex firmware.hcd
Rename and move the firmware to the system's firmware subdirectory:
su -c 'mv firmware.hcd /lib/firmware/brcm/BCM20702A0-0489-e07a.hcd'
The name of this file is critical. The two sets of four characters, in this case
0489-e07a, should match your device's Vendor ID and Product ID.
Loading the Firmware
The easiest way to load the firmware is to power off your computer and turn it on again. Note that the computer should be turned off; a simple reboot may not be sufficient to reload this firmware.