Trying to install kmod-brcm-wl on R6250

Hi yall.

Today ive installed OpenWRT to a old router that i had staying around to give that thing another use.
The router in question is a Netgear R6250 V1.
https://openwrt.org/toh/hwdata/netgear/netgear_r6250
The installation went smooth, but ive noticed (and also found out) that the 5GHz channel isnt working right with OpenWRT FOSS drivers but is with the propriatery drivers https://openwrt.org/packages/pkgdata/kmod-b43.
Ive found that there are closed source Broadcom drivers in a kernel module in the packages https://openwrt.org/packages/pkgdata/kmod-brcm-wl, but i cant download/access it in LuCI inside my router.
Ive already deleted the packages that interfere with the closed source drivers.
Steps that i want to follow are:

Also here are the infos of the router:

  • Model: Netgear R6250 V1 (BCM4708)
  • Architecture: ARMv7 Processor rev 0 (v7l)
  • Target Platform: bcm53xx/generic
  • Firmware Version: OpenWrt 23.05.5 r24106-10cc5fcd00 / LuCI openwrt-23.05 branch git-24.264.56413-c7a3562
  • Kernel Version: 5.15.167

I also want to try to compile the package myself (ive downloaded the 23.05 repo and the package is there https://github.com/openwrt/openwrt/tree/openwrt-23.05/package/kernel/broadcom-wl)
but havent read enough to figure it out yet.

Any help regarding this topic, from an easy way to download the package (like from legacy-packages for brc47xx https://downloads.openwrt.org/releases/23.05.5/targets/bcm47xx/legacy/packages/) or resources on how to compile it myself would be very appreciated.

Thanks in advance

create an image without the standard BCM wifi package, use https://firmware-selector.openwrt.org/?version=23.05.5&target=bcm53xx%2Fgeneric&id=netgear_r6250, click the tiny arrow, put a - in front of kmod-b43, and generate the new image.

once flashed, in the Luci package manager paste the full URL to the kmod-brcm-wl file, to install it.

image

Despite the chip number, the ARM core makes this SoC a bcm53xx target. kmod-brcm-wl does not exist in bcm53xx because it only works with older wifi chips not the ones in the R6250.

Linux support for Broadcom wifi is very incomplete. This router should be considered only for wired use cases.

3 Likes

Even for open driver you have to fwcut-ter blobs from proprietary drivers as say DFS is non-redist. More in raspbian forums

Could i still try the driver?
Internal wlan ic's are Broadcom BCM4360, Broadcom BCM43217.
Would it be worth a try?

Could you get me a link to some pages, i'd like to read about it. Thanks

Is it enough to uninstall the packages from the package-manager inside luci?
Do you mean the link to this file?https://downloads.openwrt.org/releases/23.05.5/targets/bcm47xx/legacy/packages/kmod-brcm-wl_5.15.167+5.10.56.27.3-10_mipsel_mips32.ipk

Also, just a question, why are the drivers then listed under legacy for 23.05?
Shouldnt they still be working if they worked under older versions for OpenWRT ?

The proprietary driver works on a very small range of linux kernel ABI, you need a new driver every few versions.

You check that kmod loads and identifies device and adds it in ip link and/or iw list

You could, but you'll lose flash space of you do it that way.

Not a primary concern with huge flash.

The router has 128Mb NAND Flash and 256Mb Ram so thats no concern

It says that it cant find the file under that link.
Ive tried to upload it instead and i get this

Collected errors:
 * pkg_hash_fetch_best_installation_candidate: Packages for kmod-brcm-wl found, but incompatible with the architectures configured
 * opkg_install_cmd: Cannot install package kmod-brcm-wl.

Then I guess your package URL was incorrect?

Even if that file existed, it is not relevant here since the name shows it's compiled for MIPS32 processor, and the R6250 has an ARM.

I have the .c files from the github repo mentioned in my post. Could i recompile them in ARM?
But i dont want to recompile the whole thing, just that one package.
I found this https://dvblog.soabit.com/building-custom-openwrt-packages-an-hopefully-complete-guide/ and this https://openwrt.org/docs/guide-developer/packages#creating_packages_for_kernel_modules, but havent read through it at the moment. Is this usable for my case?

The package is only "glue" code to interact with the driver itself, which publicly exists only as a binary blob for MIPS. There is no way to recompile the blob for other CPU since its source code was never released.

Yeah. that could pose a problem. But shouldnt i be able to make a translation layer for MIPS to ARM? It might (will) be a headache but there similar enough to do so right?

Probably not worth all the hassle to go through that, just for a device that is 11 years old. I might just reflash and use kmod-b43 and be happy without 5Ghz Wlan.
But if i were to do the translation, how useful would it be for other devices?
Is there a usecase for more then just this device?