我有一台戴尔 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 中的步骤类似。新信息是从哪里以及如何获取十六进制文件。
资料来源:
- https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1065400/comments/11
- https://askubuntu.com/a/534632/336592。
为了得到完整的解决方案,我从头开始写下所有步骤:
查找您的设备 ID:
$ lsusb | grep 蓝牙
我的输出例如:
总线 001 设备 003:ID 0a5c:21d7 Broadcom Corp. BCM43142 蓝牙 4.0
从中0a5c:21d7应该被记住。
获取你的设备的十六进制文件:
- 在 Google 中搜索蓝牙驱动程序后,我选择了此下载:http://drivers.softpedia.com/get/BLUETOOTH/Broadcom/Broadcom-43142-Bluetooth-40-Adapter-Driver-12007030-for-Windows-8.shtml#download
- 我偶然提取了最后一个 .hex 文件。幸运的是,它成功了。步骤:在 nautilus 中右键单击下载的。出租车文件 > 选择使用存档管理器打开> 选择最后一个.hex存档列表中的文件 > 右键单击 >提炼...
- 下载并编译hex2hcd
$ git 克隆 git://github.com/jessesung/hex2hcd.git $ cd hex2hcd $ make
- 将 .hex 转换为 .hcd
$ ./hex2hcd /path/to/extracted.hex /其中/你/想要/你的新.hcd
将 hcd 文件复制到/lib/固件作为lib/固件/fw-0a5c_21d7.hcd。
在文件名中使用您之前找到的ID。
答案2
答案说我必须安装 Windows 才能获得 Linux 固件...听起来不对,不是吗?
但之前的答案是金子。我的戴尔电脑装有 Ubuntu 12.04 386,蓝牙在很长时间后仍然能正常工作。以下是我对之前答案的补充(特别是 sb):
sb 的 cab 很好,有这个系列的几个芯片的十六进制文件。
cabextract 是一个用于提取 .cab 档案的工具。只需:
sudo apt-get 安装 cabextract
并通过以下方式提取:
cabextract 20573731_e75f2c1244fb153ccc4c1cac0dfbbab030d18543.cab
请注意 cab 中没有目录,只有文件,因此您将获得大量十六进制文件。最好创建特定目录并在其中提取 cab。
- 如何获取正确的十六进制文件。
所以我得到了芯片的 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
我将使用的十六进制文件是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
干杯