Broadcom Wifi chipset not working - conflicting kernel sources for akmods?

Hello, there. I’ve been trying to have access to the Wifi chip on my MacBook Air.
Every internet access is done with an USB/Ethernet dongle.
I know this card is working under GNU/Linux: Mint or Ubuntu work it fine, but I’d prefer stick with Fedora for much better GNOME experience.

The goal is to have Wifi up and running on Fedora Live before installing it definitely.

Here are my past experiments:

Identifying the Wifi card

$ lspci -vnn -d 14e4:
(...)
03:00.0 Network controller [0280]: Broadcom Inc. and subsidiaries BCM4360 802.11ac Wireless Network Adapter [14e4:43a0] (rev 03)
	Subsystem: Apple Inc. Device [106b:0117]
	Flags: bus master, fast devsel, latency 0, IRQ 18
	Memory at c1200000 (64-bit, non-prefetchable) [size=32K]
	Memory at c1000000 (64-bit, non-prefetchable) [size=2M]
	Capabilities: <access denied>
	Kernel driver in use: bcma-pci-bridge
	Kernel modules: bcma

So it’s supported by module b43 according to en:users:drivers:b43 [Linux Wireless]

Installing RPM Fusion

sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install rpmfusion-nonfree-release-tainted
sudo dnf groupupdate core

Installing package, checking if module b43 is loaded

$ sudo dnf install b43-firmware
$ lsmod | grep b43
b43                   466944  0
cordic                 16384  1 b43
mac80211             1282048  1 b43
cfg80211             1097728  2 b43,mac80211
ssb                   110592  1 b43
mmc_core              225280  2 b43,ssb
bcma                   77824  1 b43

But no WiFi.

Installing broadcom-wl STA driver

I had another try with this more “usual” driver, as suggested in many other threads on this forum and other sources:

$ sudo dnf install broadcom-wl

60 packages installed, including, but not limited to: akmods, akmod-wl, kernel-devel, kernel-modules-core

Then trying to “compile” (correct word?) the module, here comes the hic!

$ sudo akmods --force --akmod wl
Checking kmods exist for 6.0.7-301.fc37.x86_64             [  OK  ]
Files needed for building modules against kernel 6.0.7-301.fc37.x86_64 could not be found as the following directories are missing:
/usr/src/kernels/6.0.7-301.fc37.x86_64/
/lib/modules/6.0.7-301.fc37.x86_64/build/
Is the correct kernel-devel package installed?             [ FAIL ]
Checking kmods exist for 6.2.8-200.fc37.x86_64             [  OK  ]

Indeed:

$ uname -a
Linux localhost-live 6.0.7-301.fc37.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Nov 4 18:35:48 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
$ ls /lib/modules
6.0.7-301.fc37.x86_64  6.2.8-200.fc37.x86_64
$ ls /usr/src/kernels/
6.2.8-200.fc37.x86_64

What should I do next?
It seems there’s a mismatch between kernel sources/headers/modules, needed for broadcom-wl.

Running a live distro then trying to install kernel modules seems fruitless since everything is either read-only on the ISO image or installed in RAM. The next boot will lose all that you installed and none of the newer drivers will be accessible.

Kernel 6.0.7 which was provided with the initial release of F37 is way out of date and the packages needed for building kernel modules would not be available from the updates. The current kernel for F37 is at 6.2.8.

Why not install it to a USB device, then update and install the drivers there. This should give you an opportunity to fully test the updated system on your mac before installing to the drive, as well as allowing access to upgrading the kernel and drivers properly.

1 Like

Yes, I thought this might be the issue. Would the problem still be here with Fedora 38 Beta Live?

Yes of course. My point is to be sure the hardware is functional before installing on the harddrive.

You say I may install on an (external?) USB device, that is an aspect of the problem I didn’t consider before, because never did before. Would this be easily rendered bootable, and if so, how much space would be needed?

As long as your machine is capable of booting from USB this should be possible.
A 16 or 32GB flash drive would be very adequate for testing.

F38 is of course a newer kernel and after installation you can update it as desired.
The same if you were to do an install of F37 onto a USB then update it.

Everything can be current and you would be free to install additional packages to your hearts content as long as space permits.

1 Like

I use a recycled 128 GB SSD in an external USB case. It boots on an iMac and 3 different Intel PC’s with a bit of tweaking to get wifi going. When upgrading I usually try the upgrade first on the USB SSD. Apple hardware can take a bit of extra work, but is widely used so many people work on fixing issues.

1 Like