蓝牙无法在带有Dell Inspiron 15-3521的Ubuntu 14.04上运行


9

我有一台预装了Ubuntu 12.04的笔记本电脑Dell inspiron 15-3521,它运行良好(我删除了此Ubuntu)。我安装了Ubuntu 14.04(全新安装)。

(安装的驱动程序是:bcmwl-kernel-source 6.30.223.141+bdcom-0ubuntu2

WiFi网络正常运行,但是蓝牙不起作用(我的手机,其他个人电脑和笔记本电脑看不到,笔记本电脑看不到任何东西。)

蓝牙设备已启用且已打开且可见。

lspci 结果:

00:00.0 Host bridge: Intel Corporation 3rd Gen Core processor DRAM Controller (rev 09)
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
00:14.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller (rev 04)
00:16.0 Communication controller: Intel Corporation 7 Series/C210 Series Chipset Family MEI Controller #1 (rev 04)
00:1a.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (rev 04)
00:1b.0 Audio device: Intel Corporation 7 Series/C210 Series Chipset Family High Definition Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 1 (rev c4)
00:1c.1 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 2 (rev c4)
00:1d.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation HM76 Express Chipset LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation 7 Series Chipset Family 6-port SATA Controller [AHCI mode] (rev 04)
00:1f.3 SMBus: Intel Corporation 7 Series/C210 Series Chipset Family SMBus Controller (rev 04)
01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express Fast Ethernet controller (rev 05)
02:00.0 Network controller: Broadcom Corporation BCM43142 802.11b/g/n (rev 01)

lsusb 结果:

Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 
Bus 001 Device 005: ID 064e:8132 Suyin Corp. 
Bus 001 Device 004: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller 
Bus 001 Device 003: ID 0a5c:21d7 Broadcom Corp. BCM43142 Bluetooth 4.0
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 002: ID 19d2:0031 ZTE WCDMA Technologies MSM MF110/MF627/MF636
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

看来它没有连接到您的PCI总线,您可以lsusb通过编辑输出来更新您的问题吗?
P.-H. Lin

不是那个,是无线网卡。
P.-H. Lin

蓝牙出现在lsusb
Momo

我现在能做什么?
Momo 2014年

Answers:



8

与Diabolik2类似的步骤。新信息是在何处以及如何获取十六进制文件。

资料来源:

为了获得完整的解决方案,我从头开始编写所有步骤:

  1. 查找设备的ID:

    $ lsusb | grep蓝牙

    我的输出例如:

    总线001设备003:ID 0a5c:21d7 Broadcom Corp.BCM43142蓝牙4.0

    从中应该记住0a5c:21d7

  2. 获取设备的十六进制文件:

  3. 在HCD文件复制到/ lib中/固件LIB /固件/ FW- 0a5c_21d7 .hcd。

    在文件名中,使用您之前发现的ID。


1
步骤3.应将hcd文件复制到:/lib/firmware/brcm/
david6

I have extracted the last .hex file by chance. Fortunately it worked.-阅读此书的人请注意,如果它不起作用,可能会损坏某些东西,因此,只有Diabolik2的帖子对您​​不起作用时,您才应该这样做。
2015年

1
阅读内容也很重要dmesg | grep Bluetooth,因为它会为您提供有用的信息。在我的情况下,它说无法加载文件brcm / BCM.hcd,所以我将hcd文件命名为BCM.hcdfw-0a5c_21d7.hcd然后将其复制到/lib/firmware/brcm/。它像魅力一样运作。DELL inspiron 15-3543。–
Qualphey

哦,hex我使用Florin C的答案中建议的方法选择了文件 。使用inf文件。
Qualphey

1
对于Ubuntu 16.04,解决方案是按照上述说明从Windows中获取.hex文件,并按照说明进行转换.hdc,但是您需要为固件文件输入一个不同的名称,例如:(/lib/firmware/brcm/BCM-0a5c-6410.hcd取决于您的lsusb bus:devnum ID)
morhook

6

回答说我必须安装Windows才能获得Linux的固件...听起来错了,不是吗?

但是以前的答案是金。我在使用Ubuntu 12.04 386的戴尔中使用蓝牙很长时间后就可以正常工作。以下是我对先前答案的完成情况(尤其是sb):

  1. 某人的出租车很好,并且有该家族几个芯片的十六进制文件。

  2. cabextract是用于提取.cab存档的工具。只是:

    须藤apt-get install cabextract

并通过以下方式提取:

cabextract 20573731_e75f2c1244fb153ccc4c1cac0dfbbab030d18543.cab

请注意,驾驶室内没有目录,只有文件,因此您会得到很多十六进制文件。最好将一个特定的目录mkdir并提取其中的cab。

  1. 如何获得正确的十六进制文件

所以我有芯片的ID:0a5c:21d7和一堆hex文件。我怎样才能找到合适的呢?诀窍是研究指示Windows安装内容的.inf文件。搜索21D7(注意用大写字母D代替“ d”),我得到以下信息:

%Dell1704.DeviceDesc%= RAMUSB21D7,US​​B \ VID_0A5C&PID_21D7; BRCM通用43142A0 RAMUSB

USB / VID&PID是我在lsusb上看到的:大写(0a5c:21d7)。接下来需要在inf文件中搜索RAMUSB21D7(这是设备的描述)。

这是我的结果:

;;;;;;;;;;;;;RAMUSB21D7;;;;;;;;;;;;;;;;;

[RAMUSB21D7.CopyList]
bcbtums.sys
btwampfl.sys
BCM43142A0_001.001.011.0122.0126.hex

我将使用的十六进制文件是BCM43142A0_001.001.011.0122.0126.hex

其余与上面相同。通过git获取工具,进行构建,将hex文件转换为hcd,丢弃/重新加载btusb。

注意:请注意,hcd文件应以fw -......开头,而不是以fw _......开头。我犯了此错误。:)


