蓝牙无法在 ubuntu 14.04 上与 Dell Inspiron 15-3521 一起使用

Mom*_*omo 10 bluetooth inspiron dell drivers 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)
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

小智 8

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

资料来源:

为了有一个完整的解决方案,我从一开始就写下了我的所有步骤:

  1. 查找您的设备 ID:

    $ lsusb | 蓝牙

    我的输出例如:

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

    从中应该记住0a5c:21d7

  2. 为您的设备获取 hex 文件:

  3. 将 hcd 文件作为lib/firmware/fw- 0a5c_21d7 .hcd复制到/lib/firmware

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


小智 6

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

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

lsusb
Run Code Online (Sandbox Code Playgroud)

我的身份证是: 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
Run Code Online (Sandbox Code Playgroud)

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

sudo modprobe -r btusb
sudo modprobe btusb
Run Code Online (Sandbox Code Playgroud)

重启你的电脑。

打开终端并写入:

dmesg | grep firmware
Run Code Online (Sandbox Code Playgroud)

如果没问题,您可以查看消息:

[   xxxxxxxxxx] Bluetooth: firmware loaded
Run Code Online (Sandbox Code Playgroud)

这就是全部。

祝你好运暗黑破坏神2


Flo*_*n C 6

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

但之前的答案是黄金。我在戴尔使用 Ubuntu 12.04 386 长时间使用蓝牙。这里是我对之前答案的完成(尤其是 sb):

  1. sb 的驾驶室很好,有这个系列的几个芯片的十六进制文件。

  2. cabextract 是一种提取 .cab 档案的工具。只是:

    sudo apt-get 安装 cabextract

并通过以下方式提取它:

cabextract 20573731_e75f2c1244fb153ccc4c1cac0dfbbab030d18543.cab
Run Code Online (Sandbox Code Playgroud)

请注意,cab 内没有目录,只有文件,因此您会得到很多 hex 文件。最好 mkdir 一个特定的目录并在那里提取 cab。

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

所以我有芯片的 id: 0a5c:21d7和一堆十六进制文件。我怎样才能得到适合我的?诀窍是调查指示 Windows 安装什么的 .inf 文件。搜索 21D7 (注意大写 D 而不是 'd')我得到这个:

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

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

这是我的结果:

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

[RAMUSB21D7.CopyList]
bcbtums.sys
btwampfl.sys
BCM43142A0_001.001.011.0122.0126.hex
Run Code Online (Sandbox Code Playgroud)

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

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

注意:注意 hcd 文件应该以 fw-...... 而不是 fw_...... 开头我犯了这个错误。:)


P.-*_*Lin 4

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

Bus 001 Device 003: ID 0a5c:21d7 Broadcom Corp. BCM43142 Bluetooth 4.0
Run Code Online (Sandbox Code Playgroud)

任何版本的 Ubuntu 均不支持,请参阅
Bug1129865 [Broadcom Combo BT/Wifi Card] 21D3 21D7 蓝牙根本检测不到任何内容
(原因在注释 #7 中列出)

我建议您订阅此错误:
Bug 106540​​0 支持加载 Broadcom 蓝牙固件
该线程中可能有解决方法,祝你好运!