I will start this by stating that I am fairly new to linux so apologies in advance as I may need a bit more guidance than most
I have tried other troubleshooting steps from other topics, but none have worked so far.
The wireless card is a BCM4311 and it is a Macbook Pro 2012 running fedora 41 (fresh install)
After a fresh install, I did dnf upgrade, installed rpmfusion free and nonfree and then installed broadcom-wl and kmod-wl. I rebooted after every major step and I still have no wifi.
You need to provide enough detial to allow others to reproduce the problem:
Which Fedora installer did you use (Gnome Workstation or KDE, …)?
Did WiFi work using the F41 Live Installer? If so, check to see which module is being used by running inxi -Nzxx in a terminal (you may need to install inxi in the “Live” system). Here, in an old iMac with a different WiFi chip I do need wl:
Make a note of the WiFI chip-ID. This is consists of the vendor (14e4) and device (43a0) ID’s.
Run modinfo brcmfmac| grep -i 'pci:v000014e4d0000<deviceID>' in a terminal to see if your WiFi device is supported by the brcmfmac module.
Did you replace <deviceID> with the value from inxi -Nzxx?
Did you buy the MBP new? There were many MBP models sold in 2012 using various wifi cards, and upgrading to a newer wifi was popular as new standards emerged.
the vendor ID is the 14e4, the device id is just 4331, but brcmfmac| grep -i 'pci:v000014e4d00004331' also gives no output.
There are references to both 4311 and 4331 wifi cards from 2012. There may be different packaging using the same chip. This card should be supported by the wl module.
LHDB probes for Broadcom 4331 WiFI has 608 entries. The site allows you to search for your model, but there are not many Fedora 41 probes. Sometimes there are user comments with workarounds needed for specific models.
What about lspci | grep -i network, or any of the commands mentioned above (e.g. inxi -Nzxx)? One of the available commands should reveal the wireless card.
Based on which information did you identify the card as being with BCM4311 chipset?
That line shows that the driver’s kernel modules have been built.
Shows that the wl driver is being used, so we need to determine why it doesn’t connect. In a terminal, run journalctl --no-hostname -g <string>|cat (we don’t need to see hostname, the |cat wraps long lines that would be truncated) where good choices for <string> are wifi and wl. A few times I have encountered problems with the firmware files:
linux has the needed firmware file but uses the wrong name
linux does not have the needed firmware, but I was able to copy the required file from macos (may have needed to change compression method)
Besides the above, please also post the output of cat /proc/cmdline, and that of sudo grubby --info=ALL | grep kernel. Just to make sure you’re booting with the kernel for which the driver module has been built.
I forgot to add -b to select only entries for the current boot.
What did you use for <string>. Easiest way to maximize relevant entries is to run the command (with -b) right after booting the kernel that corresponds to your wl module without the USB dongle. That should avoid many repeats of the same block of messages. journalctl has many options to “filter” out irrelevant entires by timestamp, priority, etc. It is worth studying man journalctl. There are probably some good tutorials if you can avoid clickbait sites publishing nonsense generated with AI.
I ran with <string> as wifi and wl after a new boot. I didn’t know where to put the -b (putting at the end didn’t work and putting it after -g gave a error), but I found where it lined off as a new boot. The following is what I got
with <string> as “wl”:
1493 Nov 28 19:43:23 kernel: wl: loading out-of-tree module taints kernel.
1494 Nov 28 19:43:23 kernel: wl: module license 'MIXED/Proprietary' taints kernel.
1495 Nov 28 19:43:23 kernel: wl: module verification failed: signature and/or required key missing - tainting kernel
1496 Nov 28 19:43:23 kernel: wl: module license taints kernel.
1497 Nov 28 19:43:23 kernel: Modules linked in: wl(POE+) btrtl applesmc(+) btintel btbcm snd_hwdep btmtk rapl bluetooth uvcvideo intel_cstate snd_seq intel_uncore cfg80211 snd_seq_device i2c_i801 uvc pcspkr videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 lpc_ich snd_pcm i2c_smbus videobuf2_common videodev mc bcm5974 rfkill snd_timer thunderbolt snd mei_me binfmt_misc soundcore sbs mei acpi_als industrialio_triggered_buffer vfat sbshc fat kfifo_buf industrialio apple_gmux apple_mfi_fastcharge loop nfnetlink zram i915 crct10dif_pclmul crc32_pclmul crc32c_intel polyval_clmulni polyval_generic sdhci_pci ghash_clmulni_intel cqhci sha512_ssse3 sdhci sha256_ssse3 sha1_ssse3 mmc_core i2c_algo_bit drm_buddy ttm drm_display_helper cec video wmi hid_apple fuse
1498 Nov 28 19:43:23 kernel: getvar+0x20/0x70 [wl]
1499 Nov 28 19:43:23 kernel: ? __UNIQUE_ID_vermagic463+0x60297d6dedc0/0x60297d6dedc0 [wl]
1500 Nov 28 19:43:23 kernel: wl_module_init+0x17/0xa0 [wl]
1501 Nov 28 19:43:24 kernel: wl 0000:03:00.0 wlp3s0: renamed from eth0
1502 Nov 28 19:43:25 boltd[989]: [00000000-0000-domain0 ] newly connected [user] (/sys/devices/pci0000:00/0000:00:01.1/0000:04:00.0/0000:05:00.0/0000:06:00.0/domain0/0-0)
1503 Nov 28 19:43:25 NetworkManager[1004]: <info> [1732823005.7602] Read config: /etc/NetworkManager/NetworkManager.conf (lib: 20-connectivity-fedora.conf, 22-wifi-mac-addr.conf, 90-broadcom-wl.conf, 99-nvme-nbft-no-ignore-carrier.conf)
1504 Nov 28 19:43:25 NetworkManager[1004]: <info> [1732823005.7718] rfkill0: found Wi-Fi radio killswitch (at /sys/devices/pci0000:00/0000:00:1c.1/0000:03:00.0/ieee80211/phy0/rfkill0) (driver wl)
1505 Nov 28 19:43:25 NetworkManager[1004]: <info> [1732823005.7950] device (wlp3s0): driver supports Access Point (AP) mode
1506 Nov 28 19:43:25 NetworkManager[1004]: <info> [1732823005.7959] manager: (wlp3s0): new 802.11 Wi-Fi device (/org/freedesktop/NetworkManager/Devices/2)
1507 Nov 28 19:43:25 NetworkManager[1004]: <info> [1732823005.7964] device (wlp3s0): state change: unmanaged -> unavailable (reason 'managed', managed-type: 'external')
1508 Nov 28 19:43:25 NetworkManager[1004]: <info> [1732823005.9347] device (wlp3s0): supplicant interface state: internal-starting -> disconnected
1509 Nov 28 19:43:25 NetworkManager[1004]: <info> [1732823005.9351] device (wlp3s0): state change: unavailable -> disconnected (reason 'supplicant-available', managed-type: 'full')
With <string> as “wifi” (I replaced my network name with “macnetwork”):
Nov 28 19:39:00 NetworkManager[1004]: <info> [1732822740.3750] Read config: /etc/NetworkManager/NetworkManager.conf (lib: 20-connectivity-fedora.conf, 22-wifi-mac-addr.conf, 90-broadcom-wl.conf, 99-nvme-nbft-no-ignore-carrier.conf)
Nov 28 19:39:00 NetworkManager[1004]: <info> [1732822740.4015] Loaded device plugin: NMWifiFactory (/usr/lib64/NetworkManager/1.50.0-1.fc41/libnm-device-plugin-wifi.so)
Nov 28 19:40:34 kernel: usb 1-1: RTL8188EU rev D (TSMC) romver 0, 1T1R, TX queues 2, WiFi=1, BT=0, GPS=0, HI PA=0
Nov 28 19:40:35 kernel: usb 1-1: rtl8xxxu: Loading firmware rtlwifi/rtl8188eufw.bin
Nov 28 19:40:36 NetworkManager[1004]: <info> [1732822836.0946] device (wlp0s20u1): Activation: (wifi) access point 'macnetwork' has security, but secrets are required.
Nov 28 19:40:36 NetworkManager[1004]: <info> [1732822836.0977] device (wlp0s20u1): Activation: (wifi) connection 'macnetwork' has security, and secrets exist. No new secrets needed.
Nov 28 19:40:36 NetworkManager[1004]: <info> [1732822836.2420] device (wlp0s20u1): Activation: (wifi) Stage 2 of 5 (Device Configure) successful. Connected to wireless network "macnetwork"
Nov 28 19:40:36 geoclue[1566]: Failed to query location: No WiFi networks found
-- Boot 7407e21e29a348648e601e5c06af9c5b --
Nov 28 19:43:25 NetworkManager[1004]: <info> [1732823005.7602] Read config: /etc/NetworkManager/NetworkManager.conf (lib: 20-connectivity-fedora.conf, 22-wifi-mac-addr.conf, 90-broadcom-wl.conf, 99-nvme-nbft-no-ignore-carrier.conf)
Nov 28 19:43:25 NetworkManager[1004]: <info> [1732823005.7872] Loaded device plugin: NMWifiFactory (/usr/lib64/NetworkManager/1.50.0-1.fc41/libnm-device-plugin-wifi.so)
No difference. I ran the command and then rebooted just incase and nothing has changed. I also ran rfkill list (after unblocking all) and can confirm that nothing is blocked by rfkill
If it helps, settings recognises the chip’s exitstence but doesn’t have a connect option. When I tried to connect via other means (connect to hidden network > selecting an existing network) it doesn’t work. No error code or anything.
Do you have another wireless network in the area (your own or neighbor’s), which has the option to connect? Can you rule out an issue with your own network/router?