Problem reinstalling bcm20702a1-firmware-1201650-5.1.noarch

In my dmesg output, I see

   11.896435] bluetooth hci0: Direct firmware load for brcm/BCM20702A1-0a5c-21e6.hcd failed with error -2 
   11.896438] Bluetooth: hci0: BCM: Patch brcm/BCM20702A1-0a5c-21e6.hcd not found 

and searching around (e.g., I found out that this file (and others) is provided by the bcm20702a1-firmware-1201650-5.1.noarch package. I looked in /lib/firmware/brcm:

$ ls /lib/firmware/brcm/BCM* 

and sure enough, the files aren’t there.

Figuring that something went wrong when the package was installed, I tried to reinstall it:

# zypper in -f bcm20702a1-firmware-1201650-5.1.noarch

It looks like it’s successful - the output ends with

Converting BCM_DriverOnly/64/BCM20702A1_001.002.014.1443.1467.hex to BCM20702A1-0b05-17cb.hcd 
Converting BCM_DriverOnly/64/BCM20702A1_001.002.014.1443.1469.hex to BCM20702A1-0b05-17cf.hcd 
Converting BCM_DriverOnly/64/BCM20702A1_001.002.014.1483.1647.hex to BCM20702A1-05ac-21e1.hcd 
Converting BCM_DriverOnly/64/BCM20702A1_001.002.014.1483.1669.hex to BCM20702A1-0a5c-21e6.hcd 
Converting BCM_DriverOnly/64/BCM20702A1_001.002.014.1443.1467.hex to BCM20702A1-050d-065a.hcd 

but the files are still not present in /lib/firmware/brcm. Is there something else I need to do to put them there? I’d have thought installing the package would do that.


Try this one:

Thanks for the response. I have a few questions, as I’d like to understand and I’m not too familiar with how the package repos and things work for openSUSE, having come from Slackware.

  1. Is there a bug with installation of the package I already had, or was I doing something wrong? If there’s a bug, where should I report it?
  2. What’s the difference between your package and the one I had? Will yours make it into the main package repository?

I have also an Broadcom Bluetooth dongle which does not work with the firmware delivered from the OSS Repo.
So I have packed a newer one into an rpm, which works with my dongle.

Mine has the firmware-files unpacked inside, the one from the OSS Repo has a script to download, convert and save.
Also I have packed a few firmware files more, see inside.

But do you know why when I install the package the firmware files don’t end up in /lib/firmware? That, I suppose, is my main question right now.

Don’t know, here on Leap 15.1 it is working, installed it:

# LANG=C zypper se -si bcm20702a1-firmware
Loading repository data...
Reading installed packages...

S  | Name                | Type    | Version             | Arch   | Repository
i+ | bcm20702a1-firmware | package | 1201650-lp151.3.3.1 | noarch | OSS-Update


# ls -l /lib/firmware/brcm/ | grep BCM
-rw-r--r-- 1 root root   54734 17. Mär 2018  BCM-0bb4-0306.hcd
-rw-r--r-- 1 root root   34997  8. Aug 21:29 BCM20702A1-05ac-21e1.hcd
-rw-r--r-- 1 root root   35042  8. Aug 21:29 BCM20702A1-0a5c-21e6.hcd
-rw-r--r-- 1 root root   34700  8. Aug 21:29 BCM20702A1-0a5c-21e8.hcd
-rw-r--r-- 1 root root   35000  8. Aug 21:29 BCM20702A1-0b05-17cb.hcd
-rw-r--r-- 1 root root   35127  8. Aug 21:29 BCM20702A1-0b05-17cf.hcd

That’s strange. I’ll punt this over to one of the mailing lists and see if there’s a bug there.

Thanks again.

Packaging bug. Package unconditionally removes firmware files in postuninstall script, and this script always runs when updating package.

rm -f /lib/firmware/brcm/BCM20702A1-0b05-17cb.hcd
rm -f /lib/firmware/brcm/BCM20702A1-0b05-17cf.hcd
rm -f /lib/firmware/brcm/BCM20702A1-05ac-21e1.hcd
rm -f /lib/firmware/brcm/BCM20702A1-0a5c-21e6.hcd
rm -f /lib/firmware/brcm/BCM20702A1-0a5c-21e8.hcd
rm -f /lib/firmware/brcm/BCM20702A1-050d-065a.hcd
exit 0

You should file bug report on

Try removing package and installing again.

Hmm … now I consistently get not found, so it probably target version needs update as well. Could be local issue though.

Thanks arvidjaar!

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.

Or use Packman repo.