BCM94352HMB蓝牙BCM20702A0在Ubuntu 14.04下的驱动方法

作者:秋忆

出处:http://www.cnblogs.com/qiuyi21/p/bcm20702a0_ubuntu.html

  先确认蓝牙的产商编号(idVendor)和产品编号(idProduct),Linux下可通过lsusb或usb-devices命令查看,Windows下在设备管理里查看,如下图所示。我的蓝牙idVendor为0x13d3,idProduct为0x3404

  Broadcom的大部分蓝牙设备都需要一个产商的固件补丁(RAM patch file),Linux下叫firmware,BCM20702A0也不例外。在电脑提供商提供的Windows驱动安装包里可以找到类似“BCM20702A1_001.002.014.1443.1479.hex”这样的文件,就是固件内存补丁了,里面保存着十六进制的文本,可以打开来看。

  怎么找到自己的蓝牙设备的固件内存补丁文件呢?

  方法一、在Windows驱动安装包里找到驱动的信息文件(.inf),如我的是“bcbtums-win8x64-brcm.inf”。打开查找“USB\VID_13D3&PID_3404”( 产商编号和产品编号按自己的),找到类似如下信息:

  %AzBtModule.DeviceDesc%=RAMUSB3404,         USB\VID_13D3&PID_3404

  然后再查找“[RAMUSB3404”,会找到类似如下信息:

    [RAMUSB3404.CopyList]

    bcbtums.sys

    btwampfl.sys

    BCM20702A1_001.002.014.1443.1479.hex

  看到“.hex”的文件名了吧,就是它了。

  方法二、在Windows的设备管理器里查看,如下图所示。

  把“.hex”文件保存起来,等下会用到。现在重启进入Ubuntu 14.04操作系统……

  Ubuntu下的操作以命令为主。

  第一步,修改内核,以kernel 3.13为例。

    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/

  然后编辑代码文件btusb.c,找到BCM20702A0的设备编号代码,把

    /* 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 },

  改为

    /* 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 },

  保存修改,然后编译btusb模块,执行:

    make -C /lib/modules/`uname -r`/build M=`pwd` modules

  正常就会编译出btusb.ko文件。更新到自己的操作系统内核里去:

    mv /lib/modules/`uname -r`/kernel/drivers/bluetooth/btusb.ko /

    cp btusb.ko /lib/modules/`uname -r`/kernel/drivers/bluetooth/

    depmod

  第二步,生成蓝牙设备的固件(firmware)。

    git clone https://github.com/jessesung/hex2hcd.git

    cd hex2hcd

    make

    ./hex2hcd BCM20702A1_001.002.014.1443.1479.hex fw-13d3_3404.hcd

  注意生成的文件名必须以“fw-<4位产商编号十六进制>_<4位产品编号十六进制>.hcd”格式,全部小写。

  然后复制固件文件到指定的目录:

    cp fw-13d3_3404.hcd /lib/firmware/

    chown root:root /lib/firmware/fw-13d3_3404.hcd

  OK,完成。可以执行“rmmod btusb; modprobe btusb”或重启操作系统看蓝牙正常驱动没有。如果正常,执行命令“rfkill list”可以看到hci0,然后执行“hciconfig hci0 up”可以让蓝牙开启,“hcitool dev”可以看到蓝牙设备,“hcitool scan”可以扫描周围的蓝牙信号。如果不正常,执行dmesg查看日志进行排查。

  注意,由于修改了内核模块,如果操作系统升级内核将会令蓝牙驱动失效,需要在新内核下重新编译安装btusb模块。

时间: 2024-10-11 13:35:44

BCM94352HMB蓝牙BCM20702A0在Ubuntu 14.04下的驱动方法的相关文章

Ubuntu 14.04下如何更换更新源(更新为163源)

Ubuntu 14.04下如何更换更新源(更新为163源) 浏览:8103 | 更新:2014-12-26 18:39 | 标签:ubuntu 1 2 3 4 5 分步阅读 Ubuntu下自带的源更新起来真的好难等,于是小编果断将其换之,经过各种尝试,最后还是选择了163的.下面就由小编来给大家分享一下是如何更新的吧. 工具/原料 装有Ubuntu14.04系统一台. 网络处于连通状态 方法/步骤 1 首先打开终端,用root登陆. 2 切换到/etc/apt/目录下,执行:cd /apt/ge

解决ubuntu 14.04 下eclipse 3.7.2 不能启动,报Could not detect registered XULRunner to use 或 org.eclipse.swt.SWTError: XPCOM 等问题的处理

对于eclipse 3.7.2在ubuntu 14.04下不能启动,需要在 eclipse/configuration 目录下的config.ini文件内增加一行org.eclipse.swt.browser.DefaultType=mozilla #This configuration file was written by: org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxFwConfigFileParser #Thu J

Ubuntu 14.04下java开发环境的搭建--3--Tomcat及MySQL的安装

前面两篇文章,已经说明了JDK和Eclipse 的安装方法,下面简单说一下,Tomcat及MySQL的安装方法. Tomcat的安装. 在合适的地方解压apache-tomcat-6.0.39.tar.gz cd /opt/DevelopTools sudo mkdir server cd server sudo cp /home/home/下载/apache-tomcat-6.0.39.tar.gz /opt/DevelopTools/server sudo tar -zxvf apache-

ubuntu 14.04下安装clang_complete

ubuntu 14.04下安装vim的C++补全插件clang_complete 1.安装clang apt-get install clang 2.安装libclang apt-get install  libclang-dev 3.安装clang_complete插件 git clone https://github.com/Rip-Rip/clang_complete cd clang_complete make install 4.修改.vimrc let g:clang_complet

Ubuntu 14.04 下的MAC OS X 主题安装

这篇文章全是转载,原文链接 Ubuntu 14.04 下的MAC OS X 主题安装 安装 MAC OS X 主题会帮助你的 Ubuntu 14.04 看起来更像MAC OS X.在这里我们介绍的Macbuntu安装包包含了GTK 主题,这些主题是专门为ubuntu unity定制的.图标主题可以为ubuntu 14.04使用,包括登陆界面引导启动的背景,登陆用户,甚至包括了lightdm 使用webkit的登陆界面.这个安装包是nobslab在bluedxca93的帮助下从gnome-look

Ubuntu 14.04 下手动安装Firefox的Flash插件

有时候我们需要在Ubuntu下采用手动安装一些软件,比如Firefox的Flash插件.Adobe® Flash® Player 是一款轻量级浏览器插件,具有丰富的 Internet 应用运行时间,提供持续的迷人用户体验.绝妙的音频/视频回放效果和刺激的游戏. Flash Player 已在超过 13 亿系统中安装,是提供高度集成且丰富的 Web 内容的标准应用. 相关阅读: Ubuntu 14.04 下载.安装.配置 整理汇总 页面 http://www.linuxidc.com/Linux/

Ubuntu 14.04下NFS安装配置

Ubuntu 14.04下NFS安装配置 参考:http://www.linuxidc.com/Linux/2013-08/89154.htm 1.执行命令:sudo apt-get install nfs-kernel-server ; 2.执行命令:mkdir /home/jacobxu/nfs-jacoxu 建立一个nfs服务的专有的文件夹; 3.建立好文件夹后,接着执行命令:sudo vi /etc/exports 配置nfs; 4.在文章的最后一行添加:/home/jacobxu/nf

ubuntu 14.04下chrome显示标题乱码问题

最近ubuntu 14.04和chrome都升级成最新版后,chrome标题栏和书签栏都不能正常显示中文了. 然后搜了下发现这样可以解决: 修改文件 /etc/fonts/conf.d/49-sansserif.conf 将其中标红部分修改一个已经安装的中文字体,我现在用的时文泉驿微米黑所以就这样改: 修改前: <edit name="family" mode="append_last"> <string>sans-serif</str

Ubuntu 14.04 下安装Skype

Ubuntu 14.04 下安装Skype其实很简单,使用 Ctr+Alt+T组合键打开终端Terminal,输入如下即可: wget -O skype.deb http://download.skype.com/linux/skype-ubuntu-precise_4.2.0.13-1_i386.debsudo dpkg -i skype.debsudo apt-get -f install; rm skype.deb