*Working Solution* Niche Legacy Support for Broadcomm Wifi Cards

Greetings and a pleasure to be with you fine folk,

I am getting OpenMandriva Rock 5 w/KDE (X11) running on a beautiful 2009 HP DV2 1030us with a Broadcom 4322 wifi card in it. This machine had previously been running LMDE 5 and I was able to locate the debian version of the driver package rather easily.

Yesterday I attempted to install Rome and everything seemed fine, except that I had some issues with the update feature as well as an odd bug in discover. Since I am having a problem getting software through the regular channels, this was not optimal. The package names I expected for the driver were not being found and the tab tab autocomplete in terminal was not resolving anything useful. Fair enough, if I messed up something with the updates I should not expect good results going forward. Besides, I don’t expect everything to work perfectly on such old equipment so I started over with Rock this morning.

I am writing this post now as a resolution to a previous 2023 post asking about similar hardware support that did not achieve a solution. It appears I am not yet allowed to provide links in this post, but if you search for the title “still no support for broadcom” you should find it.

Postedit by rugyada
Link: Still no support for broadcom?

My process has been as follows.

  1. Fresh install of Rock
  2. Reboot, log in, connect to internet. (In my case I used a wifi dongle but the ethernet port works fine without additional drivers. I note that OpenMandriva remembered the wifi connection I used during install and connected automatically. I have been using linux for over 10 years and never saw that happen so props for that!)
  3. Opened the Software Repository Selector
  4. Selected the “non-free” repository, clicked “OK” at the bottom of the window. Prompted for password and completed.
  5. Ran System Update from the Launcher menu, success (I believe my Rome install was hung up on the transaction test, this is a new thing to me and I have gotten lazy so that I dont read messages from the system as carefully as I ought.)
  6. Open Konsole
  7. run “sudo dnf install b43-firmware-install”
  8. Confirm and authenticate
  9. Installation completes with dependency package installed as well. Reboot system.
  10. Disconnect wifi dongle (or wired connection if you are using that)
  11. Log in, use the newtork widget to activate wireless and then connect to desired wifi network.

This process worked for me and I am now enjoying the full power of my slick little laptop with all the benefits of OpenMandriva. Thank you to the friendly people in the groupchat who helped me out.

BaronAlbatross

2 Likes

Welcome @BaronAlbatross to OpenMandriva and our forum. This forum is for users of OpenMandriva Linux operating systems.

OpenMandriva Forums are primarily users helping other users.

You are welcome to talk to our developers at OpenMandriva Chat.

Users with a problem need to read How to get better results when posting about problems before reporting any issue or problem. The article is not too long and Do Read.

When a new user has an issue please look in the documentation for OMLx. OpenMandriva wiki, Forum Resources guide and the “Search” function of the forum.

If you don’t find what you are looking for, try an Internet search. One can find out a lot from documentation or forum posts at other Linux distros. If user finds something written for another distro but you have some doubt ask at OpenMandriva Chat.

For serious technical issues and package/feature requests please file a bug report here.

Note: We are a small group. All the contributors and developers here are unpaid volunteers.
You can make OpenMandriva grow and improve by getting involved

Any help with testing would be appreciated whether one is technically proficient or a very non-technical user. The more people and more hardware we can get involved the better we can make OMLx releases and packaging. We do a lot of testing in VM’s as well. Developers tend to use Qemu, most user level testers use VirtualBox.

Thank you very much.
Added the link to the mentioned topic, and increased your user level.

2 Likes

Thank you, I look forward to further improving our collective knowledge of obscure use cases.

2 Likes

I am on ROME and unfortunately this does not work for me. It installs correctly and then the folder /lib/firmware/b43 exists (even though it has a lock symbol in dolphin), but even after a reboot or after modprobe it still doesn’t work.

