首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >蓝牙Broadcom 43142无法工作

蓝牙Broadcom 43142无法工作
EN

Ask Ubuntu用户
提问于 2015-06-04 18:45:55
回答 3查看 104.8K关注 0票数 49

蓝牙是开着的,但其他设备找不到,也找不到。

sudo service bluetooth status的输出:

代码语言:javascript
复制
● bluetooth.service - Bluetooth service
   Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
   Active: active (running) since ხუთ 2015-06-04 22:33:18 GET; 13min ago
 Main PID: 26678 (bluetoothd)
   CGroup: /system.slice/bluetooth.service
           └─26678 /usr/sbin/bluetoothd -n

ივნ 04 22:39:14 Rangoo bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/HFPAG
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/HFPHS
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/A2DPSource
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/A2DPSink
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/HFPAG
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/HFPHS
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/A2DPSource
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: bluetoothd[26678]: Endpoint registered: sender=:1.63 path=/MediaEndpoint/BlueZ4/A2DPSink
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: Adapter /org/bluez/26678/hci0 has been enabled
ივნ 04 22:39:14 Rangoo bluetoothd[26678]: bluetoothd[26678]: Adapter /org/bluez/26678/hci0 has been enabled

lsusb的输出:

代码语言:javascript
复制
Bus 003 Device 005: ID 0a5c:21d7 Broadcom Corp. BCM43142 Bluetooth 4.0

我怎么才能修好它?

EN

回答 3

Ask Ubuntu用户

回答已采纳

发布于 2015-06-04 19:03:50

你需要安装固件。

Broadcom许可证不允许分发Broadcom固件。所以你得自己去拿。这是有点复杂,但没有其他法律途径。

  1. 下载Broadcom 8驱动程序从这里开始。如果您的设备没有在这些驱动程序中列出,您需要在某个地方找到它的更新版本。Broadcom从他们的网站上删除了最新的驱动程序,使其变得更加困难。一些笔记本厂商在他们的网站上有蓝牙驱动程序,但其中一些并不是不可压缩的。所以这是一种追求。我可以从他们的网站下载最新的Broadcom驱动程序,但是它已经不在了。
  2. 通过归档管理器打开这个文件,并在那里找到bcbtums-win8x86-brcm.inf文件。在某些驱动程序中,文件的名称可能有所不同。它可以是位于bcbtums.inf目录的Win32或Win64目录。下载32或64位并不重要。
  3. 搜索此文件以查找VID_0A5C&PID_21D7。这些数字来自您的lsusb输出0a5c:21d7 Broadcom . BCM43142蓝牙4.0。评论:在lsusb中,有些设备不能被识别为Broadcom。如果您不确定哪一个是您的BT设备,请运行usb-devices命令,它将提供更详细的信息。在那里,您可以找到产品和供应商ID。您将看到一些以RAMUSB21D7结尾的行,在这个文件中搜索RAMUSB21D7。您将在那里找到这样一个部分:RAMUSB21D7.CopyList bcbtums.sys btwampfl.sys BCM43142A0_001.001.011.0122.0126.hex,这就是我们正在寻找的部分。固件文件的名称。BCM43142A0_001.001.011.0122.0126.hex
  4. 现在从同一个cab文件中提取该固件。然后,您需要将此文件从十六进制转换为hcd格式。
  5. 下载git克隆工具git://github.com/jessesung/he2hcd.git cd hex2hcd使您在主目录中获得hex2hcd文件夹。
  6. 将固件文件放置到您的主文件夹中,并运行~/HEC22hcd/BCM43142A0_001.001.1.011.0122.0126.十六进制/BCM43142A0-0a5c-21d7.hcd,您可以看到0a5c-21d7是从lsusb发出的适配器id。重要:对于内核4.2+,您可以将该文件称为BCM.hcd。文件的内核4.8+名称的十六进制/ be 43142A0_001.001.001.011.0122.0126十六进制应该是BCM-<VID>-<PID>.hcd,类似于BCM-0a5c-21d7。对于内核5.0,文件名是BCM43142A0-0a5c-21d7.hcd,现在只需通过sudo ~/BCM 43142A0-0a5c-21d7.hcd/lib/固件/brcm为内核复制BCM43142A0-0a5c-21d7.hcd,或者根据内核版本将另一个文件复制到/lib/firmware/brcm目录中,您可以通过运行dmesg | grep -i blue始终检查内核的4.2+ sudo cp ~/BCM.hcd /lib/固件/brcm是否正确。如果找不到文件,将出现错误消息。如果请求的文件名与您创建的文件不匹配,请重命名hcd文件。
  7. 一次又一次地关闭计算机。不只是重新启动!您的适配器将获得固件和蓝牙应该工作。

