国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Ubuntu > 正文

BCM94352HMB藍牙BCM20702A0在Ubuntu 14.04下的驅動方法

2024-06-28 13:23:03
字體:
來源:轉載
供稿:網友
BCM94352HMB藍牙BCM20702A0在Ubuntu 14.04下的驅動方法

作者:秋憶

出處:http://www.CUOXin.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模塊。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 哈尔滨市| 布尔津县| 巫山县| 商洛市| 孝感市| 辰溪县| 东乡族自治县| 西吉县| 独山县| 若尔盖县| 龙泉市| 连山| 土默特右旗| 额济纳旗| 新绛县| 读书| 新蔡县| 普安县| 五指山市| 普定县| 常山县| 抚顺市| 嘉义市| 长武县| 德州市| 游戏| 巫溪县| 固始县| 绿春县| 柳州市| 读书| 徐州市| 玉山县| 于都县| 怀集县| 临沭县| 屯门区| 马鞍山市| 河曲县| 金门县| 綦江县|