sudo modprobe -r -v brcmfmac_wcc
sudo modprobe -r -v brcmfmac
sudo modprobe -v brcmfmac
sudo modprobe -r -v hci_bcm4377
sudo modprobe -v hci_bcm4377
sudo journalctl -k --grep=brcmfmac
Jan 10 11:30:40 mario-mac-openmandriva kernel: usbcore: registered new interface driver brcmfmac
Jan 10 11:30:40 mario-mac-openmandriva kernel: brcmfmac 0000:03:00.0: enabling device (0000 -> 0002)
Jan 10 11:30:40 mario-mac-openmandriva kernel: brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4364b2-pcie for chip BCM4364/3
Jan 10 11:30:40 mario-mac-openmandriva kernel: brcmfmac 0000:03:00.0: Direct firmware load for brcm/brcmfmac4364b2-pcie.apple,lanai-HRPN->
Jan 10 11:30:40 mario-mac-openmandriva kernel: brcmfmac 0000:03:00.0: Direct firmware load for brcm/brcmfmac4364b2-pcie.apple,lanai-HRPN->
Jan 10 11:30:40 mario-mac-openmandriva kernel: brcmfmac 0000:03:00.0: Direct firmware load for brcm/brcmfmac4364b2-pcie.apple,lanai-HRPN->
Jan 10 11:30:40 mario-mac-openmandriva kernel: brcmfmac 0000:03:00.0: Direct firmware load for brcm/brcmfmac4364b2-pcie.apple,lanai-HRPN.>
Jan 10 11:30:40 mario-mac-openmandriva kernel: brcmfmac 0000:03:00.0: Direct firmware load for brcm/brcmfmac4364b2-pcie.apple,lanai-X0.bi>
Jan 10 11:30:45 mario-mac-openmandriva kernel: brcmfmac 0000:03:00.0: brcmf_pcie_download_fw_nvram: FW failed to initialize
Jan 10 11:30:49 mario-mac-openmandriva kernel: brcmfmac 0000:03:00.0: brcmf_pcie_setup: Dongle setup failed

I also tried the dkms-broadcom-wl package, but this gives an error.

Downloading Packages:
dkms-broadcom-wl-6.30.223.271-5-omv4002.x86_64.rpm                                                        1.1 MB/s | 1.7 MB     00:01    
------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                     1.1 MB/s | 1.7 MB     00:01     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                  1/1 
  Installing       : dkms-broadcom-wl-6.30.223.271-5.x86_64                                                                           1/1 
  Running scriptlet: dkms-broadcom-wl-6.30.223.271-5.x86_64                                                                           1/1 
+ /usr/sbin/dkms --rpm_safe_upgrade add -m dkms-broadcom-wl -v 6.30.223.271-5

Creating symlink /var/lib/dkms/dkms-broadcom-wl/6.30.223.271-5/source ->
                 /usr/src/dkms-broadcom-wl-6.30.223.271-5

DKMS: add completed.
+ '[' -z '' ']'
+ /usr/sbin/dkms --rpm_safe_upgrade build -m dkms-broadcom-wl -v 6.30.223.271-5

Kernel preparation unnecessary for this kernel.  Skipping...

Building module:
cleaning build area...
'make' -j12 -C /lib/modules/6.13.0-desktop-0.rc4.1omv2490/build M=/...(bad exit status: 2)
Error! Bad return status for module build on kernel: 6.13.0-desktop-0.rc4.1omv2490 (x86_64)
Consult /var/lib/dkms/dkms-broadcom-wl/6.30.223.271-5/build/make.log for more information.
warning: %post(dkms-broadcom-wl-6.30.223.271-5.x86_64) scriptlet failed, exit status 10

Error in POSTIN scriptlet in rpm package dkms-broadcom-wl

Installed:
  dkms-broadcom-wl-6.30.223.271-5.x86_64                                                                                                  

Complete!

and the make.log shows

DKMS make.log for dkms-broadcom-wl-6.30.223.271-5 for kernel 6.13.0-desktop-0.rc4.1omv2490 (x86_64)
Fri Jan 10 11:40:37 AM CET 2025
make: Entering directory '/usr/src/linux-6.13.0-desktop-0.rc4.1omv2490'
make[1]: Entering directory '/'
warning: the compiler differs from the one used to build the kernel
  The kernel was built by: OpenMandriva 19.1.6-1 clang version 19.1.6 (/builddir/build/BUILD/llvm-19.1.6-build/llvm-project-llvmorg-19.1.6/clang ebf68eb3650f58cb376148dd8f151ee36fb63f4f)
  You are using:           gcc (GCC) 14.2.0 20240801 (OpenMandriva)
/usr/src/linux-6.13.0-desktop-0.rc4.1omv2490/scripts/Makefile.build:41: Makefile: No such file or directory
make[3]: *** No rule to make target 'Makefile'.  Stop.
make[2]: *** [/usr/src/linux-6.13.0-desktop-0.rc4.1omv2490/Makefile:1989: .] Error 2
make[1]: *** [/usr/src/linux-6.13.0-desktop-0.rc4.1omv2490/Makefile:251: __sub-make] Error 2
make[1]: Leaving directory '/'
make: *** [Makefile:251: __sub-make] Error 2
make: Leaving directory '/usr/src/linux-6.13.0-desktop-0.rc4.1omv2490'