提取正确的十六进制文件后,请执行以下步骤。当我重启机器并触发命令时dmesg | grep firmware。我的输出是[ 15.023826] bluetooth hci0: Direct firmware load for brcm/BCM43142A0-0a5c-21d7.hcd failed with error -2
ravi1991 '16

6

我已经通过这篇文章的解决方案解决了这个问题:

总而言之,我已经完成了以下步骤:列出您的ID:

lsusb

我的身份证是: 0a5c:21d7

获取文件.hex:在Windows分区中(假设您使用Windows双重启动),在中获取文件BCMxxxx.hex C:\windows\system32\drivers。如果有两个或多个.hex文件,请查看Windows设备管理器正在使用哪个文件。将此文件复制到您的主目录中

打开终端并输入以下命令:

sudo apt-get install git
git clone git://github.com/jessesung/hex2hcd.git
cd hex2hcd
make
./hex2hcd ../BCMxxxx.xxx.xxx.xx.hex fw-0a5c_21d7.hcd (Replace 0a5c_21d7 with your id)
sudo cp fw* /lib/firmware

使用以下命令重新加载模块:

sudo modprobe -r btusb
sudo modprobe btusb

重启你的电脑。

打开终端并输入:

dmesg | grep firmware

如果可以,您可以查看以下消息:

[   xxxxxxxxxx] Bluetooth: firmware loaded

这就是全部。

祝你好运Diabolik2


1
虽然此链接可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。如果链接的页面发生更改,仅链接的答案可能会失效。
αғsнιη

请注意,该帖子显然已按照此处
Wilf

0

在我的情况下,直到我在/ lib / firmware /中创建brcm目录并将文件重命名为之前,蓝牙固件才加载

BCM43142A0-0a5c-21d7.hcd

我正在使用Debian 8和Dell Inspiron 15

干杯


-1

解决方案有效(Ubuntu 14.04 kernel-4.2)就我而言,HCD文件需要命名为BCM.hcd。您应该为hcd文件命名的确切文件名将在加载错误的说明中说明,可以使用以下命令查看:

dmesg | grep firmware

正如Wilf所说!


欢迎来到Ask Ubuntu!请不要添加评论作为答案。在网站上花费一些时间,您将获得足够的特权来投票赞成您喜欢的答案,例如this,或者在寻求任何问题的澄清时添加实际评论。
马丁·桑顿
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.