Bug 1622367 - missing /usr/lib/firmware/brcm/BCM4343A0.hcd prevented me to use bluetooth with my ezBook2 (including) workaround)
Summary: missing /usr/lib/firmware/brcm/BCM4343A0.hcd prevented me to use bluetooth wi...
Keywords:
Status: CLOSED EOL
Alias: None
Product: Fedora
Classification: Fedora
Component: linux-firmware
Version: 28
Hardware: x86_64
OS: Linux
unspecified
high
Target Milestone: ---
Assignee: David Woodhouse
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-08-26 21:25 UTC by GroovieMan
Modified: 2019-05-28 23:05 UTC (History)
6 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2019-05-28 23:05:46 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
bluetooth diagnosis (4.17 KB, text/plain)
2018-10-16 14:50 UTC, Paul Lambert
no flags Details

Description GroovieMan 2018-08-26 21:25:54 UTC
Description of problem:
Bluetooth adapter for my cheap ezbook2 notebook does not work. A look into the 
$ dmesg | grep brcm
showd me that the file /usr/lib/firmware/brcm/BCM4343A0.hcd could not be found.

Version-Release number of selected component (if applicable):
linux-firmware 20180815

How reproducible:
restart and get no bluetooth

Steps to Reproduce:
1.
2.
3.

Actual results:
I found a similar here: 
https://gitlab.com/TeeFirefly/FireNow-Marshmallow/blob/061bdfd4bdd7cce2fe55e1013f3d3f23de7603ca/vendor/rockchip/common/bluetooth/lib/firmware/4343A0.hcd and had to rename it and copied it to firmware directory.

Anyway there is still a message, i do not unterstand:
$ dmesg | grep brcm
[   87.377565] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43430a0-sdio for chip BCM43430/0
[   87.377726] usbcore: registered new interface driver brcmfmac
[   87.529661] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43430a0-sdio for chip BCM43430/0
[   87.529848] brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43430a0-sdio.clm_blob failed with error -2
[   87.529866] brcmfmac: brcmf_c_process_clm_blob: no clm_blob available (err=-2), device may have limited channels available
[   87.534899] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM43430/0 wl0: May 29 2017 00:03:43 version 7.13.53.9 (r664949) FWID 01-130000

There is still a missing brcm/brcmfmac43430a0-sdio.clm.

Expected results:
running bluetooth

Additional info:

Comment 1 Paul Lambert 2018-10-16 14:50:49 UTC
Created attachment 1494418 [details]
bluetooth diagnosis

Earlier in 2018 bluetooth was pairing for fc27 successfully to several devices.  I have not used bluetooth for several months but tried it yesterday.  With bluetooth on no bluetooth devices are even being displayed.  Other bluetooth devices are displaying and pairing to the devices the fc27 bluetooth will not.

All the diagnostics in in the attached file.  The issue appears to be the same as the Broadcome WIFI issue, the driver is not loading.  The wifi solution was to blacklist the Broadcom b43 driver as this driver is now being included in the Fedora build.  I would expect that the solution to this bug is to blacklist the incorrect bluetooth driver that is loading before the driver my bluetooth uses.

At a higher level where where is the website that I can submit a change requests to the linux kernel?  The current practice of including "dead" code in the kernel does not only make supporting linux more expensive to support than Windows it is also  is a quality control issue as many companies have corporate QA policies that forbid any "dead" code in computers.

Comment 2 Paul Lambert 2018-10-27 16:30:58 UTC
Bluetooth sill not working using the latest fc27 kernel
4.18.16-100.fc27.x86_64 #1 SMP Sun Oct 21 09:33:00 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

The boot sequence looks up the device and determines the required driver then looks for it at 
/lib/firware/brcm. (or maybe /usr/lib/firmware/brcm.  One would think that these 2 directories would be linked.  But no they are copies of each other wasting disk space and confusing users when dirver problems arise.  Its been like 10 years since Linux created /lib/modules for kenels and /lib/firmware for device drivers.)

[EB30750@BRSINC-01Fed ~]$ dmesg | grep -i blue
[    4.310114] Bluetooth: Core ver 2.22
[    4.310138] Bluetooth: HCI device and connection manager initialized
[    4.310143] Bluetooth: HCI socket layer initialized
[    4.310145] Bluetooth: L2CAP socket layer initialized
[    4.310152] Bluetooth: SCO socket layer initialized
[    4.461162] Bluetooth: hci0: BCM: chip id 70
[    4.464128] Bluetooth: hci0: BCM: features 0x06
[    4.482146] Bluetooth: hci0: BCM43142A
[    4.485130] Bluetooth: hci0: BCM43142A0 (001.001.011) build 0000
[    4.485515] bluetooth hci0: Direct firmware load for brcm/BCM43142A0-0a5c-216d.hcd failed with error
 -2