clang is installed and it shows in printenv. Is there something else I have to check so that it uses clang for the makefile?

Here is some additional info. Maybe someone can help me.

modinfo brcmfmac | grep 4387
firmware:       brcm/brcmfmac4387c2-pcie.bin
firmware:       brcm/brcmfmac4387c2-pcie.clm_blob
lspci -nn -d 14e4:
03:00.0 Network controller [0280]: Broadcom Inc. and subsidiaries BCM4364 802.11ac Wireless Network Adapter [14e4:4464] (rev 03)
04:00.0 Ethernet controller [0200]: Broadcom Inc. and subsidiaries NetXtreme BCM57766 Gigabit Ethernet PCIe [14e4:1686] (rev 01)

Oh and I should mention that my machine is an old mac mini with an Intel chip (I think 2018 model).

Ialso tried Method 5 from here, because this worked on Linux Mint and should also support dnf. It is a script that downloads the macOS kernel and extracts the driver from there to install it. But that didn’t work either.

https://wiki.t2linux.org/guides/wifi-bluetooth/

Hey mKay,
I have an 08 mini I use to play digital media on my TV, yours is new enough that I believe your drives would fall under the broadcom-wl package also under non-free. It feels cheap giving such a short response to your thorough diagnostics… but hopefully it helps!

Thank you for the reply.

Do you mean this one: dkms-broadcom-wl.x86_64? I don’t find another one with dnf.

If so, that is what I tried, as you can see above.

I did a little digging earlier, did you get the common package with that also? Normally I would expect it to install as a dependency with the main driver package.

Out of curiosity, what were you running on it before, and what drivers was the computer using?

Yes I have dkms-broadcom-wl and dkms-broadcom-wl-common installed. And I tried again the dkms installation. Which errors out:

I tried:

$ sudo dkms autoinstall

Kernel preparation unnecessary for this kernel.  Skipping...

Building module:
cleaning build area...
'make' -j12 -C /lib/modules/6.13.0-desktop-0.rc5.1omv2490/build M=/usr/src/linux-6.13.0-desktop-0.rc5.1omv2490...(bad exit status: 2)
Error! Bad return status for module build on kernel: 6.13.0-desktop-0.rc5.1omv2490 (x86_64)
Consult /var/lib/dkms/dkms-broadcom-wl/6.30.223.271-5/build/make.log for more information.

And then dkms build:

$ sudo /usr/sbin/dkms --rpm_safe_upgrade build -m dkms-broadcom-wl -v 6.30.223.271-5 --kernelsourcedir /usr/src/linux-6.13.0-desktop-0.rc5.1omv2490/

Preparing kernel 6.13.0-desktop-0.rc5.1omv2490 for module build:
(This is not compiling a kernel, just preparing kernel symbols)
/usr/sbin/dkms: line 1222: warning: command substitution: ignored null byte in input
Storing current .config to be restored when complete
Running Generic preparation routine
make mrproper.....
using /proc/config.gz
make oldconfig....(bad exit status: 2)
make prepare...(bad exit status: 2)

Building module:
cleaning build area...
'make' -j12 -C /usr/src/linux-6.13.0-desktop-0.rc5.1omv2490/ M=/home/mario...(bad exit status: 2)
Error! Bad return status for module build on kernel: 6.13.0-desktop-0.rc5.1omv2490 (x86_64)
Consult /var/lib/dkms/dkms-broadcom-wl/6.30.223.271-5/build/make.log for more information.

And this is the make.log:

DKMS make.log for dkms-broadcom-wl-6.30.223.271-5 for kernel 6.13.0-desktop-0.rc5.1omv2490 (x86_64)
Tue Jan 14 02:16:29 PM CET 2025
make: Entering directory '/usr/src/linux-6.13.0-desktop-0.rc5.1omv2490'
make[1]: Entering directory '/home/mario'
/usr/src/linux-6.13.0-desktop-0.rc5.1omv2490/Makefile:777: /usr/src/linux-6.13.0-desktop-0.rc5.1omv2490/include/config/auto.conf: No such file or directory
make[1]: *** [/usr/src/linux-6.13.0-desktop-0.rc5.1omv2490/Makefile:251: __sub-make] Error 2
make[1]: Leaving directory '/home/mario'
make: *** [Makefile:251: __sub-make] Error 2
make: Leaving directory '/usr/src/linux-6.13.0-desktop-0.rc5.1omv2490'

So i tried autoconfig in/usr/src/linux-6.13.0-desktop-0.rc5.1omv2490

