蓝牙没有使用dell inspiron 15-3521在ubuntu 14.04上运行

我有一台安装了Ubuntu 12.04的笔记本电脑戴尔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 

总线001设备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中兴WCDMA技术MSM MF110 / MF627 / MF636总线003设备001:ID 1d6b:0002 Linux Foundation 2.0根集线器

不幸的是,您的蓝牙设备:

 Bus 001 Device 003: ID 0a5c:21d7 Broadcom Corp. BCM43142 Bluetooth 4.0 

任何版本的Ubuntu都不支持,请参考
Bug1129865 [Broadcom Combo BT / Wifi卡] 21D3 21D7蓝牙根本检测不到任何东西
(原因列于评论#7)

我建议你订阅这个bug:
错误106540​​0支持加载Broadcom蓝牙固件
这个post可能有一个解决方法,祝你好运!

与Diabolik2类似的步骤。 新信息是获取hex文件的位置和方式。

资料来源:

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

  1. 查找您设备的ID:

      $ lsusb |  grep蓝牙 

    我的输出例如:

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

    从中应该记住0a5c:21d7

  2. 获取设备的hex文件:

    • 在谷歌搜索蓝牙驱动程序后,我选择了这个下载: http : //drivers.softpedia.com/get/BLUETOOTH/Broadcom/Broadcom-43142-Bluetooth-40-Adapter-Driver-12007030-for-Windows-8.shtml #下载
    • 我偶然提取了最后一个.hex文件。 幸运的是它奏效了。 步骤:在nautilus中右键单击下载的.cab文件>选择打开存档管理器 >选择存档列表中的最后一个.hex文件>右键单击> 提取…
    • 下载并编译hex2hcd
        $ git clone git://github.com/jessesung/hex2hcd.git
       $ cd hex2hcd
       $ make 
    • 将.hex转换为.hcd
        $ ./hex2hcd /path/to/extracted.hex /where/you/want/your_new.hcd 
  3. 将hcd文件复制到/ lib / firmware作为lib / firmware / fw- 0a5c_21d7 .hcd。

    在文件名中使用您之前找到的ID。

答案说我必须安装Windows来获取Linux的固件……声音不对,不是吗?

但之前的答案是黄金。 我在戴尔使用Ubuntu 12.04 386后长时间工作蓝牙。这里是我之前答案的完成(特别是某人):

  1. sb的驾驶室很好,并且在这个系列上有几个芯片的hex文件。

  2. cabextract是一个提取.cab存档的工具。 只是:

    sudo apt-get install cabextract

并通过以下方式提取:

 cabextract 20573731_e75f2c1244fb153ccc4c1cac0dfbbab030d18543.cab 

请注意,cab中没有目录,只有文件,因此您将获得大量的hex文件。 mkdir特定目录并在那里提取cab是很好的。

  1. 如何获得正确的hex文件

所以我有芯片的ID: 0a5c:21d7和一堆hex文件。 我怎样才能找到合适的产品? 诀窍是调查.inf文件,指示Windows安装什么。 搜索21D7(注意大写字母D而不是’d’)我得到这个:

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

USB / VID和PID是我在lsusb:capital(0a5c:21d7)上得到的。 我需要在inf文件中搜索下一个RAMUSB21D7(这是设备的描述)。

这是我的结果:

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

我将使用的hex文件是BCM43142A0_001.001.011.0122.0126.hex

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

注意:请注意hcd文件应该以fw -……开头而不是fw _……我犯了这个错误。 🙂

我用这篇文章的解决方案解决了这个问题:

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

 lsusb 

我的身份是: 0a5c:21d7

获取文件.hex:在您的Windows分区中(假设您使用Windows进行双启动) ,在C:\windows\system32\drivers获取文件BCMxxxx.hex。 如果有两个或更多文件.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

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

BCM43142A0-0a5c-21d7.hcd

我正在使用Debian 8和戴尔Inspiron 15

干杯

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

 dmesg | grep firmware 

正如威尔夫所说!