How to Install Missing WiFi Drivers on Fedora (Broadcom, Realtek, Intel)

Install missing Broadcom, Realtek, and Intel WiFi drivers on Fedora using the akmod packages from RPM Fusion.

You installed Fedora and the WiFi toggle is grayed out

You just finished installing Fedora Workstation. The desktop loads, you open the settings, and the WiFi switch is disabled. The network menu says "No WiFi Adapter Found." You check the hardware in your previous operating system and the card works perfectly. The chip is fine. The kernel simply does not have the driver or firmware your specific card requires. This happens frequently with Broadcom chips, many Realtek adapters, and occasionally Intel cards on older hardware. The solution involves enabling the RPM Fusion repository and installing the correct akmod package for your hardware.

What is actually happening

The Linux kernel is a monolithic core that loads modules at runtime. Fedora ships with a strict set of modules in the official repositories. Many WiFi chips require firmware blobs or drivers that cannot be included in the default installation due to licensing restrictions or vendor policies. These drivers live in the RPM Fusion repository. RPM Fusion provides free and non-free software that Fedora cannot include by default. You must enable this repository to access the packages.

The packages use the akmod framework. akmod stands for automatic kernel module. When you install an akmod package, it compiles the driver source code against your currently running kernel. This ensures the driver matches the kernel exactly. If you update the kernel later, akmod rebuilds the driver automatically during the update process. You do not need to reinstall the package. This differs from kmod packages, which contain pre-compiled binaries for a specific kernel version. akmod is more flexible and survives kernel updates without manual intervention.

Run journalctl -xe first. Read the actual error before guessing.

Enable RPM Fusion and install the drivers

First, add the RPM Fusion repositories to your system. Fedora does not include these by default. You must add them manually. The command below installs both the free and non-free repository configuration files. The non-free repository contains proprietary drivers like the Broadcom wl module.

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
# WHY: Downloads and installs the repository configuration files for both free and non-free RPM Fusion content.
# WHY: The $(rpm -E %fedora) substitution ensures the package matches your current Fedora release number automatically.
# WHY: dnf will prompt you to confirm the import of the GPG keys for RPM Fusion; accept to proceed.

Next, identify your hardware. Do not guess the driver. Installing the wrong driver can cause conflicts or load failures. Use lspci to find the vendor and device ID. These IDs are the definitive identifiers for driver matching.

lspci -nn | grep -i network
# WHY: Lists all PCI devices and filters for network controllers.
# WHY: The -nn flag shows the vendor and device IDs in brackets, which are required for accurate driver lookup.

The output will look similar to this. Note the vendor name and the ID in brackets.

03:00.0 Network controller [0280]: Broadcom Limited BCM4360 802.11b/g/n [14e4:4360] (rev 03)
# ...output truncated for clarity

Install the package that matches your hardware. The command below installs the drivers for Broadcom, Realtek, and Intel chips. dnf will resolve dependencies and trigger the akmod build process. Only the modules matching your hardware will load. Installing extra packages does not break the system.

sudo dnf install akmod-wl akmod-rtw88 akmod-iwlwifi
# WHY: Installs the driver packages for Broadcom, Realtek, and Intel WiFi hardware respectively.
# WHY: dnf will resolve dependencies and trigger the akmod build process for each package against your current kernel.
# WHY: The build process may take a minute depending on your CPU speed; wait for the transaction to complete.

Reboot the system. The kernel module must load into the running kernel. A reboot is mandatory after installing kernel modules.

sudo reboot
# WHY: Restarts the system to load the newly compiled kernel modules into the running kernel.
# WHY: NetworkManager will detect the new interface on boot and enable the WiFi toggle.

Reboot before you debug. Half the time the symptom is gone.

Verify the connection

After the system restarts, check the network device status. nmcli shows the state of all devices managed by NetworkManager. Look for your WiFi interface in the DEVICE column. The state should be disconnected or connected. If the state is unmanaged, NetworkManager is not controlling the device. If the device is missing entirely, the driver did not load.

nmcli device status
# WHY: Shows the state of all network devices managed by NetworkManager.
# WHY: Look for your WiFi interface in the 'DEVICE' column with a state of 'disconnected' or 'connected'.

The output will list your interface. A WiFi interface typically starts with wlp or wlx.

DEVICE  TYPE      STATE         CONNECTION
wlp3s0  wifi      disconnected  --
enp0s3  ethernet  connected     Wired connection 1
# ...output truncated for clarity

If the device appears, click the WiFi icon in the system tray and connect to your network. If the device is missing, check the journal for driver errors.

journalctl -xeu NetworkManager
# WHY: Shows recent log lines from NetworkManager with explanatory text.
# WHY: The -x flag adds help text for known errors, and -e jumps to the end of the log.

Run journalctl -xe first. Read the actual error before guessing.

Common pitfalls and error messages

Secure Boot blocks unsigned modules

If you have Secure Boot enabled, the kernel will refuse to load modules that are not signed by a trusted key. akmod builds modules locally, which means they are unsigned by default. You will see a "required key not available" error in the journal. You have two options. Disable Secure Boot in the UEFI firmware, or enroll the Machine Owner Key (MOK) that akmod generates. Enrolling the key is the secure path.

sudo mokutil --import /var/lib/shim-signed/mok/MOK.der
# WHY: Imports the generated Machine Owner Key into the MOK manager for enrollment.
# WHY: You will be prompted to set a password during this step; remember this password for the next reboot.

Reboot after importing the key. The system will enter the MOK manager screen during boot. Select "Enroll MOK" and enter the password you set. This allows the kernel to load the akmod drivers.

Driver conflicts with open-source modules

Some hardware has multiple drivers. The kernel might load the wrong one. The wl driver often conflicts with b43 and bcma. If wl is installed but the system loads b43, WiFi will not work. The akmod-wl package usually includes a blacklist configuration file that disables the conflicting modules. If the blacklist is missing or incomplete, create a manual blacklist file.

echo "blacklist b43" | sudo tee /etc/modprobe.d/blacklist-b43.conf
# WHY: Creates a configuration file to prevent the open-source b43 driver from loading.
# WHY: The wl driver and b43 driver cannot coexist on the same hardware; blacklisting forces the system to use wl.
# WHY: Config files in /etc/ are user-modified; never edit files in /usr/lib/ as they will be overwritten by updates.

Blacklist the old driver. Two drivers fighting for one card causes silent failures.

The build fails or is skipped

If the akmod build fails, the module will not be available. Check the build log. You can manually trigger the build to see the error output.

sudo akmods --kernels=$(uname -r)
# WHY: Manually triggers the module build for the currently running kernel.
# WHY: This command prints the build output to the terminal, making it easier to spot compilation errors.

If the build fails due to missing kernel headers, install the kernel-devel package matching your kernel version.

sudo dnf install kernel-devel-$(uname -r)
# WHY: Installs the development headers required to compile kernel modules.
# WHY: The version must match the running kernel exactly; dnf handles the version matching automatically.

Trust the package manager. Manual file edits drift, snapshots stay.

When to use this approach

Use akmod-wl when you have a Broadcom chip that requires the proprietary wl driver and the open-source alternatives fail to provide stable connectivity. Use akmod-rtw88 when your Realtek WiFi card relies on the rtw88 driver stack that is maintained in RPM Fusion for better performance or newer hardware support. Use akmod-iwlwifi when your Intel WiFi adapter needs a backported driver or firmware update that is not yet available in the default Fedora kernel modules. Use the default kernel modules when your hardware works out of the box and you want to minimize external repository dependencies. Use modprobe to test a driver manually when you are debugging a loading failure and want to see the immediate kernel error messages.

Where to go next