$ sudo make autoconfig
make[2]: *** No rule to make target 'autoconfig'.  Stop.
make[1]: *** [/usr/src/linux-6.13.0-desktop-0.rc5.1omv2490/Makefile:733: autoconfig] Error 2
make: *** [Makefile:251: __sub-make] Error 2

Then I tried

$ sudo make mrproper
  CLEAN   scripts/basic
  CLEAN   scripts/kconfig
  CLEAN   .config

$ sudo make oldconfig V=1 ARCH=x86
make --no-print-directory -C /usr/src/linux-6.13.0-desktop-0.rc5.1omv2490 \
-f /usr/src/linux-6.13.0-desktop-0.rc5.1omv2490/Makefile oldconfig
make -f ./scripts/Makefile.build obj=scripts/basic
# HOSTCC  scripts/basic/fixdep
  gcc -Wp,-MMD,scripts/basic/.fixdep.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu11   -I ./scripts/include     -o scripts/basic/fixdep scripts/basic/fixdep.c   
make -f ./scripts/Makefile.build obj=scripts/kconfig oldconfig
# HOSTCC  scripts/kconfig/conf.o
  gcc -Wp,-MMD,scripts/kconfig/.conf.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu11   -I ./scripts/include   -c -o scripts/kconfig/conf.o scripts/kconfig/conf.c
# HOSTCC  scripts/kconfig/confdata.o
  gcc -Wp,-MMD,scripts/kconfig/.confdata.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu11   -I ./scripts/include   -c -o scripts/kconfig/confdata.o scripts/kconfig/confdata.c
# HOSTCC  scripts/kconfig/expr.o
  gcc -Wp,-MMD,scripts/kconfig/.expr.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu11   -I ./scripts/include   -c -o scripts/kconfig/expr.o scripts/kconfig/expr.c
# LEX     scripts/kconfig/lexer.lex.c
  flex -oscripts/kconfig/lexer.lex.c -L scripts/kconfig/lexer.l
# YACC    scripts/kconfig/parser.tab.[ch]
  bison -o scripts/kconfig/parser.tab.c --defines=scripts/kconfig/parser.tab.h -t -l scripts/kconfig/parser.y
# HOSTCC  scripts/kconfig/lexer.lex.o
  gcc -Wp,-MMD,scripts/kconfig/.lexer.lex.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu11   -I ./scripts/include  -I ./scripts/kconfig -c -o scripts/kconfig/lexer.lex.o scripts/kconfig/lexer.lex.c
# HOSTCC  scripts/kconfig/menu.o
  gcc -Wp,-MMD,scripts/kconfig/.menu.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu11   -I ./scripts/include   -c -o scripts/kconfig/menu.o scripts/kconfig/menu.c
# HOSTCC  scripts/kconfig/parser.tab.o
  gcc -Wp,-MMD,scripts/kconfig/.parser.tab.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu11   -I ./scripts/include  -I ./scripts/kconfig -c -o scripts/kconfig/parser.tab.o scripts/kconfig/parser.tab.c
# HOSTCC  scripts/kconfig/preprocess.o
  gcc -Wp,-MMD,scripts/kconfig/.preprocess.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu11   -I ./scripts/include   -c -o scripts/kconfig/preprocess.o scripts/kconfig/preprocess.c
# HOSTCC  scripts/kconfig/symbol.o
  gcc -Wp,-MMD,scripts/kconfig/.symbol.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu11   -I ./scripts/include   -c -o scripts/kconfig/symbol.o scripts/kconfig/symbol.c
# HOSTCC  scripts/kconfig/util.o
  gcc -Wp,-MMD,scripts/kconfig/.util.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu11   -I ./scripts/include   -c -o scripts/kconfig/util.o scripts/kconfig/util.c
# HOSTLD  scripts/kconfig/conf
  gcc   -o scripts/kconfig/conf scripts/kconfig/conf.o scripts/kconfig/confdata.o scripts/kconfig/expr.o scripts/kconfig/lexer.lex.o scripts/kconfig/menu.o scripts/kconfig/parser.tab.o scripts/kconfig/preprocess.o scripts/kconfig/symbol.o scripts/kconfig/util.o   
scripts/kconfig/conf  --oldconfig Kconfig
crypto/Kconfig:1458: can't open file "arch/mips/crypto/Kconfig"
make[2]: *** [scripts/kconfig/Makefile:85: oldconfig] Error 1
make[1]: *** [/usr/src/linux-6.13.0-desktop-0.rc5.1omv2490/Makefile:733: oldconfig] Error 2
make: *** [Makefile:251: __sub-make] Error 2

