[Bug 2013027] Re: Issues over broadcom brcmfmac43455 firmware
Sergio Callegari
2013027 at bugs.launchpad.net
Fri Jul 28 13:06:12 UTC 2023
I have diagnosed the problem as follows.
My broadcom 43455 adapter needs:
1. a different brcm43455-sdio.txt file from the one supplied in ubuntu,
which is a cypress provided version.
2. a different brcm43455-sdio.bin file from the one supplied in ubuntu,
that again is a cypress provided version
3. a different brcm43455-sdio.clm_blob file from the one supplied in
ubuntu
Now, 1 and 2 are no issue: I can supply the files needed by my hardware and put them side to side to the ubuntu supplied ones. This is because the system will seek `brcm43455-sdio.AZW-Z83 II.{txt, bin} first.
Incidentally, the txt file can be easily taken from the nvram of my system, while the bin file is the one that is supplied in armbian, libreelec etc, that for some reason is not the same as the cypress one found in ubuntu.
The real problem is 3. And this is because without the file made for my
hardware, the wifi will work in the 2.4 GHz band, but not in the 5GHz
band. However the file name for this does not appear to be adapted to my
system. Namely, if I put a 'brcm43455-sdio.AZW-Z83 II.clm_blob' file
side to side to 'brcm43455-sdio.clm_blob' that will be ignored.
This makes it impossible to place board specific brcm files *side to
side* the those currently specified by the distro (unless I miss
something). If this is the case, then there are two possible
workarounds:
1. Make a deb file with a diversion for the clm_blob file
2. Use the brcmfmac module option `alternative_fw_path` to specify and alternative firmware path for my brcm hardware and put my bin, txt and clm_blob files there
However, I really tend to think that these are just ugly workarounds for
what is ultimately an issue with the brcmfmac kernel module. If the
module can determine that for by board the filename should be
`brcm43455-sdio.AZW-Z83 II.{txt,bin}` for the txt and bin pieces of the
firmware, then why cannot it look at `brcm43455-sdio.AZW-Z83
II.clm_blob` before falling back to `brcm43455-sdio.clm_blob`? That
would make it easy to put different firmwares in the the brcm firmware
directory side by side and make the framework that is already there for
the txt and bin files actually useful.
Please consider reopening the issue, passing it to the brcmfmac
maintainers.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to linux-firmware-raspi2 in
Ubuntu.
https://bugs.launchpad.net/bugs/2013027
Title:
Issues over broadcom brcmfmac43455 firmware
Status in linux-firmware package in Ubuntu:
Incomplete
Status in linux-firmware-raspi2 package in Ubuntu:
Invalid
Bug description:
Hi, I have a Kodlix Z83-II minicomputer that employs a broadcom
chipset for WIFI.
The only way to make wifi on that PC work is to use the firmware from
the windows image, even if that chipset is apparently managed in
ubuntu.
With the firmware files provided by ubuntu you get no 5GHz for wifi.
The problem is that every time ubuntu updates the firmware package,
firmware files dropped in /lib/firmware get overwritten, linking to
some file in the cypress sub-directory.
- Ideally, Ubuntu should provide all the firmware files that might be
needed. Maybe this is not possible as there is a too large variety of
different firmwares for broadcom chipsets or licesing issues
preventing distribution.
- As a second possibility, there should be a way to drop files in
/lib/firmware 'side to side' to the distro ones, without having the
risk of finding the manually added files rewritten. This implies that
different pieces of hardware use firmware files with different
filenames. Don't know if this is truly possible, as I do not know how
the linux kernel decides the name of the firmware to load.
- In cases like mine, it seems that the ubuntu firmware package puts
in place symlinks to have brcmfmac43455 files point to the
corresponding cypress cyfmac43455 files. Possibly, the package could
avoid creating the symlinks if a brcmfmac43455 file is manually placed
in lib/firmware.
- As a last resort, I think that the documentation in
`/usr/share/doc/linux-firmware` should be augmented to describe the
most appropriate way to prevent custom firmware files from being
rewritten: marking files not-writable? introducing diversions?
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-firmware/+bug/2013027/+subscriptions
More information about the foundations-bugs
mailing list