latest brcmfmac driver and firmware

Plugging in devices such as LAN adapters, Wi-Fi cards, printers, etc. to Arch Linux ARM.

latest brcmfmac driver and firmware

Postby keithspg » Sat Oct 10, 2020 2:17 pm

I have seen references to this around for a while on different forums and such, mainly for the rpi. This module definitely affects the RPis, and possibly other arm SBCs and even my laptop, but I do not know. The linux kernel tree, apparently, has a driver from 2018 and in the meantime, broadcom sold this business to cypress. Cypress has continued to develop and updated firmware and driver info on their web page in June this year. I have hacked in the firmware on a B+ and 'it appears' to work better with iwd. I am trying to build the kernel module to see if it is any better.

What I have noticed is that with iwd, the current brcmfmac module has trouble reconnecting to its SSID if it goes down then comes back up. Also, iwd AP mode will not work at all with the current brcmfmac module. I have made a kernel patch and am now trying to get it to build.

Does anyone have any experience with this new module? Any notes of improved performance with even the firmware files?

Can anyone point to a page that details how to build the module without building the whole kernel?
I can be a guilea pig and report back on any improvements.

https://community.cypress.com/docs/DOC-20044

https://community.cypress.com/servlet/JiveServlet/download/20044-1-56065/cypress-fmac-v5.4.18-2020_0625.zip
keithspg
 
Posts: 221
Joined: Mon Feb 23, 2015 4:14 pm

Re: latest brcmfmac driver and firmware

Postby keithspg » Sun Oct 11, 2020 7:55 pm

Well, I went here:
https://wiki.archlinux.org/index.php/Compile_kernel_module
and read carefully, I think, but every time I try to get it to build the module it just creates a 'built-in.a' file and does not build the module.
What I did was 1st build the kernel and booted it to verify it all works as expected. Then, I followed the instructions on the wiki and did this:
$this->bbcode_second_pass_code('', 'cd /src/linux-uuid
make mrproper
cp ../../config .config
cp ../Module.symvers . (this was not on the wiki, but it would not build anything without this)
make oldconfig
make EXTRAVERSION=-ARCH modules_prepare
make M=drivers/net/wireless/broadcom/brcm80211')

and I get this:

$this->bbcode_second_pass_code('', '$ make M=drivers/net/wireless/broadcom/brcm80211
CC [M] drivers/net/wireless/broadcom/brcm80211/brcmutil/utils.o
CC [M] drivers/net/wireless/broadcom/brcm80211/brcmutil/d11.o
LD [M] drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil.o
AR drivers/net/wireless/broadcom/brcm80211/built-in.a
Building modules, stage 2.
MODPOST 1 modules
CC [M] drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil.mod.o
LD [M] drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil.ko')

What I did was copy the /brcmfmac subdirectory from the cypress zip file (the file names match but are different sizes/newer) and was trying to build the module to see if it would even work. Why does it create a built-in.a even though the config calls for this to be a module and the previously built kernel package builds this brcmfmac.ko module?

Any pointers appreciated.
keithspg
 
Posts: 221
Joined: Mon Feb 23, 2015 4:14 pm


Return to Hardware

Who is online

Users browsing this forum: No registered users and 3 guests