And I don’t know why it wants mipse here crypto/Kconfig:1458: can't open file "arch/mips/crypto/Kconfig" or how to change that. I don’t know what to here…

Any help would be appreciated!

Here is my system, if that helps:

System:
  Host: mario-mac-openmandriva Kernel: 6.13.0-desktop-0.rc5.1omv2490
    arch: x86_64 bits: 64
  Desktop: KDE Plasma v: 6.2.4 Distro: OpenMandriva Lx 24.12 ROME
Machine:
  Type: Laptop System: Apple product: Macmini8,1 v: 1.0
    serial: <superuser required>
  Mobo: Apple model: Mac-7BA5B2DFE22DDD8C v: Macmini8,1
    serial: <superuser required> UEFI: Apple v: 2069.40.2.0.0 (iBridge:
    22.16.12093.0.0,0) date: 11/13/2024
CPU:
  Info: 6-core model: Intel Core i7-8700B bits: 64 type: MT MCP cache:
    L2: 1.5 MiB
  Speed (MHz): avg: 800 min/max: 800/4600 cores: 1: 800 2: 800 3: 800 4: 800
    5: 800 6: 800 7: 800 8: 800 9: 800 10: 800 11: 800 12: 800
Graphics:
  Device-1: Intel CoffeeLake-H GT2 [UHD Graphics 630] driver: i915 v: kernel
  Display: x11 server: X.org v: 1.21.1.15 with: Xwayland v: 24.1.4 driver:
    X: loaded: modesetting unloaded: fbdev,vesa dri: iris gpu: i915
    resolution: 2560x1440
  API: EGL v: 1.5 drivers: iris,swrast platforms: gbm,x11,surfaceless,device
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: intel mesa v: 24.3.2
    renderer: Mesa Intel UHD Graphics 630 (CFL GT2)
  API: Vulkan v: 1.4.303 drivers: N/A surfaces: xcb,xlib
Audio:
  Device-1: Intel Cannon Lake PCH cAVS driver: snd_hda_intel
  Device-2: Apple Audio driver: N/A
  API: ALSA v: k6.13.0-desktop-0.rc5.1omv2490 status: kernel-api
  Server-1: PipeWire v: 1.2.7 status: active
Network:
  Device-1: Broadcom BCM4364 802.11ac Wireless Network Adapter driver: N/A
  Device-2: Broadcom NetXtreme BCM57766 Gigabit Ethernet PCIe driver: tg3
  IF: enp4s0 state: down mac: f4:34:f0:e3:17:3b
  Device-3: MediaTek MT7612U 802.11a/b/g/n/ac Wireless Adapter
    driver: mt76x2u type: USB
  IF: wlp0s20f0u4 state: up mac: 00:c0:ca:b0:63:39
  Device-4: ASIX AX88179 Gigabit Ethernet driver: ax88179_178a type: USB
  IF: enp0s20f0u5u3u1 state: down mac: 00:0e:c6:de:38:69
  IF-ID-1: wt0 state: unknown speed: N/A duplex: N/A mac: N/A
Drives:
  Local Storage: total: 113 GiB used: 31.36 GiB (27.7%)
  ID-1: /dev/nvme0n1 vendor: Apple model: SSD AP0128M size: 113 GiB
Partition:
  ID-1: / size: 40.71 GiB used: 31.34 GiB (77.0%) fs: btrfs
    dev: /dev/nvme0n1p5
  ID-2: /boot size: 40.71 GiB used: 31.34 GiB (77.0%) fs: btrfs
    dev: /dev/nvme0n1p5
  ID-3: /boot/efi size: 299.3 MiB used: 11.8 MiB (3.9%) fs: vfat
    dev: /dev/nvme0n1p1
  ID-4: /home size: 40.71 GiB used: 31.34 GiB (77.0%) fs: btrfs
    dev: /dev/nvme0n1p5
  ID-5: /var/log size: 40.71 GiB used: 31.34 GiB (77.0%) fs: btrfs
    dev: /dev/nvme0n1p5
Swap:
  ID-1: swap-1 type: zram size: 8 GiB used: 34.2 MiB (0.4%) dev: /dev/zram0
  ID-2: swap-2 type: partition size: 2 GiB used: 0 KiB (0.0%)
    dev: /dev/nvme0n1p4
Sensors:
  System Temperatures: cpu: 54.0 C pch: 63.0 C mobo: N/A
  Fan Speeds (rpm): N/A
Info:
  Memory: total: 32 GiB available: 31.21 GiB used: 5.81 GiB (18.6%)
  Processes: 341 Uptime: 4h 32m Shell: Bash inxi: 3.3.36