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

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

我有一台戴尔 inspiron 15-3521 笔记本电脑,预装了 Ubuntu 12.04,运行良好(我删除了这个 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

答案1

与 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。

答案2

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

但之前的答案是金子。我的戴尔电脑装有 Ubuntu 12.04 386,蓝牙在很长时间后仍然能正常工作。以下是我对之前答案的补充(特别是 sb):

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

  2. cabextract 是一个用于提取 .cab 档案的工具。只需:

    sudo apt-get 安装 cabextract

并通过以下方式提取:

cabextract 20573731_e75f2c1244fb153ccc4c1cac0dfbbab030d18543.cab

请注意 cab 中没有目录,只有文件,因此您将获得大量十六进制文件。最好创建特定目录并在其中提取 cab。

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

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

%Dell1704.DeviceDesc%=RAMUSB21D7,US​​B\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

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

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

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

答案3

我已经用以下解决方案解决了该问题这个帖子

总之,我已经完成了以下步骤:列出你的 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

答案4

在我的例子中,直到我在 /lib/firmware/ 中创建 brcm 目录并将文件重命名为

BCM43142A0-0a5c-21d7.hcd

我正在使用 Debian 8 和 Dell Inspiron 15

干杯

相关内容