这一切看起来都很复杂,但这要归咎于博通的律师们。大多数其他供应商允许重新分发固件,条件是它与许可证一起完成。

这允许Linux维护人员在发行版中包含固件。

但在Broadcom的情况下不行。这就是为什么这样做并不容易。

许多人可以将所有的十六进制文件转换为hcd,并使它们可用。或者将它们添加到Ubuntu的linux-firmware包中。

但这是不合法的:

票数 92
EN

Ask Ubuntu用户

发布于 2016-12-13 11:12:40

下面是一个旨在稍微自动化流程的项目:https://github.com/winterheart/broadcom-bt-firmware

根据内核的不同,将BCM复制到右边的dir/name (如前所述)。

在4.8上,我不需要重新启动,只需在终端中:

代码语言:javascript
复制
sudo modprobe -r btusb
sudo modprobe btusb

dmesg | grep -i blu

应该显示它是否已加载。确保硬件ID与文件匹配。它可以在下列方面找到:

代码语言:javascript
复制
lsusb

这显示在我的联想(只有这一行):

代码语言:javascript
复制
Bus 001 Device 006: ID 105b:e065 Foxconn International, Inc. BCM43142A0 Bluetooth module

我希望这有帮助:)

票数 22
EN

Ask Ubuntu用户

发布于 2021-05-26 14:53:30

仍然面临固件错误?

代码语言:javascript
复制
$ dmesg | egrep -i 'blue|firm'
[    0.108524] Spectre V2 : Enabling Restricted Speculation for firmware calls
[    0.144995] ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored
[    4.768278] thinkpad_acpi: ThinkPad firmware release H1EC34WW doesn't match the known patterns
[    4.808333] thinkpad_acpi: rfkill switch tpacpi_bluetooth_sw: radio is unblocked
[    5.267304] Bluetooth: Core ver 2.22
[    5.267329] Bluetooth: HCI device and connection manager initialized
[    5.267333] Bluetooth: HCI socket layer initialized
[    5.267335] Bluetooth: L2CAP socket layer initialized
[    5.267339] Bluetooth: SCO socket layer initialized
[    5.405755] Bluetooth: hci0: BCM: chip id 70
[    5.406559] Bluetooth: hci0: BCM: features 0x06
[    5.422570] Bluetooth: hci0: BCM43142A
[    5.422575] Bluetooth: hci0: BCM43142A0 (001.001.011) build 0000
[    5.424415] Bluetooth: hci0: BCM: firmware Patch file not found, tried:
[    5.424420] Bluetooth: hci0: BCM: 'brcm/BCM43142A0-105b-e065.hcd'
[    5.424421] Bluetooth: hci0: BCM: 'brcm/BCM-105b-e065.hcd'
[    7.441899] Bluetooth: hci0: command 0x1003 tx timeout
[    7.443566] Bluetooth: hci0: unexpected event for opcode 0x1003
[   17.500493] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   17.500496] Bluetooth: BNEP filters: protocol multicast
[   17.500501] Bluetooth: BNEP socket layer initialized
[   38.846123] Bluetooth: RFCOMM TTY layer initialized
[   38.846129] Bluetooth: RFCOMM socket layer initialized
[   38.846136] Bluetooth: RFCOMM ver 1.11
  • 我刚从听见找到了另一个方法

方法是:

  • broadcom-bt-固件下载brcm/BCM43142A0-105b-e065.hcd文件
  • 并粘贴到/lib/firmware/brcm文件夹中。
  • 用于执行此操作时,请使用以下命令。

指挥:

代码语言:javascript
复制
sudo apt-get update && sudo apt-get install wget

sudo wget https://github.com/winterheart/broadcom-bt-firmware/raw/master/brcm/BCM43142A0-105b-e065.hcd -P /lib/firmware/brcm
  • 重新启动您的pc :)
票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/632336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档