After a fresh install of Fedora 27, the wifi card is not detected after the running the first system update. After some lengthy troubleshooting online I am still no closer to the solution.
lspci -vnn -d 14e4:
04:00.0 Network controller : Broadcom Limited BCM4356 802.11ac Wireless Network Adapter [14e4:43ec] (rev 02) Subsystem: Lenovo Device [17aa:0777] Flags: bus master, fast devsel, latency 0, IRQ 18 Memory at f1400000 (64-bit, non-prefetchable) [size=32K] Memory at f1000000 (64-bit, non-prefetchable) [size=4M] Capabilities: <access denied> Kernel modules: brcmfmac, wl
rpm -qa | grep -e kernel -e broadcom-wl -e kmod-wl | sort
abrt-addon-kerneloops-2.10.5-1.fc27.x86_64 akmod-wl-126.96.36.1991-15.fc27.x86_64 broadcom-wl-188.8.131.521-3.fc27.noarch kernel-4.13.9-300.fc27.x86_64 kernel-4.14.5-300.fc27.x86_64 kernel-core-4.13.9-300.fc27.x86_64 kernel-core-4.14.5-300.fc27.x86_64 kernel-debug-devel-4.14.5-300.fc27.x86_64 kernel-devel-4.13.9-300.fc27.x86_64 kernel-devel-4.14.5-300.fc27.x86_64 kernel-headers-4.14.5-300.fc27.x86_64 kernel-modules-4.13.9-300.fc27.x86_64 kernel-modules-4.14.5-300.fc27.x86_64 kernel-modules-extra-4.13.9-300.fc27.x86_64 kernel-modules-extra-4.14.5-300.fc27.x86_64 kmod-wl-4.13.9-300.fc27.x86_64-184.108.40.2061-15.fc27.x86_64 kmod-wl-4.14.5-300.fc27.x86_64-220.127.116.111-15.fc27.x86_64 libreport-plugin-kerneloops-2.9.3-1.fc27.x86_64
I have installed the correct kernel-devel package:
sudo dnf install kernel-devel-4.13.9-300.fc27.x86_64
Along with enabling RPM-fusion:
Installed broadcom-wl and kmod-wl
sudo dnf install -y broadcom-wl kmod-wl
Run the akmods command:
sudo akmods --force --kernel 4.13.9-300.fc27.x86_64 --akmod w
Checking kmods exist for 4.13.9-300.fc27.x86_64 [ OK ]
sudo depmod -a
And finally modprobe on wl:
sudo modprobe wl
All without success. Does anyone know how to solve this problem? I have seen a few older threads documenting similar issues but none of the accepted solutions appear to work in my case.
After some more searching, I've discovered the kernel module I should be loading for my card is brcmfmac4356.
modprobe -r brcmfmac
Produces no output but brcmfmac fails to show up after invoking lsmod. Checking dmesg reveals:
[ 8488.780453] brcmfmac: brcmf_fw_map_chip_to_name: using brcm/brcmfmac4356-pcie.bin for chip 0x004356(17238) rev 0x000002 [ 8488.782147] brcmfmac 0000:04:00.0: Direct firmware load for brcm/brcmfmac4356-pcie.txt failed with error -2 [ 8491.291361] brcmfmac: brcmf_msgbuf_query_dcmd: Timeout on response for query command [ 8491.291376] brcmfmac: brcmf_c_preinit_dcmds: Retreiving cur_etheraddr failed, -5 [ 8491.291383] brcmfmac: brcmf_bus_started: failed: -5 [ 8491.291398] brcmfmac: brcmf_pcie_attach_bus: dongle is not responding
I am not sure what to make of this but will supply a further update when I have time to dig a little deeper.
Edit 2 and ugly fix
I now have a working wireless interface by hunting down the allegedly missing file brcm/brcmfmac4356-pcie.txt here, pasting it into /lib/firmware/brcm/ and running:
This feels like a hack and I have to wonder why brcm/brcmfmac4356-pcie.txt was absent. Is this a bug and the wrong file was being sourced?
While I now have a working WiFi connection I would very much like to understand the source of the problem.
The above fix is not persistent after reboot and requires me to execute modprobe brcmfmac before the wireless interface becomes visible.