[    4.485519] Bluetooth: hci0: BCM: Patch brcm/BCM43142A0-0a5c-216d.hcd not found

It is clear that this driver is in this directory as shown below.  In previous kernels is was necessary to copy the firmware driver file to BCM.hcd.  I did this just to be sure (in both /lib/... & /usr/lib/... directories) but this solution no longer works.  The firmware driver did not load before I made this change either.

The directory /user/lib/firmware/brcm is the same as /lib/firmware/brcm

[EB30750@BRSINC-01Fed brcm]$ cd /lib/firmware/brcm
[EB30750@BRSINC-01Fed brcm]$ ls -l
total 16836
-rw-r--r-- 1 root root  54734 Oct 15 08:30 BCM-0bb4-0306.hcd
-rw-r--r-- 1 root root 208583 Aug 18  2017 BCM43142A0-0a5c-216c.hcd
-rw-r--r-- 1 root root 269595 Oct 15 08:30 bcm4329-fullmac-4.bin
-rw-r--r-- 1 root root  96224 Oct 15 08:30 bcm43xx-0.fw
-rw-r--r-- 1 root root    180 Oct 15 08:30 bcm43xx_hdr-0.fw
-rw-r--r-- 1 root root 208583 Oct 27 10:04 BCM.hcd
-rw-r--r-- 1 root root  29618 Oct 27 10:03 BCM.hcd.old
-rw-r--r-- 1 root root 397312 Oct 15 08:30 brcmfmac43143.bin

At this point this is a driver load issue.  Maybe kernel loading helper (udev?) is not forming the correct path or something.  Broadcom wireless users have not a fully functional kernel since like March.

Comment 3 Paul Lambert 2018-10-28 18:56:11 UTC
It appears the Fedora (Linux) broken bluetooth has to due with loading the firmware to the Broadcom chip.  

"Broadcom bluetooth chips require a tool called patchram uploader [1] to load firmware. This applies to at least BCM20702 and BCM43142. Although some of the devices have an OTPROM that contains required firmware, but it is found that these devices would not have HFP/HSP support unless a upgraded firmware is loaded via patchram uploader."

From https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1065400 dated 2012-10-11.

This error indicates (word Patch) that the application patchram cannot be located
 [    4.485519] Bluetooth: hci0: BCM: Patch brcm/BCM43142A0-0a5c-216d.hcd not found

bluetooth modules loaded
[root@BRSINC-01Fed brcm]# lsmod | grep -i blue
bluetooth                 593920  41 btrtl,btintel,btbcm,bnep,btusb,rfcomm
ecdh_generic           24576  2 bluetooth
rfkill                         28672  8 hp_wmi,bluetooth,cfg80211

I have searched my system and there is no such application patchram found.  I have not upgraded my system which might have deleted this application.  There are some indications that this software is old and is only needed by older Broadcom chips.  This contradicts the leading statement above but it is a 6 year old post

I believe the changes starting with kernel 4.17 that also broke Broadcom wifi using wl also broke blutetooth in a simlar manner.  SSB prior to 4.17 was a module but starting in 4.17 the config file was changed to compile it directly into the kernel.  See bug 1572349.  This broke Broadcom wifi until the admin blacklisted the bcma module.  

There must be another kernel bluetooth compile option that was changed reverted the build to enable the use of patchram to upload the Broadcom bluetooth firmware.  There simply no evidence that the patchram application was ever on my system.

Comment 4 Paul Lambert 2018-10-31 22:53:47 UTC
SOLVED

The best I can deduce is that the latest fc27 kernel resolved this bug.  
 4.18.16-100.fc27.x86_64

This bug was due to the bluttooth firmware not getting loaded

The previous bluetooth firmware BCM43142A0-0a5c-216c.hcd needed to be updated to BCM43142A0-0a5c-216d.hcd.  The former file size is 208583 and the latter 29618 so obviously there was some kernel driver changes.  The bluetooth output from dmesg has a few added lines than the previous kernels dmesg outputs.

1) The solution is to upgrade to the the 4.18.16 kernel,
2) Download the proper Broadcom firmware version for (mine is BCM43142) that is displayed in the dmesg bluetooth -2 error
3) reboot

Comment 5 Ben Cotton 2019-05-02 20:31:11 UTC
This message is a reminder that Fedora 28 is nearing its end of life.
On 2019-May-28 Fedora will stop maintaining and issuing updates for
Fedora 28. It is Fedora's policy to close all bug reports from releases
that are no longer maintained. At that time this bug will be closed as
EOL if it remains open with a Fedora 'version' of '28'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 28 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 6 Ben Cotton 2019-05-28 23:05:46 UTC
Fedora 28 changed to end-of-life (EOL) status on 2019-05-28. Fedora 28 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.


Note You need to log in before you can comment on or make changes to this bug.