ubuntu 14.04蓝牙BCM43142没有发现(tx超时)

我正在浏览很多关于这个问题的post,虽然我找不到一个单一的答案。

问题:无法发现\检测其他蓝牙节点。

信息:

$ uname -r 3.13.0-59-generic $ cat /etc/*release* | grep -i dist DISTRIB_ID=Ubuntu DISTRIB_RELEASE=14.04 DISTRIB_CODENAME=trusty DISTRIB_DESCRIPTION="Ubuntu 14.04.2 LTS" $ lsusb | grep -i bluetooth Bus 002 Device 003: ID 0a5c:21d7 Broadcom Corp. BCM43142 Bluetooth 4.0 $ sudo lshw -c network *-network description: Wireless interface product: BCM43142 802.11b/g/n vendor: Broadcom Corporation physical id: 0 bus info: pci@0000:01:00.0 logical name: wlan0 version: 01 serial: XX:XX:XX:XX:XX:XX width: 64 bits clock: 33MHz capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless configuration: broadcast=yes driver=wl0 driverversion=6.30.223.248 (r487574) ip=192.168.1.103 latency=0 multicast=yes wireless=IEEE 802.11abg resources: irq:16 memory:d0500000-d0507fff $ usb-devices T: Bus=02 Lev=02 Prnt=02 Port=04 Cnt=01 Dev#= 3 Spd=12 MxCh= 0 D: Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=0a5c ProdID=21d7 Rev=01.12 S: Manufacturer=Broadcom Corp S: Product=BCM43142A0 S: SerialNumber=XXXXXXXXXXXXX C: #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none) I: If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none) $ lsmod | grep -i 'bluetooth\|btusb\|wl' btusb 32412 0 wl 6367819 0 cfg80211 484040 1 wl bluetooth 391136 22 bnep,btusb,rfcomm $ dmesg | grep -i bluetooth [ 2.964011] Bluetooth: Core ver 2.17 [ 2.964049] Bluetooth: HCI device and connection manager initialized [ 2.964056] Bluetooth: HCI socket layer initialized [ 2.964058] Bluetooth: L2CAP socket layer initialized [ 2.964062] Bluetooth: SCO socket layer initialized [ 2.969253] Bluetooth: RFCOMM TTY layer initialized [ 2.969268] Bluetooth: RFCOMM socket layer initialized [ 2.969273] Bluetooth: RFCOMM ver 1.11 [ 2.969744] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 2.969746] Bluetooth: BNEP filters: protocol multicast [ 2.969751] Bluetooth: BNEP socket layer initialized [ 3.460974] Bluetooth: can't load firmware, may not work correctly [ 5.462029] Bluetooth: hci0 command 0x1003 tx timeout 

正如您在上面的代码片段中看到的那样,在最后两行 – 似乎驱动程序存在问题。

请注意,我们正在谈论一个组合。 即它是物理网络接口卡上的wifi和蓝牙设备。

可以请一眼就这个问题说清楚:

  1. 怎么了?
  2. 有没有软件解决方案? (我知道我可以买不同的硬件)

更新:我遵循pilot6链接,并为这两个架构做了描述的步骤。 即32位和64位。 我已关闭计算机,但问题仍未解决。 随附更多信息,如果需要任何其他信息,请告诉我。

 $ dmesg | grep -i bluetooth [ 3.137118] Bluetooth: Core ver 2.17 [ 3.137138] Bluetooth: HCI device and connection manager initialized [ 3.137145] Bluetooth: HCI socket layer initialized [ 3.137148] Bluetooth: L2CAP socket layer initialized [ 3.137155] Bluetooth: SCO socket layer initialized [ 3.139875] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 3.139878] Bluetooth: BNEP filters: protocol multicast [ 3.139884] Bluetooth: BNEP socket layer initialized [ 3.155867] Bluetooth: RFCOMM TTY layer initialized [ 3.155877] Bluetooth: RFCOMM socket layer initialized [ 3.155881] Bluetooth: RFCOMM ver 1.11 [ 3.574991] Bluetooth: can't load firmware, may not work correctly [ 5.583477] Bluetooth: hci0 command 0x1003 tx timeout 

我不确定,虽然看起来固件没有加载:

 T: Bus=02 Lev=02 Prnt=02 Port=04 Cnt=01 Dev#= 3 Spd=12 MxCh= 0 D: Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=0a5c ProdID=21d7 Rev=01.12 S: Manufacturer=Broadcom Corp S: Product=BCM43142A0 S: SerialNumber=C01885BC70F0 C: #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none) I: If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none) 

从底部看到4行 – Driver=btusb 。 因此,我不确定复制固件是否有帮助。

更新2:这正是我所做的:

 $ mkdir /tmp/bt && cd /tmp/bt $ wget http://download.windowsupdate.com/msdownload/update/driver/drvs/2013/07/20573731_e75f2c1244fb153ccc4c1cac0dfbbab030d18543.cab --2015-07-28 19:00:45-- http://download.windowsupdate.com/msdownload/update/driver/drvs/2013/07/20573731_e75f2c1244fb153ccc4c1cac0dfbbab030d18543.cab Resolving download.windowsupdate.com (download.windowsupdate.com)... 191.234.4.50 Connecting to download.windowsupdate.com (download.windowsupdate.com)|191.234.4.50|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 1134497 (1.1M) [application/octet-stream] Saving to: '20573731_e75f2c1244fb153ccc4c1cac0dfbbab030d18543.cab' 100%[=============================================================================================================>] 1,134,497 2.01MB/s in 0.5s 2015-07-28 19:00:46 (2.01 MB/s) - '20573731_e75f2c1244fb153ccc4c1cac0dfbbab030d18543.cab' saved [1134497/1134497] $ cabextract 20573731_e75f2c1244fb153ccc4c1cac0dfbbab030d18543.cab 20573731_e75f2c1244fb153ccc4c1cac0dfbbab030d18543.cab: WARNING; possible 16136 extra bytes at end of file. Extracting cabinet: 20573731_e75f2c1244fb153ccc4c1cac0dfbbab030d18543.cab extracting bcbtums-win8x86-brcm.cat extracting bcbtums-win8x86-brcm.inf extracting bcbtums.sys extracting BCM20702A1_001.002.014.0889.0903.hex extracting BCM20702A1_001.002.014.0889.0926.hex extracting BCM20702A1_001.002.014.1055.1056.hex extracting BCM20702A1_001.002.014.1055.1057.hex extracting BCM20702A1_001.002.014.1055.1058.hex extracting BCM20702A1_001.002.014.1055.1060.hex extracting BCM20702A1_001.002.014.1055.1061.hex extracting BCM20702A1_001.002.014.1055.1062.hex extracting BCM20702A1_001.002.014.1055.1063.hex extracting BCM20702A1_001.002.014.1055.1064.hex extracting BCM20702A1_001.002.014.1055.1065.hex extracting BCM20702A1_001.002.014.1055.1067.hex extracting BCM20702A1_001.002.014.1055.1068.hex extracting BCM20702A1_001.002.014.1055.1070.hex extracting BCM20702A1_001.002.014.1055.1071.hex extracting BCM20702A1_001.002.014.1055.1072.hex extracting BCM20702A1_001.002.014.1055.1073.hex extracting BCM20702A1_001.002.014.1055.1074.hex extracting BCM20702A1_001.002.014.1055.1076.hex extracting BCM20702A1_001.002.014.1055.1079.hex extracting BCM20702A1_001.002.014.1055.1080.hex extracting BCM20702A1_001.002.014.1055.1082.hex extracting BCM20702A1_001.002.014.1055.1143.hex extracting BCM20702A1_001.002.014.1055.1229.hex extracting BCM20702A1_001.002.014.1055.1239.hex extracting BCM20702A1_001.002.014.1159.1168.hex extracting BCM20702A1_001.002.014.1159.1171.hex extracting BCM20702A1_001.002.014.1159.1174.hex extracting BCM20702A1_001.002.014.1159.1176.hex extracting BCM20702A1_001.002.014.1159.1178.hex extracting BCM20702A1_001.002.014.1159.1183.hex extracting BCM20702A1_001.002.014.1159.1187.hex extracting BCM20702A1_001.002.014.1159.1190.hex extracting BCM20702A1_001.002.014.1159.1193.hex extracting BCM20702A1_001.002.014.1159.1201.hex extracting BCM20702A1_001.002.014.1159.1208.hex extracting BCM20702A1_001.002.014.1159.1212.hex extracting BCM20702A1_001.002.014.1159.1214.hex extracting BCM20702A1_001.002.014.1159.1216.hex extracting BCM20702A1_001.002.014.1159.1230.hex extracting BCM43142A0_001.001.011.0084.0099.hex extracting BCM43142A0_001.001.011.0084.0100.hex extracting BCM43142A0_001.001.011.0084.0102.hex extracting BCM43142A0_001.001.011.0122.0124.hex extracting BCM43142A0_001.001.011.0122.0126.hex extracting BCM43142A0_001.001.011.0122.0127.hex extracting BCM43142A0_001.001.011.0122.0128.hex extracting BCM43142A0_001.001.011.0122.0131.hex extracting BCM43142A0_001.001.011.0122.0133.hex extracting BCM43142A0_001.001.011.0122.0135.hex extracting BCM43142A0_001.001.011.0122.0137.hex extracting BCM43142A0_001.001.011.0122.0139.hex extracting BCM43142A0_001.001.011.0122.0146.hex extracting BCM43142A0_001.001.011.0122.0152.hex extracting BCM43142A0_001.001.011.0122.0156.hex extracting BcmBtRSupport.dll extracting btwampfl.sys extracting btwdi.dll extracting BtwRSupportService.exe All done, no errors. $ wget https://github.com/jessesung/hex2hcd/archive/master.zip --2015-07-28 19:03:56-- https://github.com/jessesung/hex2hcd/archive/master.zip Resolving github.com (github.com)... 192.30.252.130 Connecting to github.com (github.com)|192.30.252.130|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://codeload.github.com/jessesung/hex2hcd/zip/master [following] --2015-07-28 19:03:57-- https://codeload.github.com/jessesung/hex2hcd/zip/master Resolving codeload.github.com (codeload.github.com)... 192.30.252.146 Connecting to codeload.github.com (codeload.github.com)|192.30.252.146|:443... connected. HTTP request sent, awaiting response... 200 OK Length: unspecified [application/zip] Saving to: 'master.zip' [  ] 8,902 --.-K/s in 0.1s 2015-07-28 19:03:58 (59.0 KB/s) - 'master.zip' saved [8902] $ unzip master.zip Archive: master.zip 1175dcef12aff35a6ce8d0422c7d811a9a2a8801 creating: hex2hcd-master/ inflating: hex2hcd-master/LICENSE inflating: hex2hcd-master/Makefile inflating: hex2hcd-master/hex2hcd.c $ lsusb | grep -i bluetooth Bus 002 Device 003: ID 0a5c:21d7 Broadcom Corp. BCM43142 Bluetooth 4.0 geek@nebula:/tmp/bt$ grep 'VID_0A5C&PID_21D7' bcbtums-win8x86-brcm.inf %Dell1704.DeviceDesc%=RAMUSB21D7, USB\VID_0A5C&PID_21D7 ; BRCM Generic 43142A0 RAMUSB $ grep RAMUSB21D7 bcbtums-win8x86-brcm.inf -A 3 | grep -i hex BCM43142A0_001.001.011.0122.0126.hex HKR,,%RAMPatchFileName%,0x00000, "BCM43142A0_001.001.011.0122.0126.hex" $ cd hex2hcd-master/ $ make gcc -O2 -march=native hex2hcd.c -o hex2hcd $ ./hex2hcd ../BCM43142A0_001.001.011.0122.0126.hex ../BCM43142A0-0a5c-21d7.hcd 15, :020000040021D9 bump addr to 0x00210000 281, :8700000001060069999942041FC15E00000014222200001422223B02570258025802590259025A025A025B025B025C025C025D025D025E025E025F025F02600260026102610262026202630263026402640265026502660266026702670268026802690269026A026A026B281F0AFD0400FFFFFFFF400600000000A40100020A008700210000000000000003 411, :C800870041250044656C6C20576972656C657373203137303420426C7565746F6F74682076342E302B485300980100035C01000172060003000708000193040020000000920600A300C80014648F0300020202B209000000008000000000006F210002331F05CF000000AA147F8C00AA00800A9200000000140000000000006C584E6C6A3600018012000000B0000000A0000000431008045310020180000000900000006310040273100402C1000000D000000022000000320000007C0400010A00020A05001C0A200001C463 411, :C8014F0008007800320000030000C30000C0000698F83100FFFFFFFFFF7F00009CF83100FFFFFFFF083B0000A0F83100FFFFFFFF06000000A4F83100FFFFFFFF5C340000A8F83100FFFFFFFF04000000ACF83100FFFFFFFF36300000B0F83100FFFFFFFF09000000B4F83100FFFFFFFFF5330000B8F83100FFFFFFFFC5C40000C0F83100FFFFFFFF00000000C4F83100FFFFFFFF35C90000ECF83100FFFFFFFF28C9000038F93100FFFFFFFF320000003CF93100FFFFFFFF2805000040F93100FFFFFFFF1705000044F931001D 411, :C8021700FFFFFFFF0C09000048F93100FFFFFFFF300500004CF93100FFFFFFFF0C08000050F93100FFFFFFFF160700005CF93100FFFFFFFF1509000060F93100FFFFFFFF0809000064F93100FFFFFFFF170A00006CF93100FFFFFFFF9C05000070F93100FFFFFFFFED01000030FC3100FFFFFFFF6A0400005CFC3100FFFFFFFF0200000070FC3100FFFFFFFF0B09000094FC3100FFFFFFFF5E000000C0FC3100FFFFFFFF02800000C8FC3100FFFFFFFF48850000CCFC3100FFFFFFFF37450000D0FC3100FFFFFFFF2DC900001A ... TRUNCATED 27, :0860D0000000000000000000C8 43, :1063000028000000C8E00E39F0000000020303007E 11, :00000001FF $ sudo cp -v ../BCM43142A0-0a5c-21d7.hcd /lib/firmware/brcm '../BCM43142A0-0a5c-21d7.hcd' -> '/lib/firmware/brcm/BCM43142A0-0a5c-21d7.hcd' 

更新3:安装内核3.19后:

 $ dmesg | grep -i bluetooth [ 2.985774] Bluetooth: Core ver 2.20 [ 2.985802] Bluetooth: HCI device and connection manager initialized [ 2.985806] Bluetooth: HCI socket layer initialized [ 2.985809] Bluetooth: L2CAP socket layer initialized [ 2.985816] Bluetooth: SCO socket layer initialized [ 2.992686] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 2.992689] Bluetooth: BNEP filters: protocol multicast [ 2.992694] Bluetooth: BNEP socket layer initialized [ 2.995595] Bluetooth: RFCOMM TTY layer initialized [ 2.995602] Bluetooth: RFCOMM socket layer initialized [ 2.995607] Bluetooth: RFCOMM ver 1.11 [ 3.521077] Bluetooth: hci0: BCM: patching hci_ver=06 hci_rev=007e lmp_ver=06 lmp_subver=210b [ 4.056118] Bluetooth: hci0: BCM: firmware hci_ver=06 hci_rev=007e lmp_ver=06 lmp_subver=210b 

您需要先安装固件。 可以使用这个答案来完成。

但看起来内核3.13.0-59有很多错误。 其中包括无法加载固件。

我建议将内核升级到3.19。 它可以通过在终端中运行来完成

 sudo apt-get install linux-generic-lts-vivid 

并重新启动。