我浏览了许多与该问题相关的帖子,但没有找到一个完整的答案。
问题:无法发现\检测其他蓝牙节点。
信息:
$ 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 和蓝牙设备。
能否有人解释一下这个问题:
- 怎么了?
- 有没有什么软件解决方案?(我知道我可以购买不同的硬件)
更新: 我按照 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
答案1
您需要先安装固件。可以使用这个答案。
但看起来内核 3.13.0-59 有很多 bug,其中包括无法加载固件。
我建议将内核升级到 3.19。可以在终端中运行
sudo apt-get install linux-generic-lts-vivid
然后重新启动。