Qiu Yi
Source: http://www.cnblogs.com/qiuyi21/p/bcm20702a0_ubuntu.html
First confirm the Bluetooth production number (Idvendor) and the product number (IDPRODUCT), under Linux can be viewed through the LSUSB or usb-devices command, under windows in Device Management, as shown in. My bluetooth Idvendor is 0x13d3, idproduct is 0x3404.
Most Bluetooth devices in Broadcom require a vendor's firmware patch (RAM patch file), and Linux is called firmware,bcm20702a0. A file like "Bcm20702a1_001.002.014.1443.1479.hex" can be found in the Windows Driver installation package provided by the computer provider, which is the firmware memory patch, which holds the hexadecimal text, which can be opened to see.
How do I find the firmware memory patch file for my Bluetooth device?
Method One, locate the driver information file (. inf) in the Windows Driver installation package, as mine is "Bcbtums-win8x64-brcm.inf". Open the Find "usb\vid_13d3&pid_3404" (the supplier number and product number as per your own) and find information similar to the following:
%azbtmodule.devicedesc%=ramusb3404, usb\vid_13d3&pid_3404
Then look for "[RAMUSB3404" and you will find something similar to the following:
[RAMUSB3404. Copylist]
Bcbtums.sys
Btwampfl.sys
Bcm20702a1_001.002.014.1443.1479.hex
See the ". Hex" file name now, that's it.
Method Two, look in the Windows Device Manager, as shown in.
Save the ". Hex" file and wait for it to be used. Now reboot into Ubuntu 14.04 os ...
Operation under Ubuntu is dominated by commands.
The first step is to modify the kernel to kernel 3.13 as an example.
CD ~
mkdir kernel
CD kernel
Apt-get build-dep linux-image-' uname-r '
Apt-get source linux-image-' Uname-r '
CD linux-3.13.0/drivers/bluetooth/
Then edit the code file BTUSB.C, locate the BCM20702A0 device number code,
/* Broadcom bcm20702a0 */
{Usb_device (0x0b05, 0X17B5)},
{Usb_device (0x0b05, 0X17CB)},
{Usb_device (0X04CA, 0x2003)},
{Usb_device (0x0489, 0xe042)},
{Usb_device (0X13D3, 0x3388),. Driver_info = Btusb_bcm_patchram},
{Usb_device (0X13D3, 0x3389),. Driver_info = Btusb_bcm_patchram},
{Usb_device (0x413c, 0x8197),. Driver_info = Btusb_bcm_patchram},
{Usb_device (0x413c, 0x8143),. Driver_info = Btusb_bcm_patchram},
Switch
/* Broadcom bcm20702a0 */
{Usb_device (0X13D3, 0x3404),. Driver_info = Btusb_bcm_patchram},
{Usb_device (0x0b05, 0X17B5)},
{Usb_device (0x0b05, 0X17CB)},
{Usb_device (0X04CA, 0x2003)},
{Usb_device (0x0489, 0xe042)},
{Usb_device (0X13D3, 0x3388),. Driver_info = Btusb_bcm_patchram},
{Usb_device (0X13D3, 0x3389),. Driver_info = Btusb_bcm_patchram},
{Usb_device (0x413c, 0x8197),. Driver_info = Btusb_bcm_patchram},
{Usb_device (0x413c, 0x8143),. Driver_info = Btusb_bcm_patchram},
Save the changes, and then compile the Btusb module to execute:
Make-c/lib/modules/' uname-r '/build m= ' pwd ' modules
Normally, the Btusb.ko file is compiled. Update to your operating system kernel:
mv/lib/modules/' uname-r '/kernel/drivers/bluetooth/btusb.ko/
CP btusb.ko/lib/modules/' uname-r '/kernel/drivers/bluetooth/
Depmod
The second step is to generate the Bluetooth device firmware (firmware).
git clone https://github.com/jessesung/hex2hcd.git
CD HEX2HCD
Make
./HEX2HCD Bcm20702a1_001.002.014.1443.1479.hex FW-13D3_3404.HCD
Note the generated file name must be in the "fw-<4 number hexadecimal >_<4-bit product number hex >.HCD" format, all lowercase.
Then copy the firmware file to the specified directory:
CP fw-13d3_3404.hcd/lib/firmware/
Chown ROOT:ROOT/LIB/FIRMWARE/FW-13D3_3404.HCD
OK, Finish. Can execute "rmmod btusb; Modprobe Btusb "or restart the operating system to see Bluetooth normal drive No. If normal, execute command "Rfkill list" can see HCI0, then execute "hciconfig hci0 up" can let Bluetooth on, "Hcitool Dev" can see the Bluetooth device, "Hcitool Scan" can scan the surrounding Bluetooth signal. If not, perform a DMESG view log to troubleshoot.
Note that as the kernel module is modified, if the OS upgrade kernel will invalidate the Bluetooth driver, the BTUSB module needs to be recompiled and installed under the new kernel.
BCM94352HMB Bluetooth bcm20702a0 Drive method under Ubuntu 14.04