蓝牙Bluetooth Broadcom 43142驱动问题

本文介绍了解决Broadcom43142蓝牙适配器无法正常工作的问题步骤。首先需要从官方或其他渠道获取正确的固件文件,然后通过一系列命令行操作将固件转换为系统可读格式并安装到指定目录。完成这些步骤后,重启计算机即可解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Bluetooth is on but can't find or be found by any other devices.

sudo service bluetooth status

● 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

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


You need to install firmware.

Distribution of Broadcom firmware is not allowed by Broadcom license. So you need to get it yourself. It is a bit complex, but there is no other legal way.

  1. Download Broadcom Windows 8 driver or FROM HERE.

If you device is not listed in these drivers, you'll need to find a newer version of it somewhere. Broadcom removed the latest drivers from their site to make it more difficult.

Some laptop vendors have Bluetooth drivers on their sites, but some of them are not unzippable. So it is some quest. I could download the latest Broadcom drivers from their site, but it is not there any more.

  1. Open this file by Archive Manager and find there bcbtums-win8x86-brcm.inf file. Name of the file may differ in some drivers. It can be bcbtums.inf located at Win32 or Win64 directory. It does not matter 32 or 64 bit to download.
  2. Search this file for VID_0A5C&PID_21D7. These numbers are from your lsusb output

    0a5c:21d7 Broadcom Corp. BCM43142 Bluetooth 4.0.

Comment: Some devices are not recognized as Broadcom BT in lsusb. If you are unsure which one is your BT device, run usb-devices command, it will give more detailed information. There you can find product and vendor IDs.

You will see some line ending with RAMUSB21D7

Search this file for RAMUSB21D7. You will find a section there like that:

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

That's what we are looking for. Name of the firmware file. BCM43142A0_001.001.011.0122.0126.hex

  1. Now extract that firmware from the same cab file.

    Then you need to convert this file from hex to hcd format.

  2. Download the tool for that

    git clone git://github.com/jessesung/hex2hcd.git
    cd hex2hcd
    make
    

    You will get hex2hcd folder in your home directory.

  3. Place the firmware file to your home folder and run

    ~/hex2hcd/hex2hcd ~/BCM43142A0_001.001.011.0122.0126.hex ~/BCM43142A0-0a5c-21d7.hcd
    

    You see that 0a5c-21d7 is id of your adapter from lsusb.

Important: For kernels 4.2+ you call this file as BCM.hcd instead.

   ~/hex2hcd/hex2hcd ~/BCM43142A0_001.001.011.0122.0126.hex ~/BCM.hcd

For kernels 4.8+ name of the file should be BCM-<VID>-<PID>.hcd, like BCM-0a5c-21d7.

  1. Now just copy BCM43142A0-0a5c-21d7.hcd, or another file according to the kernel version to /lib/firmware/brcm directory by

    sudo cp ~/BCM43142A0-0a5c-21d7.hcd /lib/firmware/brcm
    

For kernels 4.2+

    sudo cp ~/BCM.hcd /lib/firmware/brcm

For kernels 4.8+

    sudo cp ~/BCM-0a5c-21d7.hcd  /lib/firmware/brcm

You can always check if the file name is correct by running dmesg | grep -i blue. There will be an error message if the file is not found.

  1. Turn your computer off and on again. Not just reboot!

    Your adapter will get firmware and bluetooth should work.

All this looks complicated, but it is Broadcom lawyers to blame for that. Most of other vendors allow to re-distribute firmware under condition that it is done acompanied with the license.

That allows linux maintainers to include firmware in distributions.

But not in case of Broadcom. That's why it is not done an easy way.

Many people could convert all hex files to hcd and make them available. Or just add them to linux-firmware package of Ubuntu.

But it is not legal :-((


转载自:https://askubuntu.com/questions/632336/bluetooth-broadcom-43142-isnt-working/632348#632348

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值